Đây là lệnh fssync có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
fssync - Công cụ đồng bộ hóa hệ thống tệp (1 chiều, qua SSH)
SYNOPSIS
fssync -d db -r nguồn gốc [tùy chọn...] chủ nhà
MÔ TẢ
fssync là công cụ đồng bộ hóa tệp 1 chiều theo dõi inodes và duy trì
cơ sở dữ liệu của các tệp ở phía từ xa, giúp nó có thể:
· Xử lý hiệu quả một số lượng lớn các dirs / tệp
· Phát hiện đổi tên / di chuyển và liên kết cứng
Nó nhằm mục đích giảm thiểu lưu lượng mạng và đồng bộ hóa mọi chi tiết của hệ thống tệp:
· Tất cả các loại inode: tệp, dir, khối / ký tự / năm mươi, ổ cắm, liên kết biểu tượng
· Bảo tồn các liên kết cứng
· Thời gian sửa đổi, quyền sở hữu / quyền / ACL, các thuộc tính mở rộng
· Tập tin thưa thớt
Các tính năng khác:
· Nó có thể được cấu hình để loại trừ các tệp khỏi đồng bộ hóa
· Fssync có thể bị gián đoạn và tiếp tục lại bất cứ lúc nào, giúp nó có thể chịu được các lỗi ngẫu nhiên
(ví dụ: lỗi mạng)
· Thuật toán đồng bộ hóa nội dung tệp được thiết kế để xử lý các tệp lớn như hình ảnh VM
hiệu quả, bằng cách cập nhật các khối đã sửa đổi kích thước cố định tại chỗ
Cách sử dụng chính của fssync là để ngăn mất dữ liệu trong trường hợp lỗi phần cứng, trong đó RAID1 là
không thể thực hiện được (ví dụ như trong máy tính xách tay).
On Btrfs [1] hệ thống tệp, fssync là một giải pháp thay thế hữu ích cho btrfs gửi (Và nhận)
các lệnh, nhờ khả năng lọc. Điều này có thể được kết hợp với chụp nhanh Btrfs
ở phía đích để có giải pháp sao lưu đầy đủ.
SỬ DỤNG
Sử dụng fssync --Cứu giúp để có được danh sách đầy đủ các tùy chọn.
Điều quan trọng nhất cần nhớ là cơ sở dữ liệu cục bộ phải khớp chính xác với những gì
trên máy chủ đích:
· Các tệp được sao chép trên máy chủ đích không được sửa đổi. Và không có gì nên
được tạo thủ công bên trong các thư mục đích. Nếu bạn vẫn muốn truy cập dữ liệu trên
máy chủ từ xa, bạn nên làm điều đó thông qua một mounts bind chỉ đọc (yêu cầu Linux> =
2.6.26).
· Bạn phải có 1 cơ sở dữ liệu cho mỗi điểm đến, nếu bạn dự định có nhiều bản sao giống nhau
thư mục nguồn.
Nhìn vào -c tùy chọn nếu bạn tự hỏi liệu cơ sở dữ liệu của mình có khớp với thư mục đích hay không.
Lần chạy fssync đầu tiên:
· Cách dễ nhất là để fssync làm mọi thứ. Chỉ định một đường dẫn tệp không tồn tại đến -d
tùy chọn và một thư mục đích trống hoặc không tồn tại (xem -R Lựa chọn). fssync sẽ
tự động tạo cơ sở dữ liệu và sao chép tất cả các dirs / tệp vào máy chủ từ xa.
· Một cách nhanh hơn có thể là thực hiện bản sao ban đầu bằng các phương tiện khác, chẳng hạn như bản sao thô của một
vách ngăn. Nếu bạn hoàn toàn chắc chắn nguồn và đích hoàn toàn giống nhau,
bạn có thể khởi tạo cơ sở dữ liệu bằng cách chỉ định - với tư cách là người dẫn chương trình. Nếu số inode giống nhau
ở cả hai phía, đây là trường hợp nếu dữ liệu được sao chép ở cấp khối, bạn có thể sửa đổi
phân vùng nguồn trong khi bạn đang khởi tạo DB trên đích và quay trở lại
DB cục bộ.
Có thể tìm thấy ví dụ về trình bao bọc xung quanh fssync, với bộ lọc tại ví dụ / fssync_home
fssync không bao giờ đi xuống các thư mục trên các hệ thống tệp khác. Inodes được che bởi các điểm gắn kết
cũng bị bỏ qua, vì vậy chúng nên được ngắt kết nối tạm thời nếu bạn muốn chúng
đồng bộ hóa. Kết quả tương tự có thể đạt được bằng cách đồng bộ hóa từ một liên kết ràng buộc.
Xem thêm NONE vô giá trị chuyển đổi [2] vá nếu bạn không cần mã hóa và bạn muốn
tăng tốc kết nối SSH của bạn.
LÀM THẾ NÀO IT LÀM RA SAO
fssync duy trì một bảng SQLite duy nhất của tất cả các dirs / tệp nằm ở phía từ xa. Mỗi
hàng khớp với một đường dẫn, với inode của nó (ở phía cục bộ), siêu dữ liệu khác (ở phía từ xa) và
đã kiểm tra cờ.
Khi chạy, fssync lặp lại đệ quy qua tất cả các tệp / tệp cục bộ và cho từng đường dẫn
điều đó không bị bỏ qua (xem -f tùy chọn), nó truy vấn DB để quyết định phải làm gì. Nếu đã
đã kiểm tra, đường dẫn bị bỏ qua ngay lập tức. Khi một đường dẫn được đồng bộ hóa, nó được đánh dấu là
đã kiểm tra. Cuối cùng, tất cả các hàng không đã kiểm tra tương ứng với các đường dẫn không tồn tại
nữa không. Sau khi chúng bị xóa ở phía điều khiển từ xa, tất cả đã kiểm tra cờ được đặt lại.
Không khoan dung
Trên thực tế, fssync không yêu cầu cơ sở dữ liệu phải khớp hoàn toàn với đích. Nó
chịu đựng một số khác biệt để khôi phục bất kỳ đồng bộ hóa bị gián đoạn nào gây ra bởi
lỗi mạng, lỗi hoạt động tệp hoặc bất kỳ điều gì khác ngoài sự cố hệ điều hành
của máy chủ cục bộ (hoặc thứ gì đó tương tự như mất điện).
Trong hầu hết các trường hợp, điều này được thực hiện bởi máy chủ từ xa, máy chủ này sẽ tự động tạo (hoặc ghi đè)
một inode của loại mong đợi nếu cần thiết. Ngoại lệ duy nhất là điều khiển từ xa sẽ
không bao giờ tự xóa một thư mục không trống. Đối với hầu hết các trường hợp phức tạp, fssync nhật ký
hoạt động trong cơ sở dữ liệu: trong trường hợp không thành công, fssync sẽ có thể khôi phục vào lần tiếp theo
đồng bộ hóa.
Cuộc đua điều kiện
Điều kiện chủng tộc có nghĩa là các quy trình khác trên máy chủ cục bộ đang sửa đổi các inodes
fssync đang đồng bộ hóa. fssync xử lý bất kỳ loại điều kiện chủng tộc nào. Trên thực tế, fssync có
không có gì để làm cho hầu hết các trường hợp.
Khi một điều kiện đua xảy ra, fssync không đảm bảo rằng dữ liệu từ xa nằm trong
trạng thái nhất quán. Mỗi lần đồng bộ hóa luôn khắc phục sự không nhất quán hiện có nhưng có thể giới thiệu
những người khác, vì vậy fssync không thích hợp để sao lưu nóng cơ sở dữ liệu.
Với Btrfs, bạn có thể có được sự nhất quán bằng cách chụp nhanh ở phía nguồn.
TƯƠNG TỰ DỰ ÁN
Ý tưởng duy trì một cơ sở dữ liệu cục bộ thực sự xuất phát từ csync2 [3]. Tôi sắp sửa
áp dụng nó khi tôi nhận ra rằng tôi thực sự cần một công cụ luôn phát hiện tên / động thái của
tệp lớn. Đó là lý do tại sao tôi thấy fssync là bản viết lại một phần của csync2, với tính năng theo dõi inode và
mà không có đồng bộ hóa hai chiều. Cơ sở dữ liệu cục bộ thực sự làm cho fssync & csync2
nhanh hơn cái nổi tiếng rsync [4.
Sử dụng fssync trực tuyến bằng các dịch vụ onworks.net