Saya mencoba menyinkronkan file dari server jauh yang tidak dapat diandalkan, artinya koneksi cenderung gagal "secara acak"
rsync: koneksi ditutup secara tak terduga
Rsync disebut dengan --partial, jadi saya ingin dapat memanggil rsync dalam satu lingkaran sampai file sepenuhnya ditransfer. Tampaknya tidak ada bendera untuk memberitahu rsync untuk mencoba lagi.
Apa yang akan menjadi cara terbaik untuk skrip itu? Bash untuk loop?
Jawaban:
Jika Anda menyinkronkan semuanya dalam satu sinkronisasi, panggil rsync dalam satu lingkaran sampai rsync memberi Anda kode pengembalian yang berhasil.
Sesuatu seperti:
Ini akan berulang, memanggil rsync, hingga memberikan kode kembali 0. Anda mungkin ingin menambahkan tidur di sana untuk menjaga dari DOSing server Anda.
sumber
RC=12; while [[ $RC -eq 12 || $RC -eq 30 ]]
(atau status keluar apa pun yang Anda lihat dari tetes jaringan).Saya mengalami masalah yang sama beberapa waktu lalu. Pada akhirnya saya menulis sesuatu yang mirip dengan jawaban David, tetapi memberinya sedikit dengan max retries, menanggapi Ctrl-C, dan semacamnya: http://blog.iangreenleaf.com/2009/03/rsync-and-retrying- sampai-we-get-it.html .
sumber
purtting semuanya bersama dengan sshpass
sumber