Összes fájl letöltése FTP kapcsolaton keresztül
Buggenak szüksége volt egy olyan programra, amivel FTP tárhelyről rekurzívan le tudja menteni a fájlokat. A hagyományos ftp program ilyenre nem képes, azonban az ncftpget nevű program tökéletesen alkalmas az ilyen feladatra.
Az ncftp ftp kliens rengeteg operációs rendszeren megy, freeBSD, Linuxok, és UNIX variánsok.
Telepítése Debian, Ubuntu és hasonló rendszereken az apt-gettel mehet:
sudo apt-get install ncftp
Nézzük hogyan is működik:
ncftpget -R -v -u "felhnev" -p "jelszo" ftp.hogyan.org /home/charlie/backup /var/www
Nézzük a paramétereket:
- -R : összes almappa és fájl másolása (rekurzív másolás)
- -v : bőbeszédű mód. Ha elhagyjuk, akkor csak egy csíkot látunk az állapotról
- -u „FELHNEV” : FTP felhasználónév. Ha nem adjuk meg, akkor anonymous bejelentkezést hajt végre az ncftp
- -p „jelszo” : A kapcsolathoz használt jelszó. Opcionális, ha nem adjuk meg, akkor megkérdezni a program
- ftp.hogyan.org : FTP szerver címe
- /home/charlie/backup : A saját gépünkön lévő mappa, ahová a tartalmat lementse a program
- /var/www : Az FTP kiszolgálón lévő mappa neve, amit menteni szeretnénk
További hasznos paraméterek:
- -P 21 : ha az FTP kiszolgáló nem az alapértelmezett 21-es porton figyel, a -P paraméterrel adhatjuk meg a megfelelő portot
- -F : passzív mód használata. Ha a csatlakozás sikerül, azonban a fájlokat nem tudjuk letölteni, használjuk ezt a módot
- -DD : Letöltés után törli a távoli fájlt
Ha ilyesmi hibát kapunk:
tar: End of archive volume 1 reached
tar: Sorry, unable to determine archive format.
Could not read directory listing data: Connection reset by peer
Vagy esetleg magyarul:
tar: Ez nem úgy néz ki, mint egy tar archívum
tar: Kilépés hibaállapottal a korábbi hibák miatt
Akkor használjuk a -T opciót, hogy ne TAR módba töltse le a fájlokat. TAR mód esetén gyorsabban megy a letöltés, valamint a fájlrendszer jogokat is sikerülhet megtartani, azonban nem minden kiszolgálóval működik.
Én kb így szoktam az összes file-t leszedni:
Ez sem rossz megoldás, de azért a mostani igen csak szebben néz ki és több mindent be lehet rajta állítani.
Nekem nagyon jól működik, én ezzel szoktam a tárhelyemen lévő cuccokat backupolni.
Ha már Linux, akkor lftp, mint általános ftp kliens (nagyon jó sftp kapcsolatra is). Ha pedig rekurzív könyvtár letöltés, akkor
queue mirror -c távolidir [lokaldir]
A queue a háttérbe küldi a letöltő (vagy feltöltőÖ parancsot és szép kis sort lehet összeállítani.
Feltöltésre is működik
queue mirror -cr lokaldir [távolidir]
parancsként.
A tükrözést értelemszerűen a „mirror” végzi.
Nagyon köszi, hasznos az infó!
Azt hogyan állítom be vajon, hogy egy bizonyos mappát, és annak tartalmát ne töltsön le, minden mást igen?
Ha lftp-t használsz, akkor a queue mirror -c diramitleakaroktolteni megadásával csak és kizárólag az a mappa fog letöltődni, amit le akarsz tölteni és semmi más. Abból azonban minden.
[re=8467]Varsányi Martina[/re]: ha jól értelmezem adsr egy teljes synet akar, excludeval (mint rsynccel), de ilyet ahogy látom egyik se tud.
@charlie: igen, a mirror exclude-ot nem tud. Erre célszerűbb ftp-t protokolt is tudó sync progit beszerezni, mint ftp programtól várni szinkronizációt :).
Üdv!
Nem jól értitek a kérdést! A weblapom images mappáját nem akarom lementeni minden egyes biztonsági mentés alkalmával, mert az majd’ egy giga, valamint az eredeti állományok megvannak a gépemen is, illetve dropboxban is. Ezért kellene az, hogy az összes többi mappa tartalma kerüljön le a biztonsági mentés alkalmával a gépre. Gondolom ez úgy oldható meg, hogy készítek egy scriptet, amibe minden egyes mappát külön-külön letöltök?
Üdv!