一: 基於epel源安裝lsyncd 和 rsync
環境准備
1. lsyncd端: 需要進行實時同步的 rsync 客戶端機器 IP地址: 192.168.227.128
2. RsyncServer端: 需要同步數據到此端的機器IP地址: 192.168.227.129
默認關閉selinux以及防火牆
Lysncd 實際上是lua語言封裝了 inotify 和 rsync 工具
lsyncd的官方地址:https://github.com/axkibe/lsyncd
安裝:
shell > yum install epel-release shell > yum install lsyncd rsync
關於基於各種服務器的相關配置文檔,安裝之后的路徑是:/usr/share/doc/lsyncd/examples,示例文檔都再此目錄下。
settings {
logfile ="/var/log/lsyncd.log",
statusFile ="/var/log/lsyncd.status",
inotifyMode = "CloseWrite or Modify",
maxProcesses = 10,
statusInterval = 10,
nodaemon = false,
maxDelays = 20
}
sync {
default.rsync,
source = "/data/",
target = "rsyncuser@192.168.227.129::fastdfsback",
delete="true",
exclude = { "logs*" },
delay = 10,
rsync = {
bwlimit=200,
binary = "/usr/bin/rsync",
archive = true,
compress = true,
verbose = true,
perms = true,
password_file = "/etc/rsync.password",
_extra = {"--port=3873"}
}
}
創建密碼文件
vim /etc/rsync.password # 創建密碼文件
123456
chmod 600 /etc/rsync.password # 修改密碼文件權限
啟動服務:
shell > systemctl enable lsyncd && systemctl start lsyncd
二: lsyncd 配置說明
settings 部分,其實就是關於lsyncd工具自身的一些選項設置
sync 部分主要用來定義同步時的一些設置,可以同時同步多個目錄,只需要在該代碼塊中事先定義好多個sync即可 default.rsync : 指定lsyncd運行模式,另外,還有default.direct,default.rsyncssh模式,個人建議缺省 source : 指定要監控的目錄,務必全部用絕對路徑 target : 要同步到的目標目錄,一般為rsync服務端模塊下指定的目錄 delay : 當命中的事件累計到多少時再觸發同步 exclude : 通過此選項排除掉不需要同步的文件,可用它自己的正則進行匹配 delete : 和rsync 的 --delete 作用一樣,先清空再同步
下面是關於 rsync 工具自身的一些設置選項
compress : 壓縮后再同步
bwlimit : 限速同步,當你不想占滿帶寬時
archive : 歸檔模式同步
perms : 保留文件原有屬性同步
_extra = {"--port=873"} :擴展的一些配置和參數,這里是因為我們內部的服務器使用了不同的rsync端口,也是為了安全考慮吧,當然在執行的時候依然可以將其他的參數放在此配置中
其實,lsyncd 還支持當監控到某個指定事件時就執行什么樣的命令,待自己詳讀官方文檔后再做單獨說明,由於是通過時間延遲和累計事件命中次數來觸發同步,在設計上要優於inotify,更多內容,如果有興趣大家可自行參考其官方文檔,待續…
三: RsyncServer端搭建,這里也有人叫客戶端
lsyncd其實是監聽本地目錄的文件變化,然后通過rsync server 將本地文件同步到遠端。以實現備份的目的。
1. 安裝
yum -y install rsync # 安裝
2. 修改配置文件
[root@node2 ~]# cat /etc/rsyncd.conf
uid = root
gid = root
use chroot = yes
max connections=0
log file=/var/log/rsyncd/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
[fastdfsback]
path = /var/backup/
read only = no
list = yes
auth users = rsyncuser
secrets file = /etc/rsync.password
3. 創建密碼文件
vim /etc/rsync.password # 創建密碼文件 rsyncuser:123456
chmod 600 /etc/rsync.password # 修改密碼文件權限
mkdir /var/log/rsyncd
4. 啟動
/usr/bin/rsync --port=873 --address=192.168.227.129 --daemon
四:rsync配置說明
uid #進程對應的用戶 gid #進程對應的用戶組 use chroot #安全相關 max connections #最大連接數 0代表不限制 timeout = 300 #超時時間, 可選 pid file #進程對應的進程號文件 lock file #鎖文件 log file #日志文件 [backup] #模塊名稱 path #服務器提供訪問的目錄 ignore errors #忽略錯誤, 可選 read only = false #可選 list = false #不能列表 hosts allow = 192.168.10.0/24 #允許的ip地址,可選 auth users #虛擬用戶 secrets file #虛擬密碼
接下來,就可以創建數據進行驗證了。
參考鏈接:
1. https://www.jianshu.com/p/808d173786c4
2. https://klionsec.github.io/2017/11/18/lsyncd/
3:https://www.cnblogs.com/zxci/p/6243574.html
