Làm thế nào để đồng bộ hóa hai thư mục địa phương với lsyncd của VPS
(tiếp tục từ bài đăng lần trước Làm thế nào để Mirror Local và Remote Thư mục trên một VPS với lsyncd )
Tập tin cấu hình chúng ta đang thực hiện sẽ đồng bộ thư mục "/ source / to / copy" vào thư mục "/ dest".
1. Cấu hình Phần Toàn cầu
Cài đặt chung được cấu hình trong một phần được gọi là "settings". Phần của chúng tôi sẽ chứa một vài cài đặt cơ bản:
Settings = {
Logfile = "/var/log/lsyncd/lsyncd.log",
StatusFile = "/var/log/lsyncd/lsyncd.status"
}
Các tùy chọn này cho biết lsyncd sử dụng các tệp mà chúng tôi đã tạo ra trước đó.
2. Cấu hình phần Sync
Phần tiếp theo chỉ định cách bạn muốn thực hiện hoạt động đồng bộ. Vì đây là chuyển địa phương nên chúng tôi sẽ sử dụng rsync thông thường để hoàn tất quá trình chuyển.
Cấu hình này được xác định bởi tùy chọn " default.rsync ". Cấu hình này có nghĩa là lsyncd sẽ đợi 20 giây hoặc thu thập 1000 sự kiện đồng bộ hóa riêng biệt và sau đó gọi rsync với những thay đổi cần thiết.
Theo tài liệu hướng dẫn sử dụng lsyncd, ví dụ rsync được gọi tương đương với lệnh:
rsync -ltsd --delete --include-from=- --exclude=* SOURCE TARGET
* Điều này có nghĩa là rsync hoạt động theo cách sau:
-l : sao chép liên kết tượng trưng
-t : sửa đổi thời gian sửa đổi
-s : không chia tách không gian; Chỉ ký tự đại diện
-d : chuyển thư mục mà không cần đệ quy
Điều duy nhất chúng ta cần làm để thực hiện những thay đổi này là chỉ định loại đồng bộ và thư mục nguồn và đích. Phần đồng bộ sẽ giống như sau:
sync {
default.rsync,
source = "/source/to/copy",
target = "/dest"
Nếu bạn muốn thêm các tùy chọn để rsync để sửa đổi hành vi của nó, bạn có thể làm như vậy bằng cách truyền biến "rsyncOpts" thành một mảng chứa các chuỗi được phân tách bằng dấu phẩy, mỗi biểu thức đại diện cho một tùy chọn rsync:
sync {
default.rsync,
source = "/source/to/copy",
target = "/dest",
rsyncOpts = {"rsync option1", "rsync option2", "rsync option3"}
}
3. Kiểm tra đồng bộ hóa cục bộ
Hãy vào thư mục đích và xác minh rằng không có tệp trong thư mục "/ dest" tại thời điểm này:
Cd / dest
Ls
Lệnh cuối cùng không trả lại kết quả vì thư mục "/ dest" phải rỗng.
Chúng ta có thể bắt đầu dịch vụ lsyncd bằng cách đưa ra lệnh sau:
Kiểm tra thư mục với ls:
Ls
file1 file18 file27 file36 file45 file54 file63 file72 file81 file90
file10 file19 file28 file37 file46 file55 file64 file73 file82 file91
file100 file2 file29 file38 file47 file56 file65 file74 file83 file92
file11 file20 file3 file39 file48 file57 file66 file75 file84 file93
file12 file21 file30 file4 file49 file58 file67 file76 file85 file94
file13 file22 file31 file40 file5 file59 file68 file77 file86 file95
file14 file23 file32 file41 file50 file6 file69 file78 file87 file96
file15 file24 file33 file42 file51 file60 file7 file79 file88 file97
file16 file25 file34 file43 file52 file61 file70 file8 file89 file98
file17 file26 file35 file44 file53 file62 file71 file80 file9 file99
Chúng ta có thể thấy rằng tất cả các tập tin được đồng bộ ngay lập tức.
Nếu chúng ta thêm một số tập tin vào thư mục nguồn, chúng ta sẽ gặp sự chậm trễ 20 giây mà chúng ta đã đề cập khi thảo luận về "default.rsync":
Sudo mkdir /source/to/copy/hello{1..100}
Ls
Chúng tôi sẽ không thấy các tệp đầu tiên, nhưng sau khi đã hết thời gian chờ, rsync sẽ đồng bộ hóa các tệp. Kiểm tra lại bằng cách phát hành lại lệnh "ls".
Nhận xét
Đăng nhận xét