inotifywait是文件系统的监控工具,对目录下的文件的增删改查进行监控。
Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具。
需求:
源主机同步内容到目录主机,单向同步。
- 第一步: 实现无密钥登陆
源主机的公钥添加到目标主机上。
- 第二步,在源主机中添加以下脚本。
unison的batch参数一定要添加,否则文件传输时会有交互界面。
unison加上force参数以后是为了单向传输。
#!/bin/bash
UNISON=$(ps -ef|grep -v grep|grep -c inotifywait)
if [[ ${UNISON} -ge 1 ]];then
other_server="10.254.188.113"
src="/src/dir/"
dst="/dst/dir/"
/usr/bin/inotifywait -mrq -e create,delete,delete_self,modify,move $src | while read line; do
/usr/bin/unison -batch ${src} ssh://${other_server}/${dst} -force ${src}
echo -n "line" >> /var/log/inotify.log
echo $(date |cut -d " " -f1-4 >> /var/log/inotify.log)
done
fi
- 第三步:源主机中添加以下计划任务。
增加同步进程,防止进程死掉
* * * * * nohup /bin/bash /opt/unsion.sh > /dev/null 2>&1 &