Tôi có một thư mục a / và một thư mục từ xa A /. Bây giờ tôi chạy một cái gì đó như thế này trên Makefile:
get-music:
rsync -avzru server:/media/10001/music/ /media/Incoming/music/
put-music:
rsync -avzru /media/Incoming/music/ server:/media/10001/music/
sync-music: get-music put-music
khi tôi tạo nhạc đồng bộ, trước tiên nó nhận tất cả các khác biệt từ máy chủ đến cục bộ và sau đó ngược lại, gửi tất cả các khác biệt từ cục bộ đến máy chủ.
Điều này hoạt động rất tốt nếu chỉ có bản cập nhật hoặc tệp mới trong tương lai. Nếu có xóa, nó không làm bất cứ điều gì.
Trong rsync có các tùy chọn --delete và --delete-after để giúp thực hiện những gì tôi muốn nhưng điều là, nó không hoạt động trên đồng bộ hóa 2 chiều.
Nếu tôi muốn xóa các tệp máy chủ trên hệ thống, khi các tệp cục bộ đã bị xóa, nó sẽ hoạt động, nhưng nếu, vì một số lý do (giải thích sau), tôi có một số tệp không có trong máy chủ nhưng tồn tại cục bộ và chúng đã bị xóa, Tôi muốn xóa cục bộ chúng và không sao chép máy chủ (như nó xảy ra).
Có điều là tôi có 3 máy trong ngữ cảnh:
- máy tính để bàn
- sổ tay
- máy chủ gia đình
Vì vậy, đôi khi, máy chủ sẽ có các tệp đã bị xóa bằng đồng bộ hóa sổ ghi chép, chẳng hạn như sau đó, khi tôi chạy đồng bộ hóa với máy tính để bàn của mình (nơi các tệp máy chủ đã xóa vẫn tồn tại), tôi muốn các tệp này bị xóa và không bị được sao chép lại vào máy chủ.
Tôi đoán điều này chỉ có thể thực hiện được với cơ sở dữ liệu và theo dõi các hoạt động: P
Bất kỳ giải pháp đơn giản hơn? Cảm ơn bạn.