Bu Peter'ın cevabının aynısıdır, ancak kullanıcıya hangi uzak dosyayı istediği ve onu saklamak istediği bir seçenek sunar (rsync'i ssh üzerinden yürütmek gibi). USER ve HOST kodlarını sırasıyla kullanıcı adınız ve ana bilgisayarınızla değiştirin.
#! / Bin / bash
echo -e "Lütfen tam (kaçan) dosya yolunu girin:"
-r yolunu oku
echo "Yol: $ yol"
echo -e "Hedefi giriniz:"
-r dst oku
echo "Hedef: $ dst"
iken [1]
yap
rsync - ilerleme - kısmi - ek - vz - e ssh "USER @ HOST: $ path" $ dst
eğer ["$?" = "0"]; sonra
echo "rsync normalde tamamlandı"
çıkış
Başka
echo "rsync hatası. Bir dakika içinde yeniden deneniyor ..."
60 uyku
fi
tamam
Burada kullanılan rsync seçenekleri, transfer sırasındaki ilerleme istatistiklerini, beklenmedik bir hata durumunda kısmi dosyaların kaydedilmesini ve devam ettirildiğinde kısmen tamamlanmış dosyaların eklenebilmesini sağlar. -V seçeneği ayrıntı düzeyini artırır, -z seçeneği sıkıştırmayı sağlar (yavaş bağlantı için iyidir, ancak her iki uçta daha fazla işlemci gücü gerektirir) ve -e seçeneği bu aktarımı ssh üzerinden yapmamızı sağlar (şifreleme her zaman iyidir).
Not: Bunu sadece ssh ile etkin ortak anahtar girişi yaptıysanız kullanın, aksi halde yeniden başladığında sizden şifre isteyecektir (betiğin tüm işlevlerini öldürür).
while ./run_script; do echo "Retrying..."; done; echo "Done."
aldığınızdan emin olun .run_script
0