1.理论知识
同步源:rsync服务器负责响应客户端,原始位置
发起端:发起同步的客户端,目标端
上行:是将同步源的文件传给发起端 在服务端使用相当于cp
下行:是将发起端的文件传给同步源
用法如:rsync –azv backuper@192.168.168.10::wwwroot /root //在发起端使用将同步源的文件传到发起端
2.rsync 的选项
-r:表递归包含目录及子目录
-l:符号链接文件仍然复制为符号链接文件
-v:显示详细信息
-a:归档模式保留文件的权限和属性
-z:传输时进行压缩
-A:保留ACL属性
-p:保留文件权限
-t:保留时间标记
–delete:删除目标位置有而原始位置没有的文件
3.配置实例
a.Vim /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = yes //禁锢在源目录
pid file = /var/run/rsyncd.pid //存放pid文件的位置
address = 192.168.168.131 //监听地址
port = 873 //监听端口
log file = /var/log/rsyncd.log //日志文件存放位置
hosts allow = 192.168.168.0/24 //允许访问的客户机
[wwwroot] // 共享模块名称
path = /var/www/html //源目录的实际路劲
read only = no 是否为只读
auth users = backuper 授权账户
secrets file = /etc/rsyncd_users.db 存放账户信息的数据文件
comment = ftp export area
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 //同步时不再压缩的文件类型
fake super = yes
b.vim /etc/rsyncd_users.db //创建用户数据文件
backuper:123 // 一个用户为一行密码与用户名一冒号分割
c.chmod 600 /etc/ysncd_users.db
chmod 777 /var/www/html //方便上行写入
d.rsync –daemon //开启服务
netstat –anpt | grep rsync //查看端口服务是否已开启
ps –ef | grep rsync //查看服务的pid
kill $(cat /var/run/rsyncd.pid) 结束服务 或 kill -9 进程号 且 rm –rf /var/run/rsyncd.pid
e.rsync –avz –delete backuper@192.168.168.10::wwwroot /myweb //下行
rsync /myweb backuper@192.168.168.10::wwwroot //上行则须将同步源配置文件read only = no
f. 同步免密在发起端
vim /etc/server.pass
123
chmod 600 /etc/server.pass
g.实时同步
Vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384
fs.inotify.max_user_instances = 1024
fs.inotify.max_user_watches = 1048576
sysctl –p //刷新
tar -zxvf inotify-tools-3.14.tar.gz -C /usr/src
./configure
make && make install
vim /opt/inotify_rsync.sh
#!/bin/bash
A=“inotifywait -mrq -e modify,create,attrib,move,delete /var/www/html/”
B=“rsync -azHv --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.168.131::wwwroot”
$A | while read DIRECTORY EVENT FILE
do
$B
done
-m,持续进行监控
-r,递归监控所有子对象
-q,简化输出信息
-e,指定要监控哪些事件类型~
modify :修改
attrib:属性更改
~