Automatikus ftp upload-hogyan

Sziasztok!

Bash-ben jártas ügyes ember segítségére van szükségem. Valószínű, hogy neki sec-pec alatt menni fog a megoldás, de én nem értek annyira hozzá, s lassan 4 órája próbálkozom.
A helyzetem a következő: van egy szerver (legyen neve: server1), amire van felh.jogom, 5 MB tárterülettel. Rendkívül gyors internettel rendelkezik. Van egy tárhelyem (legyen neve: server2), amin viszont nagy a tárkapacitásom. Itthonról pedig el szeretném rendezni a napi dolgaimat.
Server1-re fel tudok lépni ssh-val, ott már megírtam egy scriptet a wget-tel, hogy letöltse nekem az aktuális napi friss vírusdefiníciót a "www.vírusírtóhonlapja.com" oldalról. Mivel ott mindig az aznapi érhető el, s a nevében benn van a dátum, kis google-zással, s manolással rájöttem, hogyan írhatom ki a dátumot "20060820" formájúvá, s hogyan tehetem be ezt változóként.

(ez egy picit örömujjongás, s most szét is kürtölöm, alig 2 hónapja foglalkozom komolyabban a linux-szal)
Ezt a letöltött vírusdef-t akarom feltenni a server2-re, (ami sajnos winserver, így ssh-zni nem lehet), hogy barátaim is hozzáférjenek minden nap. Mivel server1-en természetesen nem tudok telepíteni, így a ncftp(?) sem jöhet szóba, meg semmi más külső dolog.

Scp-vel is eljutottam oda, hogy erről a server1 gépről irányítva gép3-ról gép4-re tudtam másolni, de ha jól tudom, az scp ssh alapon kommunikál, és persze mindkét gépre feltettem egy ssh démont.
Egy script kellene nekem, ami az előre beírt felh.név/jelszó és elérési út alapján felnyomná a szerverre a v.definíciót.
Természetesen kérdezhetitek, hogy akkor miért nem csatlakozom én fel, s töltöm le, majd a másikra fel!? Mert ha modemes eléésem van, akkor inkább ezzel szenvedek meg, majd 2 perc alatt meglenne az egész. Google-on amúgy sem találtam erre ilyen mezei megoldást.

(kezdem érteni lassan a script-írás tudományát, de még távol állok tőle)
Hálás köszönetem annak, aki segít!

Hozzászólások

a wput kell neked, a paramétereket nézd majd meg, hogy hogyan kell beállítani

Tyűha, nagyon köszi a választ!! :)
Sajnos a server1 nem érhető el, így nem tudom, hogy van-e rajta ilyen, de mintha talán láttam volna.
Leszedtem a wines verziót, s ezzel tökéletesen megy, sikerült beparaméterezni csak a célmappát nem tudom oly jól megadni. No, még bütykölöm...

:))))))))))

ncftpput, ncftp resze.

man.

--
Live Free or Die
UNIX

Ezt tudom is. Megtaláltam én is ezeket. De sajnos nincs fenn egyik sem a server1-en. Most már rá tudok kapcsolódni, de hiába.

Nem lehet ezt egy algoritmussal, mint például ezzel: http://www.daniweb.com/techtalkforums/thread50570.html
vagy
http://www.mrunix.de/forums/showthread.php?t=13684
leírni?

(Az előbbit én is megtaláltam: http://bash.cyberciti.biz/ftp/ftptreeupload.bash.php
de sajnos ez nem megy az ncftpput nélkül) :(

Tudnál segíteni benne?
Melyiket tegyem akkor/melyiket lehet?

szerk:
Leszedtem ezt:
NcFTP Client 3.2.0 source code (.tar.bz2 package)
Olyan kapcsolót keressek, ami csak nekem fordítja le a dolgokat?
Fogja használni ez a /tmp -t? Ha igen, az nem jó, mert 1 hónapra felfüggesztik az accountot...

Nem vagyok túl jártas a dologban, de szerintem írni kéne egy scriptet, amiben a wput játsza a főszerepet (felteszi az adott fájlt az ftp-re), majd ezt megadni a cron démonnak hogy naponta mondjuk 0:30 perckor futassa le. Lehet hogy félreértelmeztem vagy baromságot írtam, de így elsőre nekem ez jött le.

Nos, ezt a sima mezei ftp programmal nagyon egyszerűen lehet:

Írsz egy ilyen fájlt (csak példa, mondjuk /home/janivagyok/ftpparancsok):

open ftp.enszerverem.hu
user janivagyok nagyontitkosjelszavam
cd /innen/akarok/letolteni/
get azenfajlom
cd /innen/is/le/kene/tolteni/mert/az/jo/
get masikfontosfajlom.txt
cd /ide/most/feltoltok/jol/
lcd /tmp/mostfeltoltom/
put feltoltendofajl
bye

(A benne lévő jelszó miatt a fájlt érdemes chmod 600 -al levédeni....)

Ezt meghívod a szkriptedben imígyen:
ftp -i -n < /home/janivagyok/ftpparancsok

Ezt variálhatod így is, s akkor nem kell külön fájl a parancsoknak:
ftp -i -n << REKETTYE
open ftp.enszerverem.hu
user janivagyok nagyontitkosjelszavam
cd /innen/akarok/letolteni/
get azenfajlom
cd /innen/is/le/kene/tolteni/mert/az/jo/
get masikfontosfajlom.txt
cd /ide/most/feltoltok/jol/
lcd /tmp/mostfeltoltom/
put feltoltendofajl
bye
REKETTYE

Ezt már nagyon jól lehet szkriptbe foglalni, akár változó fájlnevekkel is...

Sok sikert :-)!

Ja, ez műxik Windows parancssoros ftp.exe-jével is, sőt mintha azt olvastam volna, hogy a Mac-en is (de ezt nemtom)...

Szia!

Na ezaz!!!
Ilyenre vágytam. Most pont belefogtam, de mennem kell innen, úgyhogy holnap az első dolgom az lesz, hogy kipróbáljam.

Ha működik, Tied minden elismerésem és hálám!!!

(Amúgy nekem valahonnan ismerős a nickneved. Slackware.hu? vagy SuSE mail lista?) :)))))))))))))))))))))))))))

Sikerült!!!

Köszönet xsak-nak!

Azért idebiggyesztem, hogy mit is csináltam. Hátha valakinek kell egy hason-lovacska.

#!/bin/sh
clear
echo ""
echo ""
echo "---------------->xxx viruupdate letoltes"
echo ""
cd ~/xxx/
d=$(date +"%C%y%m%d")
echo "--------------->Pillanat... "
wget http://myusername:mypassword@yyyy.com/directory/virupd_$d.exe
echo "--------------->Letoltve..."
echo ""
echo "----------------->Indul a feltoltes..."
echo ""
cd ~/xxx/
ftp -i -n < ~/my/zzzftpconfig
echo "----------------->A feltoltes sikeresen befejezve!"
echo ""
echo "----------------->Most torolom a definiciot..."
rm ~/nod/*
echo "----------->> KESZ!"
exit

És a "zzzftpconfig" xsak után:

open ftp.tarhelyem.hu
user myusername mypasswd
binary
cd /hasznos
put ./*
close
quit

Lemértem, az egész kerek 1 perc. (A feltöltés lassubb term.) De ha esetleg megspékelem nohup-al, akkor ki is jelentkezhetnék. Csak a script végébe ne felejtsem el írni az exit-et... :)

Mégegyszer hálás köszönetem!