rsync + inotify
2015-08-21 17:54
253 查看
服务器端配置:
1 服务器10.130.193.178配置
1) 安装服务器软件xinetd超级守护进程.调用rsync这个进程.
# yum -y install xinetd
# vim /etc/xinetd.d/rsync
将 disabled = yes 改为 disabled = no 表示启用这个进程
2) 给rsync提供配置文件 /etc/rsyncd.conf
# vim /etc/rsyncd.conf
# Global Settings
uid = nobody 表示启动rsync这个服务的用户
gid = nobody
use chroot = no 表示是否锁定用户到指定目录
max connections = 10 表示最大的并发连接数目
strict modes = yes 表示开启严格检查模式
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
# Directory Settings
[mydata] 这个是sync_directory
path = /mydata/data 这个是定义发布的目录
ignore errors = yes 表示如果出现错误就忽略继续复制
read only = no 表示是否允许推送数据到服务器
write only = no 表示是否允许从服务器拉取数据
hosts allow = 10.130.193.0/24 表示允许的IP地址
hosts deny = * 表示拒绝的IP
# 注意:如果以上的2个参数一起出现,是这样的,就是先匹配hosts allow 如果匹配成功就通过,如果匹配不成功就匹配hosts deny ,如果hosts deny也没有匹配成功那么使用默认的规则通过.
list = no
auth users = username 指定虚拟用户
secrets file = /etc/rsyncd.passwd
uid = root 这个是我们在服务器上操作发布目录的用户 如果不写那么就是nobody这个用户
gid = root
3) 提供密码文件 /etc/rsyncd.passwd这个文件是密文存储数据的所以文件的权限是600
# vim /etc/rsyncd./conf
rsyncduser:123456
# chmod 600 /etc/rsyncd.conf
4) 启动服务
service xinetd start
ss -tnl 查看rsync监听的端口号码是 tcp:873
2 服务配置 10.130.193.179 同上.
3 客户端的配置.
1) 安装inotify-tools工具包
# tar xvf inotify-tools-3.14.log -C /usr/src
# cd /usr/src/inotify-tools-3.14
# ./configure
# make && make install
#ln -sv /usr/local/inotify/include /usr/include/inotify
# vim /etc/ld.so.conf.d/inotify
/usr/local/inotify/lib
# ldconfig
# vim /etc/profile.d/inotify.sh
export PATH=$PATH:/usr/local/inotify/bin
2) 编写inotify脚本
vim inotify.sh
#!/bin/bash
inotifywait -mrq --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w%f %e' -e modify,delete,create,attrib /mydata/data | while read file
do
rsync -az --progress --delete /mydata/data/ rsync://rsyncduser@10.130.193.178/mydata && \
rsync -az --progress --delete /mydata/data/ rsync://rsyncduser@10.130.193.179/mydata
echo ${file} >> /var/log/rsyncd.log 2>&1
done
配置结束
--------------------------------------------------------------
inotifywait 参数:
inptifywait [option] -e events dest_path
-m motifier 表示始终在指定木邻居监测
-r recursive 表示递归监测
-q quiet 表示静默模式
--timesfmt 表示时间的格式
--format 表示输出数据的格式
-e 指定监测的事件类型
rsync 的工作模式:
1 本地shell模式
-a archive 表示归档 就是保留文件的原有属性
--progress 表示显示传输文件的进度
2 远程shell模式
-a archive 表示归档
--progress
-e ssh 使用ssh对数据加密
-z 对数据加密传输
3 列表模式
4 服务器模式
-a archive 表示归档
--progress
-z 加密传输
--delete 就是如果源目录参数后面有/ 那么这个参数表示要删除目标目录中多余的文件
相关文章推荐
- c和lua之间互相调用方法
- H. 硬币的水问题II
- android详情请务必保持手机屏幕不锁屏
- ZJU 2112 Dynamic Rankings
- Tomcat:配置SSL
- objdump命令的使用
- Android性能优化典范(一)
- 4 Median of Two Sorted Arrays
- HDOJ1021题 Fibonacci Again 应用求模公式
- 斐波那契数列(青蛙跳台阶)
- Android解析xml
- ios开发学习----swift学习之(一)基础数据类型
- HDOJ1021题 Fibonacci Again 应用求模公式
- Java 语言中 List、Set 和 Map 的区别
- android emoji 表情的制作
- 以队列的方式实现收容所收养猫和狗
- Java 语言中 List、Set 和 Map 的区别
- PostgreSQL之批量变更表名
- AV 地址错误 map 文件 根据地址报错,查 Delphi 代码
- 浏览器兼容性问题和解决方案