rsync --remove-source-files menghapus file sumber satu per satu atau setelah rsync selesai?

23

Saya memiliki perintah rsync dalam aplikasi yang menyalin isi folder ke komputer lain. Saya memiliki opsi --remove-source-fileskarena saya hanya tertarik memiliki file di mesin tujuan setelah rsync selesai.

Namun, saya bertanya-tanya bagaimana perilaku rsync jika crash atau terputus saat mentransfer file?

Pertimbangkan saya punya dua file untuk disinkronkan, adan b. Akankah rsync menyalin a, lalu menghapusnya dari sumber, dan mulai menyalin b, atau akan menunggu keduanya adan bakan disalin ke mesin tujuan sebelum menghapus keduanya? Saya telah melihat Anda dapat mengkonfigurasi perilaku ini ketika menghapus file asing dengan beberapa flag, tetapi tidak menemukan satu pun tentang penghapusan file sumber.

brafales
sumber
mirip dengan stackoverflow.com/questions/7380234/… meskipun saya pikir Kyle mungkin benar - kadang-kadang tampaknya rsync menunggu semua file selesai, tetapi kadang-kadang menghapus file sebelum selesai. Masih agak bingung.
Chris2048

Jawaban:

16

Memeriksa kode rsync mengungkapkan bahwa file sumber dihapus ketika dikirim, meskipun mungkin tidak segera terjadi. rsync melipatgandakan operasinya, sehingga pesan bahwa suatu file berhasil diterima (dan karenanya dapat dihapus) mungkin disangga di belakang data lain.

Kyle Jones
sumber
2
Sesuai jawaban saya di bawah ini, saya mencobanya dengan beberapa file, dan file hanya dihapus jika operasi lengkap berhasil. Itu membuat saya berpikir bahwa sinyal "transfer OK" yang Anda temukan hanya diresapi ketika operasi lengkap berhasil.
Daniel Andersson
5
Jika Anda mencobanya dengan lebih dari beberapa file, Anda akan melihat file sumber menghilang sebelum seluruh transfer selesai.
Kyle Jones
sepertinya ketika menentukan direktori dan opsi rekursif, file dalam a tidak langsung dihapus
Andre Holzner
4

Saya mencobanya (dan Anda bisa dengan mudah melakukannya juga, pasti). Mereka dihapus setelah semua file berhasil ditransfer. Jika transfer terputus atau kesalahan lain terjadi, file sumber tidak dihapus, bahkan jika beberapa dari mereka ditransfer OK.

EDIT: sesuai jawaban Kyle Jones, kasus ini mungkin berbeda ketika banyak file terlibat.

Daniel Andersson
sumber