lsyncd เป็นเครื่องมือช่วยในการ sync ข้อมูลผ่าน rsync โดยไม่ต้องสั่ง rsync ทุกครั้งที่มีข้อมูลเปลี่ยนแปลง lsyncd จะทำงานเป็น deamon คอยดูการเปลี่ยนแปลงของไฟล์ในไดเรคทอรี source และสั่ง sync ไปยังไดเรคทอรีปลายทาง หรือเครื่องปลายทางได้ ยกตัวอย่าง เช่น sync ข้อมูลเครื่องที่ 1 ไปยังเครื่องที่ 2 แบบอัตโนมัติทุกครั้งที่มีการเปลี่ยนแปลง เป็นต้น

เริ่มจากสร้าง ssh key ที่เครื่องหลัก

ssh-keygen

จากนั้นสั่ง ssh-copy-id คัดลอก ssh key ไปยังเครื่องปลายทาง

ssh-copy-id remote_mirror_ip_address

สร้าง source ไดเรคทอรีเก็บไฟล์ที่ต้องการ sync

mkdir /source

ให้ ssh ไปที่เครื่องปลายทาง จากนั้นสร้างไดเรคทอรี /target ที่เครื่องปลายทางดังนี้

mkdir /target

กลับมาที่เครื่องหลัก ติดตั้ง lsyncd ดังนี้

sudo apt-get install lsyncd

เขียน config ลงในไฟล์ /etc/lsyncd/lsyncd.conf.lua ดังนี้

settings {
        logfile = "/var/log/lsyncd/lsyncd.log",
        statusFile = "/var/log/lsyncd/lsyncd.status"
}

sync {
        default.rsyncssh,
        source = "/source",
        host = "remote_mirror_ip_address",
        targetdir = "/target"
}

จากนั้นสั่ง restart lsyncd ได้เลย

sudo service lsyncd restart

ทดลองสร้างไฟล์ลงใน /source ดังนี้

touch /source/file{1..1000}

คุณจะได้ไฟล์ file1-file1000 ใน /source

ให้คุณ ssh ไปยังเครื่องปลายทางจะพบว่า /target มีไฟล์ที่ sync มาจากเครื่องหลักแล้ว

Comments are closed.