Cách đơn giản nhất để đồng bộ hóa tăng dần một chiều của một thư mục có trên hệ thống Linux.
+1 để sử dụng dòng lệnh. +2 vì không sử dụng rsync (Có vẻ như có một số vấn đề trên hệ thống của tôi.)
csync là trình đồng bộ hóa tệp được thiết kế dành riêng cho bạn, người dùng bình thường.
csync là một thư viện và vận chuyển máy khách dòng lệnh theo mặc định. Nó không có máy chủ và cho phép đồng bộ hóa thông qua sftp
hoặc samba
.
Ví dụ sử dụng:
csync /home/csync smb://csync:[email protected]/Users/csync
csync /home/csync sftp://[email protected]:2222/home/csync
Đây là cách tôi sẽ thực hiện đồng bộ một chiều với các công cụ trần.
Khi bắt đầu, tar toàn bộ tập tin và sao chép chúng vào điểm đích.
[.__.] Ngoài ra, thiết lập một điểm đánh dấu trong thư mục cơ sở.
touch /Source/base/directory/last-sync-time.txt
Bây giờ, chúng tôi muốn tiếp tục đồng bộ hóa từ Nguồn đến Đích.
Ở khe thời gian tiếp theo để đồng bộ hóa chuyển tiếp (từ Nguồn tới Đích),
# The backup script
cd /Source/base/directory
tar cfj -N ./last-sync-time.txt backup.tar.bz2 .
scp backup.tar.bz2 [email protected]:/Backup/Directory/
touch /Source/base/directory/last-sync-time.txt
rm -f backup.tar.bz2
-N ./filename
nói với tar để chỉ lưu trữ các tệp được sửa đổi hoặc tạo sau khi filename
được sửa đổi/tạo. [.__.]scp
với xác thực khóa công khai backup-server
bất cứ khi nào tập lệnh này được phát hành.touch
tar.bz2
tăng dần.Tôi sử dụng tập lệnh ngắn này để theo dõi và liên tục đồng bộ hóa một thư mục với thư mục sftp từ xa;
#!/bin/sh
dir1=/home/user/folder
while inotifywait -qqre modify "$dir1";
do
csync /home/user/folder sftp://remoteuser:[email protected]:remoteport/remotefolderpath
done