系統內核要求2.6.13以上
目標服務器,rsync服務端配置,也就是被同步到的服務器
uname -r //查看系統內核版本
yum -y install rsync
vi /etc/rsyncd.conf
uid = rsync
gid = rsync
max connections = 200
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
lock file = /var/run/rsyncd.lock
timeout = 900
read only = false
[redis_dump]
path = /data/redis_dump.bak/
hosts allow = 192.168.88.130
hosts deny = * //先允許再拒絕
secrets file = /etc/rsync.pass
auth users = rsync
read only = no
fake super = yes //新版本需要這個參數,否則無法同步
echo "rsync:123456" > /etc/rsync.pass
chmod 600 /etc/rsync.pass //權限一定爲600,否則同步是沒有權限
chown -R rsync:rsync redis_dump.bak //備份目錄屬主和屬組一定要是rsync配置文件中指定的用戶
systemctl start rsyncd
源服務器,rsync客戶端,也就是被同步的服務器
yum provides inotifywait
yum -y install inotify-tools-3.14-9.el7.x86_64
vi /data/inotify_bak.sh
#!/bin/bash
src=/data/redis_dump/
pass=/etc/rsync.pass
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src |while read files;do
rsync -avH --port 873 --progress --delete $src [email protected]::redis_dump --password-file=$pass
echo "${files} was rsynced" >> /tmp/rsync.log 2>&1
done
chmod +x /data/inotify_bak.sh
echo "123456" > /etc/rsync.pass //認證用戶的密碼
chmod 600 /etc/rsync.pass
nohup sh /data/inotify_bak.sh &
然後再源服務器創建一些文件測試一下,再到目標服務器看看有沒有被同步過去