Synchronizacja plików przez FTP

11

Muszę zsynchronizować pliki na moim komputerze z serwerem, do którego mam tylko dostęp FTP. Nie mogę więc używać rsync (wymagałoby to przynajmniej SFTP, ale jedynym dostępnym kanałem dla mnie jest zwykły waniliowy FTP).

Potrzebuję tylko jednokierunkowej synchronizacji: z mojego komputera na serwer. Słyszałem o programie o nazwie unison , ale wydaje się, że jest przeznaczony do dwukierunkowej synchronizacji i nie jestem pewien, czy można go dostosować do robienia tego, co chcę. Powinienem również dodać, że program powinien działać nieinteraktywnie, aby można go było używać w skrypcie.

Ostatnią opcją byłoby napisanie własnego skryptu, który porówna pliki według czasu modyfikacji (lub coś w tym rodzaju) i skopiuje te, które uległy zmianie. Udało mi się już zamontować katalog FTP w katalogu lokalnym, więc problem sprowadza się do zsynchronizowania dwóch katalogów. Ale moje przeczucie mówi mi, że coś takiego już musi istnieć na wolności.

Rene Saarsoo
źródło

Odpowiedzi:

14

Ponieważ nie mogłem dostać się wputdo pracy, szukałem alternatywy i znalazłem: ncftp .

Mówiąc dokładniej, ncftpput wydaje się robić prawie to, co zostało zaprojektowane do wput. Co najważniejsze dla mnie, nie zawiesił się jak wput. I rzeczywiście udaje mu się przesłać tylko te pliki, które nie uległy zmianie przy użyciu opcji -z :

ncftpput -z -u user -p pass ftp.mydomain.com dir/name files-to-upload...
Rene Saarsoo
źródło
działało dla mnie idealnie
roman m
Na OSX zainstalować poprzez: brew install ncftp.
kenorb
1
Aby skopiować całe drzewa katalogów, użyj -R.
kenorb
+1 za użycie opcji -z poza etykietą, co oznacza „noclobber” / „Don't overwrite”
Barbararter
Chciałbym to znaleźć 2 dni temu. Zrezygnowałem z ncftpget, ponieważ strona podręcznika nie wyświetlała żadnych „tylko nowszych” opcji „pomiń istniejące”. Uderzyłem głową w lftp - od BASH po Python. Potem spróbowałem ncftp w Google i znalazłem twoje rozwiązanie. Poszukałem go dla ncftpget (strona podręcznika) - „-z / -Z Spróbuj (nie) próbować wznawiać przesyłania. Domyślnie jest to wznawiać”. Nie brzmiało to przekonująco. Ale, do cholery… właśnie tej opcji szukałem: pobieraj tylko nowe pliki za pomocą ncftpget. Mam nadzieję, że ten komentarz komuś pomoże.
Anup Nair
3

Jasne, i nazywa się wput

użytkownik7963
źródło
Oczywiście! Jak o tym nie pomyślałem. Całkowicie zapomniałem tego programu. Myślę, że to zadziała, ale
zdam
W niektórych przypadkach wput daje mi „błąd segmentacji”, gdy próbuję coś wgrać.
Rene Saarsoo,