2008-12-03 10 views
17

Pobieżę plik logu dość często z serwera ftp (nad którym nie mam kontroli, btw), i wydaje się raczej rediciolus, aby pobrać cały plik za każdym razem.FTP transfer rsync-way

Poszukuję więc programu (linux-ish) lub modułu Perla, który w pewien sposób łączy ftp i rsync, a jedynie "aktualizuje" plik.

Plik dziennika stale rośnie.

Coś takiego w pobliżu?

+0

zobaczyć [Jak korzystać z rsync przez FTP] (http://serverfault.com/q/24622/15186) na [sf] – CharlesB

Odpowiedz

19
 
Install curlftpfs (if on Windows, use cygwin) 

# Create local mount path 
mkdir -p /mnt/myftp 

# Mount the destination ftp site using curlftpfs 
curlftpfs -o allow_other ftp://myusername:[email protected] /mnt/myftp 

# rsync inplace using append option 
# use a long timeout value as the first long phase 
# (the inplace comparison) takes a while 
rsync -rzvvv --inplace --append --progress --stats --timeout=7200 /mnt/myftp/path/to/source/file.log /path/to/local/destination/file.log 

# When you need to umount the ftp site 
sudo umount myftp 

# You can also mount from /etc/fstab by appending the following line 
# curlftpfs#myusername:[email protected] /mnt/myftp fuse allow_other,rw,user,noauto 0 0 

# References: 
# http://linux.byexamples.com/archives/344/mounting-ftp-host-to-local-directory-on-top-of-fuse/ 
# http://lists.samba.org/archive/rsync/2007-May/017762.html 
+0

Jest bardzo nieefektywny w porównaniu do tego, co robi lftp w trybie lustrzanym, – CharlesB

+0

@CharlesB może być nieskuteczne t ale może być skryptowany do automatycznego uruchamiania. Nie rozumiem, jak zautomatyzować lftp/mirror? – justinhartman

+2

@justinhartman sprawdziłeś http://serverfault.com/a/24833/15186? Pokazuje, jak zrobić to automatycznie. – CharlesB

0

Myślę, że próbujesz uzyskać funkcje rsync z ftp i nie będzie łatwo działać. Polecam rozwiązanie czystego rsync.

+2

OP mówi, że nie ma kontroli nad serwerem, więc rsync nie jest opcją – CharlesB

4

Would not "Download" wznowić pracę w Twoim przypadku?

Udawaj przelewu zostało przerwane ostatni raz i ponownie uruchomić pobieranie od miejsca zatrzymania