rsync远程同步
1.查看安装包rpm -q rsync,服务器和客户端都要安装
安装后修改主配置文件:
[root@localhost ~]# vim /etc/rsyncd.conf
uid=nobody
gid=nobody
use chroot=yes
port 873
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
[wwwroot]
path=/var/www/html
read only=yes
dont compress=*.gz *.bz2
auth users=backuper
secrets file=/etc/rsyncd_users.db
写一个映射用户文件
[root@localhost ~]# vim /etc/rsyncd_user.db
backuper:pwd123
查看端口号,873
[root@localhost ~]# netstat -tunlp|grep rsync
关闭防火墙:
[root@localhost ~]# iptables -F
[root@localhost ~]# setenforce 0
客户端:
下载文件
v显示过程,a保持原来的属性不变,z传输文件中进行压缩
[root@localhost ~]# rsync -azv backuper@192.168.88.129::wwwroot /var/www/html/
客户端删除文件,现将服务器端文件删除:
服务器端: [root@localhost ~]# rm -f /var/www/html/test1
客户端命令添加–delete: [root@localhost ~]# rsync -azv --delete backuper@192.168.88.129::wwwroot /var/www/html/
上传文件
把客户端 read only=yes改成no
改一下存储文件目录的属主
[root@localhost ~]# chmod o+w /var/www/html/
上传时把路径换一下
[root@localhost ~]# rsync -azv --delete /var/www/html/ backuper@192.168.88.129::wwwroot
配置inotify+rsync实时同步自动上传下载文件
为免密登录写密码文件:
[root@localhost ~]# vim /etc/server.pass
pwd123
修改密码文件权限:
[root@localhost ~]# chmod 600 /etc/server.pass
写下执行任务:
[root@localhost ~]# crontab -e
0 1 * * * /usr/bin/rsync -azv --delete --password-file=/etc/server.pass backuper@192.168.88.129::wwwroot /var/www/html/
下载 inotify-tools文件并解压:
[root@localhost ~]# tar zxf inotify-tools-3.13.tar.gz
[root@localhost ~]# cd inotify-tools-3.13/
[root@localhost inotify-tools-3.13]# ./configure
[root@localhost inotify-tools-3.13]# make&&make install
收集文件系统的变化
[root@localhost ~]# inotifywait -mrq -e modify,create,move,delete /var/www/html/ &
编写执行脚本
[root@localhost ~]# vim /opt/inotify_rsync.sh
inotify=“inotifywait -mrq -e modify,create,move,delete /var/www/html/”
rsync_cmd=“rsync -az --delete --password-file=/etc/server.pass /var/www/html/ backuper@192.168.88.129::wwwroot”
inotify_cmd | while read a b c
do
rsync_cmd
done
给脚本加执行权限:
[root@localhost ~]# chmod +x /opt/inotify_rsync.sh
[root@localhost ~]# /opt/inotify_rsync.sh &
[root@localhost ~]# touch test12