Saya harus mentransfer sejumlah besar data (> 80 GB) melalui ssh menggunakan rsync. Semuanya berfungsi dengan baik, tetapi koneksi DSL tempat data cadangan dikirim akan turun setiap 24 jam hingga 3 menit (beralih penyedia bukan pilihan).
Bagaimana saya:
Mulai ulang transfer secara otomatis saat koneksi dicadangkan?
Pastikan tidak ada dua perintah rsync yang berjalan secara bersamaan?
linux
command-line
ssh
rsync
Sathyajith Bhat
sumber
sumber
while ./run_script; do echo "Retrying..."; done; echo "Done."
Pastikanrun_script
kembali0
pada kesuksesan.Jawaban:
Berikut ini harus membantu:
Ketika koneksi mati, rsync akan keluar dengan kode keluar yang tidak nol. Script ini terus menjalankan rsync, membiarkannya berlanjut sampai sinkronisasi selesai secara normal.
sumber
Ini tidak sama dengan jawaban Peter, tetapi memberikan pengguna pilihan file jarak jauh mana yang dia inginkan, dan di mana dia ingin menyimpannya (serta melakukan rsync di atas ssh). Ganti PENGGUNA dan HOST masing-masing dengan nama pengguna dan host Anda.
Opsi rsync yang digunakan di sini memungkinkan statistik kemajuan selama transfer, penyimpanan sebagian file saat terjadi kegagalan yang tidak terduga, dan kemampuan untuk menambahkan file yang diselesaikan sebagian saat resume. Opsi -v meningkatkan verbositas, opsi -z memungkinkan kompresi (bagus untuk koneksi yang lambat, tetapi membutuhkan lebih banyak daya cpu di kedua ujungnya), dan opsi -e memungkinkan kita untuk melakukan transfer ini melalui ssh (enkripsi selalu baik).
Catatan: Gunakan ini hanya jika Anda memiliki login kunci publik yang diaktifkan dengan ssh Anda, jika tidak maka akan meminta Anda kata sandi ketika restart (membunuh semua fungsi skrip).
sumber
daemon supervisor (manajer kontrol proses) dapat bekerja dengan sangat baik setelah membuat sertifikat rsa dari kedua sisi, dengan konfigurasi yang sama sebagai berikut: (/ etc / supervisor / supervisord.conf adalah path file konfigurasi pada sistem berbasis debian)
sumber
Jawaban @ Peter sepertinya sangat berguna, tetapi bagi saya penting untuk menggunakan
--update
opsi. Setelah koneksi dilanjutkan, tanpa--update
rsync mencoba menyinkronkan semua dari awal. Dengan--update
, file yang sudah ada dilewati.rsync --partial --update --progress -r [SOURCE] [DESTINATION]
sumber
--update
melompati file yang sudah ada ... Termasuk yang belum sepenuhnya disalin ke target. Saya pikir itu bertentangan dengan kebanyakan kasus penggunaan.rsync --partial --update file1 remotehost:file1
. setelah mentransfer 15% saya memutuskan transfer (kill -KILL).