Tôi đang đùa giỡn với một kịch bản bash phù thủy giữa hai thiết bị NAS Onsite và Offsite. Mục tiêu là để có một bản sao lưu ngoài NAS tại chỗ trên NAS ngoại vi.
Chúng tôi làm việc trên bản đồ tại chỗ với các tệp khá lớn. aprox 40GB trở lên. Theo mặc định, Rsync có thể gửi lại các tập tin nếu chúng được đổi tên hoặc chuyển sang thư mục con trên số phận nguồn. Điều đó không hiệu quả lắm, (chúng tôi di chuyển rất nhiều tệp lớn xung quanh NAS tại chỗ). do đó, nhiều tệp lớn sẽ được tải lên lại NAS ngoại vi và trì hoãn quá trình.
Tôi thấy rằng có một bản vá cho rsync, thêm chức năng --detect-đổi tên và --detect-move. (xem liên kết dưới đây :)
https://moderncaveman.org/projects/modern/rsync-detect-renamed/patching-rsync-for-renamed.html
Tôi đã thêm tùy chọn --detect-move và các tệp được di chuyển nhanh trên NAS ngoại vi và tệp sẽ không được tải lên lại. Nhưng nó chỉ hoạt động với tùy chọn --delete-after, và với tính năng được bật và một cái gì đó được loại bỏ trên NAS tại chỗ, nó cũng sẽ bị xóa trên NAS ngoại vi. Vì vậy, tập lệnh của tôi có nhiều chức năng đồng bộ hơn là chức năng sao lưu. Tôi nghĩ rằng đó là rủi ro.
Có cách nào để giữ các tệp đã bị xóa trên NAS tại chỗ trên NAS ngoại vi (không có lỗi sau hay gì không?) Nhưng stil có chức năng --detect-move hoạt động không?
Xem lệnh rsync của tôi dưới đây:
rsync -avzH --detect-đã di chuyển --delete-after --prowards
cảm ơn trước.
--remove-after
tùy chọn "? Lệnh của bạn cho thấy bạn đang sử dụng--delete-after
không phải--remove-after
...