Làm thế nào để dọn dẹp sau khi rsync thất bại?


12

Tôi đã giết một quá trình "rsync -ah" cục bộ.
Nó để lại các tập tin rác như ".abc.vmdk.zxivMN" trong thư mục đích.
Các tập tin rác không bị xóa trong các lần chạy "rsync -ah" liên tiếp.

Chi tiết:
Tôi đã chạy diff trên cả hai thư mục mà tôi đã đồng bộ hóa và nó báo cáo: "Chỉ trong / mnt / archive1 / Documents / general: .abc.vmdk.zxivMN"

Cách tốt nhất để dọn sạch các tệp rsync tạm thời là gì?

Câu trả lời:


12

Yêu cầu rsyncxóa các tệp không có trên nguồn, với --delete-duringhoặc --delete-after. Hãy cẩn thận và chỉ sử dụng tùy chọn này nếu bạn không có tệp hợp pháp trên mục tiêu không có trên nguồn.

Xem man rsync.

Tất nhiên, bạn luôn có thể xóa thủ công các tệp bạn đã phát hiện với diff...


Điều này là không tốt khi bạn đang làm một bản sao chứ không phải là một động thái.
Sridhar Sarnobat

6

Tôi làm điều đó bằng cách sử dụng

find -type f -iname ".*.*.??????" -ls

để thử nghiệm và

find -type f -iname ".*.*.??????" -delete

cho rõ ràng


-1

Tôi thấy lệnh sau hoạt động với tôi khi cố gắng xóa các tệp tạm thời bị rsync bỏ lại sau khi chuyển không thành công.

find vod-content/ -path '*/.*' -print0 | xargs -0 -r rm -v

Những gì nó làm là nó tìm thấy tất cả các tệp "ẩn" (các tệp bắt đầu bằng ký tự ".") Và chuyển chúng vào lệnh "rm" để xóa chúng.

Một vấn đề được biết rõ ràng liên quan đến mã ở trên là nếu nội dung của bạn có chứa các tệp ẩn thì lệnh này cũng sẽ xóa chúng.


-2

Tôi đang tìm kiếm một giải pháp tốt hơn nhưng cách duy nhất tôi có thể nghĩ đến là di chuyển tất cả emptycác tệp bắt đầu bằng một .và có thêm hai dấu chấm trong đó, vào một thư mục rác (sử dụng rmcó một chút rủi ro):

find -type f -empty -iname ".*.*.*" | xargs -n 1 -d'\n' mv -v -t /tmp/

Không có nghĩa là hoàn hảo.


Không có lời giải thích
Sridhar Sarnobat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.