it-swarm-vi.tech

Đồng bộ hóa các thư mục từ xa trên Linux

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.)

6
Lakshman Prasad

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
7
Robert Munteanu

Tôi nghĩ bạn nên giải quyết vấn đề của mình bằng rsync, đó là công cụ đồng bộ hóa đã được thử và đúng cho các bản hòa âm.

rsync -uav --delete /loal/path example.com:/remote/path

Lưu ý: Để đồng bộ hóa hai chiều, bạn có thể sử dụng nison cũng như csync .

7
hayalci

Đâ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
  1. -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. [.__.]
    • Sử dụng một tài liệu tham khảo địa phương cho thời gian xác nhận bạn không có sai lầm; nếu một lý do nào đó không được thực hiện, vì lý do tiếp theo sẽ tích lũy nó
    • Bạn có thể thiết lập tập lệnh này dưới dạng mục nhập cronjob trên máy Nguồn
    • Tôi giả sử bạn sẽ sử dụng scp với xác thực khóa công khai
    • Đồng thời giả sử bạn có thể đạt tới backup-server bất cứ khi nào tập lệnh này được phát hành.
    • Để an toàn hơn, bạn có thể thêm kiểm tra để xác nhận sao lưu đã được lưu trữ và sau đó, ban hành lệnh touch
    • Bạn cũng có thể chọn chèn các lệnh để mở rộng các bản sao lưu chồng chúng lên các lệnh trước đó tại điểm Đích; Hoặc, tiếp tục lưu trữ tar.bz2 tăng dần.
2
nik

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
0
umetnic