Liệu Rsync có cho phép các tệp được đồng bộ hóa theo cả hai cách không?


25

Tôi đã sao lưu một máy chủ web linux bằng rsync với cygwin. Bây giờ tôi có một bản sao hoàn hảo của máy chủ trên máy tính xách tay windows của tôi. Nếu tôi xóa hoặc sửa đổi một tệp trên máy tính xách tay của mình và chạy lại rsync với cygwin thì nó có xóa / cập nhật cùng một tệp trên máy chủ không? Tôi có ấn tượng rằng nếu tôi xóa / sửa đổi trên máy chủ và chạy rsync trên máy tính xách tay của mình thì nó sẽ xóa / sửa đổi tệp cục bộ trên máy tính xách tay của tôi nhưng điều này có hoạt động ngược lại không?


12
Đây không phải là một câu trả lời cho câu hỏi của bạn, nhưng bạn nên xem qua unison. Đây là một công cụ đồng bộ hóa lưu trạng thái tệp trên cả hai bản sao và do đó cho phép đồng bộ hóa hai chiều. Ngoài ra còn có một gói cygwin.
Dubu

Câu trả lời:


29

Rupync thực hiện đồng bộ hóa một chiều, tuy nhiên, tùy thuộc vào bạn quyết định đồng bộ hóa theo cách nào.

Cú pháp lệnh Rsync như sau:

rsync [OPTION...] SRC... [DEST]

Lưu ý rằng bạn chỉ định đồng bộ hóa từ nguồn đến đích. Nguồn và đích có thể là bất kỳ đường dẫn cục bộ hoặc từ xa.

Ví dụ: nếu bạn muốn sao chép tệp từ máy chủ sang máy tính xách tay của mình, bạn làm:

rsync [OPTION...] <server-path> <laptop-path>

Để đồng bộ theo hướng ngược lại, bạn làm:

rsync [OPTION...] <laptop-path> <server-path>

Vì vậy, để trả lời câu hỏi của bạn: nó phụ thuộc vào cách bạn thực hiện rsync.

Nếu bạn muốn xóa các tập tin trên đích bạn cần sử dụng --deletetùy chọn. Nhưng hãy cẩn thận với nó, bởi vì nếu bạn mắc lỗi khi chỉ định nguồn của mình thì cuối cùng bạn sẽ xóa mọi thứ trên đích của mình. Trước tiên, an toàn hơn để kiểm tra đồng bộ hóa của bạn mà không có --deletetùy chọn và một khi bạn hài lòng với cách thức hoạt động, bạn có thể thêm --deletetùy chọn.

Theo đề xuất của masegaloeh trong các bình luận bên dưới, -nhoặc --dry-runtùy chọn cũng có thể được sử dụng để kiểm tra rsynchành vi lệnh.


9
Lưu ý bổ sung: Để kiểm tra hành vi rsync, bạn có thể sử dụng tham số -nhoặc --dry-run, vì vậy bạn sẽ biết tệp nào sẽ bị xóa và sửa đổi
masegaloeh

1

Một công cụ bao bọc được viết bằng python3 được gọi là lệnh bsynckết thúc findrsynclệnh đơn giản hóa tác vụ. Github repo: https://github.com/doocards/bsync

Đừng sợ hãi khi nó ở trên github (tức là theo cách mà bạn nghĩ rằng bạn phải là một lập trình viên để sử dụng công cụ).


-1

xem xét sử dụng --delete-after và not --delete, điều này sẽ đảm bảo rằng kết thúc nhận của bạn sẽ xóa các tệp sau khi chuyển, không phải trước đó.


Tôi cho rằng các downvote là vì OP không cố rsyncxóa bất cứ thứ gì. Anh ấy tự mình xóa mọi thứ. Đã nói rằng, gợi ý hữu ích cho rsync nói chung. Cảm ơn.
harperville
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.