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ę ;).

Comments

comments powered by Disqus