Làm thế nào để tự động lưu trữ một thư mục?


47

Tôi muốn làm đồng bộ một chiều.

Tôi đang có Folder Atrên máy tính của tôi liên tục được cập nhật với nội dung.
Một cái khác Folder Bđược sử dụng cho mục đích sao lưu trên ổ cứng gắn ngoài.

Bây giờ điều tôi mong đợi là bất cứ thứ gì có trong thư mục A đều được chuyển đến thư mục B. Tuy nhiên, thứ gì đó có trong B và KHÔNG trong A "" sẽ KHÔNG được sao chép vào A "".

Tóm lại, thư mục sao lưu có thể sao chép mọi thứ từ thư mục nguồn, tuy nhiên không có gì nên sao chép thư mục sao lưu mẫu vào nguồn.


Đó không phải là đồng bộ hóa ....
Braiam

@Braiam nó được gọi là gì? Tôi không thể tự mình nghĩ ra một từ như OP. Nếu bạn biết, xin vui lòng cho biết.
Jo Smo

@JoSmo sao chép? Lưu trữ? Sao lưu?
Braiam

@Braiam cảm ơn, bây giờ tôi cảm thấy ngu ngốc khi hỏi. : D
Jo Smo

Câu trả lời:


63

Âm thanh như một nhiệm vụ hoàn hảo cho rsync

sudo rsync -az /path_to/A /path_to/B

-Một chế độ lưu trữ (ngụ ý đệ quy, sao chép liên kết tượng trưng dưới dạng liên kết tượng trưng, ​​giữ nguyên chủ sở hữu, thời gian sửa đổi, nhóm, chủ sở hữu, tệp đặc biệt và thiết bị)

-z nén dữ liệu

Nếu bạn muốn xóa các tệp đã bị xóa trong A khỏi các tệp trong B, hãy sử dụng --deletetùy chọn

Để biết thêm thông tin, xem:

https://help.ubfox.com/community/rsync

Bạn có thể chạy rsync từ cron

sudo crontab -e

Thêm vào một nhiệm vụ hàng giờ

@hourly rsync /path_to/A /path_to/B

https://help.ubfox.com/community/CronHowto


7
Nếu có các thư mục trong các thư mục, bạn sẽ cần sử dụng tùy chọn -r.
John S Gruber

2
Tôi đến bữa tiệc hơi muộn, nhưng để chạy tập lệnh đồng bộ hóa khi ổ cứng được kết nối, bạn nên sử dụng udev. Kiểm tra câu hỏi này một thời gian trước. Askubfox.com/questions/25071/ trên
jackweirdy

1
@JohnSGruber tùy chọn -a ngụ ý đệ quy, tôi sẽ chỉnh sửa câu trả lời để chỉ ra điều này
Tomas

1
nếu các tệp trên cùng một máy -zchỉ làm chậm quá trình
Postadelmaga

1
@JoSmo - askubuntu.com/questions/476041/...askubuntu.com/questions/609968/... và người đàn ông rsync và đặt một câu hỏi mới nếu cần thiết thay vì sau đó hỏi trong ý kiến.
Panther

15

Tôi khuyên bạn nên sử dụng rsync cho mục đích này. Rsync cực kỳ nhanh, ổn định và linh hoạt. Có phần giới thiệu hay tại http://help.ubfox.com/community/rsync

Nếu bạn muốn, có một giao diện đồ họa tùy chọn: grsync

 sudo rsync -azv --exclude 'dir1' /home/path/folderA/ /home/path/folderB

Lệnh trên sẽ sao chép từ thư mụcA sang thư mụcB trừ dir1. Những lá cờ là

-a preserves time stamps
-z is to enable compression
-v verbose

Có nhiều lựa chọn hơn có sẵn.


8

Tôi luôn thấy Unison rất hữu ích. Nó có giao diện dựa trên văn bản hoặc GUI, và khá nhiều tùy chọn khác nhau để điều chỉnh nó theo những gì bạn muốn (với một chút khó khăn). Phải mất khá nhiều thời gian để thực hiện đồng bộ hóa đầu tiên, nhưng sau đó thì thật tuyệt vời. Bạn có thể làm cho nó đồng bộ một chiều, như bạn muốn, nhưng nó sẽ tự động nhận được nó. Nó cũng có thể xóa khỏi bản sao lưu hoặc không như bạn chọn.

Bạn cũng có thể tìm thấy sự cố với các quyền được hỗ trợ ở định dạng tệp ubfox, nhưng có thể không phải ở ổ cứng ngoài (tùy thuộc vào việc ổ cứng ngoài có được sử dụng trong máy Windows không, đây có thể là một điều tốt), vì vậy bạn sẽ muốn đồng bộ hóa mà không có quyền.

Dù sao, điều tuyệt vời là với hướng dẫn, việc thiết lập nó một lần tương đối đơn giản và sau đó là giao diện GUI bất cứ khi nào bạn muốn làm.

Dưới đây là một số thông tin về nó: http://www.ubuntugeek.com/unison-file-synyncization-tool.html

Và đây là hướng dẫn: http://www.cis.upenn.edu/~bcpierce/unison/doad/release/urdy/unison-manual.html#tutorial


4
rsync -avPr --ignore-existing /home/username/Research/ /path/to/other/folder/on/hdd/

Điều này sẽ đồng bộ hóa và chỉ sao chép dữ liệu không tồn tại trong /other/folder/on/hdd/


2

Tôi đồng ý với các câu trả lời khác, bạn có thể sử dụng trong rsync trong Terminal hoặc các giao diện Grsync , luckyBackup , Conduit hoặc Unison nổi tiếng .

Một ứng dụng tuyệt vời khác là Krusader (Trình quản lý tệp Twin-Panel cho KDE), trong menu Công cụ bạn có thể tìm thấy "Syncronize Directories", rất hữu ích.

Trong trường hợp cuối cùng, bạn có thể cài đặt Wine và cài đặt một trình quản lý tệp hai ngăn tuyệt vời khác như Total Commander .

Dù sao, bạn có rất nhiều tùy chọn và tất cả chúng đều có trong Trung tâm phần mềm Ubuntu.


1

Tôi muốn giới thiệu Conduit để đồng bộ hóa đơn giản. Nó có sẵn hệ thống phần mềm. Nó làm chính xác những gì bạn đang tìm kiếm


0

Có một công cụ shell khá tiện dụng được gọi là rsnapshot - http://www.rsnapshot.org/ - tiện ích chụp nhanh hệ thống tập tin để tạo bản sao lưu của các hệ thống cục bộ và từ xa. sử dụng rsync và các liên kết cứng giúp có thể giữ nhiều bản sao lưu toàn bộ hệ thống tệp có sẵn ngay lập tức. Chỉ cần làm sudo apt-get install rsnapshotvà kiểm trainfo rsnapshot


0

Bạn có thể đồng bộ hóa các tập tin bên trong hai direcotries bằng cách:

rsync -rv /path/to/directory1/ /path/to/directory2

Làm rsync -rv /path/to/directory1 /path/to/directory2sẽ tạo ra directory1bên trong directory2, như thế này/path/to/directory2/directory1/[files]

Bạn có thể chạy khô bằng cách sử dụng -nchuyển đổi, như thế nàyrsync -rnv /path/to/directory1/ /path/to/directory2

Tham khảo: https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps


0

Nếu bạn muốn giao diện đồ họa trên một hệ thống có cấu hình cao, hãy dùng thử FreeFileSync. Xem, ví dụ: http://linuxnorth.wordpress.com/2011/11/29/file-and-folder-syn syncization / Cụ thể, bạn muốn tùy chọn "Cập nhật" để đồng bộ hóa sẽ "Sao chép các tệp mới hoặc cập nhật vào thư mục bên phải ", tức là sao chép từ thư mục bên trái sang thư mục bên phải trong màn hình hai cửa sổ.

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.