Saya selalu bertanya-tanya mengapa rsync
mencoba mentransfer file ke lokasi yang jauh di mana ia telah membaca / mengeksekusi izin untuk direktori target, tetapi tidak ada izin menulis untuk membuat file tujuan yang sebenarnya. Ini dapat disimulasikan bahkan secara lokal ketika mencoba menyalin file sebagai pengguna biasa ke / , rsync
akan mentransfer seluruh file (juga memakan waktu agak lama untuk file besar) dan akhirnya gagal dengan
rsync: mkstemp "/.myTargetFile" failed: Permission denied (13)
Jadi sepertinya sudah gagal saat startup ketika mencoba membuat file sementara ( dot -file) selama transfer. Mengapa tidak memperhatikan hal ini dan membatalkan lebih awal daripada mencoba menyalin seluruh file tanpa memiliki izin menulis?
Dan di mana itu menyalin file jika tidak dapat membuat file sementara? Saya tidak dapat melihat peningkatan memori dari proses rsync dan juga tidak ada file yang sesuai di / tmp . Sepertinya itu langsung membuang data di tujuan tetapi tetap melanjutkan dengan transfer.
sumber
--inplace
itu mentransfer seluruh file sampai memperhatikan kurangnya izin tulis.--inplace
sangat berguna ketika Anda memiliki hak untuk menulis ke file tetapi tidak berisi direktori.Ini tampaknya merupakan kelemahan dari protokol rsync saat ini seperti yang dijelaskan dalam pelacak bug . Protokol rsync tidak dapat menentukan sebelumnya apakah memiliki izin menulis di target. Alih-alih hanya mengirim dan memeriksa keberhasilan atau kegagalan sesudahnya.
sumber
Rsync membuat file sementara pada folder yang sama dari file target, jadi dalam hal ini, Anda harus menyalin beberapa file
/
, karena Anda tidak meluncurkannya sebagai root, dan biasanya/
hanya dapat ditulis oleh root, sehingga gagal.Untuk mengetahui file apa yang sedang disalin, sampaikan parameternya
-v
sumber
rsync
membuat file sementara di folder yang sama dengan direktori target. Tetapi bahkan jika itu tidak dapat membuat file-file sementara itu masih memulai transfer dan gagal setelah itu bukannya memeriksa tepat di awal jika itu semua memiliki izin menulis yang diperlukan. Saya ingin tahu mengapa berperilaku seperti itu.