rsync / scp resume¶
Czasami każdy z nas zmuszony jest przesłać po zawodnym połączeniu dużą ilość danych (czy to w MB, czy w ilości plików) w sposób bezpieczny, ale jak to zrobić kiedy „Charyzjusze” sniffują hasła z ftp?
Jednym ze sposobów jest wykorzystanie standardowych narzędzi systemu Linux:
rsync
ssh(d)
Rozwiązaniem problemu jest następująca komenda:
rsync -avzP --rsh=ssh uname_remote_srv@addr_remote:~/dir_to_get .
Jeśli demon ssh rezyduje na innym porcie niż standardowy (22), można zrobić to tak:
rsync -avzP --rsh="ssh -p port" uname_remote_srv@addr_remote:~/dir_to_get .
Co robią te opcje?:
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose increase verbosity
-z, --compress compress file data during the transfer
-P same as --partial --progress
Po dokładniejsze opcje zapraszam do zapoznania się z manualem rsynca (man rsync
).
By wysłać dane na jakiś serwer wystarczy zamienić kolejnością ścieżki ;).
Największą zaletą prezentowanego rozwiązania jest wznawianie dużych transferów (nawet z klientów ftp/scp jeśli plik nie był dzielony na segmenty) - tym zajmuje się rsync. Inną zaletą jest to, że po wygenerowaniu kluczy ssh dalej nie trzeba pamiętać haseł.
Taki zestaw opcji może posłużyć też do synchronizacji katalogów, ale tylko w jedną stronę ;).