心得:

這個同步方式與使用 shell script 配合 crontab 的作法不太相同

shell script + crontab 比較屬於定期定時執行使用,lsync則可以使用在不定時的作業上

例如多個網站資料需要即時同步,選擇lsync比較來使用就會比較適合

但如果是 log 的第二次備份,考量資源下,則可以在固定的時間一次進行就好

這時候使用 shell script + crontab 就會比較理想

安裝:

可以直接下載原始碼自己編譯安裝,或是透過yum工具新增epel後安裝

先安裝epel套件庫,再進行安裝

# yum install epel-release
# yum install lsync

設定檔位置

# vim /etc/lsyncd.conf

啟動

# systemctl start lsyncd

開機啟動

# systemctl enable lsyncd

參數說明:

setting 參數
logfile:lsync的log存放位置
statusFile:lsync監控位置的狀態紀錄
statusInterval:將lsync監控的狀態寫入log時間設定
inotifyMode:
指定監控的方式,有"CloseWrite"、"Modify"、"CloseWrite or Modify"
maxProcesses:同步時的最大執行數量
maxDelays:異動累計一定數字後,才進行同步
nodaemon:守護模式
rsync 參數
default.rsync:
指定lsync執行模式。其他還有"default.direct"、"default.rsyncssh"
source:來源資料夾
target:目的資料夾
delay:同步間隔時間
delete:刪除舊資料,保持兩邊資料完全相同
exclude:排除特定檔案、目錄或副檔名
binary:執行檔路徑
archive:歸檔模式同步 (預設:false)
compress:壓縮模式 (預設:false)
verbose:詳細過程 (預設:false)
perms:保留檔案原始屬性 (預設:false)
bwlimit:限定頻寬

設定檔範例:

settings {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/var/log/lsyncd/lsyncd-status.log",
statusInterval = 1,
inotifyMode = "CloseWrite",
maxProcesses = 4
-- nodaemon =true
}

sync {
default.rsync,
source = "/var/log/httpd",
target = "/tmp/httpd",
delay = 0,
delete,
exclude = { '.bak' , '.key' } ,
rsync = {
binary = "/usr/bin/rsync",
-- archive = true,
-- compress = true,
-- verbose = true,
perms,
bwlimit = 2000
}
}

 

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s