Ö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.

8 thoughts on “Összes fájl letöltése FTP kapcsolaton keresztül

  1. 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.

  2. 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.

  3. 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?

  4. 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.

  5. [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.

  6. @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 :).

  7. Ü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!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Ez az oldal az Akismet szolgáltatást használja a spam csökkentésére. Ismerje meg a hozzászólás adatainak feldolgozását .