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

Bài đăng phổ biến từ blog này

Hướng dẫn khắc phục lỗi ngôn ngữ trên vps khiến chúng không chạy được tool?

Cpanel-based servers bị redirect về những trang web xấu

Sự khác biệt giữa VPS, VDS và PDS là gì?