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.
#! / bin / bash
echo -e "Silakan masukkan path file lengkap (lolos):"
baca -r path
gema "Path: $ path"
echo -e "Masukkan tujuan:"
baca -r dulu
echo "Tujuan: $ dst"
sementara [1]
melakukan
rsync --progress --partial --append -vz -e ssh "USER @ HOST: $ path" $ dst
jika ["$?" = "0"]; kemudian
echo "rsync selesai secara normal"
keluar
lain
gema "kegagalan rsync. Mencoba lagi dalam satu menit ..."
tidur 60
fi
Selesai
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).
while ./run_script; do echo "Retrying..."; done; echo "Done."
Pastikanrun_script
kembali0
pada kesuksesan.