การซิงโครไนซ์ไฟล์เรียลไทม์ระหว่างเซิร์ฟเวอร์หลายเครื่องในโหมดมัลติมาสเตอร์
มีเครื่องมือที่ดีที่เรียกว่าlsyncd
การซิงค์ไฟล์ระหว่างเซิร์ฟเวอร์หลายเครื่องตามเวลาจริง ที่นี่ฉันได้ลองกับเซิร์ฟเวอร์สองเครื่อง
โฮสต์: Server1 และ Server2
ระบบปฏิบัติการที่ใช้: CentOS 7
ติดตั้งแพ็คเกจด้านล่างทั้งบนเซิร์ฟเวอร์
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
สร้าง ssh-key ทั้งในเซิร์ฟเวอร์และเพิ่มไปยังauthorized_keys
ไฟล์ [เพิ่มกุญแจสาธารณะของ server1 ไปยังเซิร์ฟเวอร์ 2 authorized_keys
และกุญแจสาธารณะของ server2 ไปยังauthorized_keys
ไฟล์ของเซิร์ฟเวอร์ 1]
การกำหนดค่าเซิร์ฟเวอร์ 1
เปิด/etc/lsyncd.conf
และแสดงความคิดเห็นการกำหนดค่าเริ่มต้นโดยใช้--
ที่จุดเริ่มต้นของบรรทัดและเพิ่มการกำหนดค่าด้านล่างลงในไฟล์
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
delay = 1
}
sync {
default.rsync,
source="/home/test/public_html/",
target="server2:/home/test/public_html/",
rsync = {
compress = true,
acls = true,
verbose = true,
owner = true,
group = true,
perms = true,
rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
}
}
เปลี่ยน IP เป้าหมายในtarget
พารามิเตอร์
คุณสามารถเปลี่ยนdelay
พารามิเตอร์ได้ตามความต้องการของคุณ ที่นี่มันถูกตั้งค่า 1 วินาที
ตอนนี้สร้างไดเรกทอรีบันทึก
# mkdir -p /var/log/lsyncd
เปิดใช้งานlsyncd
บริการเพื่อเริ่มโดยอัตโนมัติ
# systemctl enable lsyncd.service
เริ่มบริการ
# systemctl start lsyncd.service
การกำหนดค่าเซิร์ฟเวอร์ 2
ทำตามการกำหนดค่าเดียวกับ Server1 และเปลี่ยนtarget
IP
ขณะนี้มีการตั้งค่าการซิงโครไนซ์
คุณสามารถตรวจสอบกิจกรรมจาก tailf /var/log/lsyncd/lsyncd.log
ขอบคุณ MelBurslan สำหรับคำแนะนำของเขา