Tôi luôn tự hỏi tại sao rsync
cố gắng chuyển một tệp đến một vị trí từ xa nơi nó có quyền đọc / thực thi cho thư mục đích, nhưng không có quyền ghi để tạo tệp đích thực. Điều này có thể được mô phỏng ngay cả cục bộ khi cố gắng sao chép một tệp như một người dùng thông thường sang / , rsync
sẽ chuyển toàn bộ tệp (cũng mất khá nhiều thời gian cho các tệp lớn) và cuối cùng thất bại với
rsync: mkstemp "/.myTargetFile" failed: Permission denied (13)
Vì vậy, nó dường như đã thất bại khi khởi động khi cố gắng tạo tệp tạm thời ( dấu chấm -file) trong khi chuyển. Tại sao nó không nhận thấy điều này và hủy bỏ sớm thay vì cố gắng sao chép toàn bộ tệp mà không có bất kỳ quyền ghi nào?
Và nó sao chép tập tin vào đâu nếu nó không thể tạo tập tin tạm thời? Tôi không thể thấy bất kỳ sự tăng bộ nhớ nào của các quá trình rsync và cũng không có tệp tương ứng trong / tmp . Có vẻ như nó trực tiếp loại bỏ dữ liệu tại đích nhưng vẫn tiếp tục chuyển.
--inplace
nó chuyển toàn bộ tập tin cho đến khi nhận thấy thiếu quyền ghi.