笔记整理2.2-数据同步rsync
目标机服务端
yum -y install xinetd rsync rsync --daemon netstat -antup | grep 873
使用rsync备份数据
对XueGod63网站根目录的/var/www/html目录备份到XueGod64的/web-back
源服务器:XueGod63
目标服务器:XueGod64
建立测试用户 [root@XueGod64 ~]# useradd rget1 ; echo rget1:123456 | chpasswd [root@XueGod63 ~]# useradd rget1 ; echo rget1:123456 | chpasswd [root@xuegod63 ~]# mkdir /var/www/html/ -p [root@XueGod63 ~]# setfacl -R -m user:rget1:rwx /var/www/html/ #设置rget1的权限 [root@XueGod63~]# setfacl -R -m default:rget1:rwx /var/www/html/ [root@XueGod63 ~]# getfacl /var/www/html
getfacl:Removing leading'/'from absolute path names
# file: var/www/html
# owner: root
# group: root
user::rwx
user:rget1:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:rget1:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
创建测试数据 [root@XueGod63 ~]# cp -r /boot/* /var/www/html/ #boot目录下的所有数据作为测试数据 [root@xuegod64 ~]# mkdir /web-back [root@xuegod64 ~]# chown rget1:rget1 -R /web-back/
yum install rsync -y [root@XueGod63 ~]#rsync -avz --delete /var/www/html/ rget1@192.168.1.64:/web-back/ #注意冒号后没有空格--delete平时不要用容易误删源文件
非系统用户备份数据
使用系统配置文件/etc/rsyncd.conf来备份数据,创建备份账户,最后把rsync以deamon方式运行
[root@XueGod64 ~]# vi /etc/rsyncd.conf //文件不存在,需要自己创建
uid = root#运行进程的身份 gid = root#运行进程的组 address =192.168.1.64#监听IP port=873 #监听端口 hosts allow=192.168.0.0/24#允许同步客户端的IP地址,可以是网段,或者用*表示所有192.168.1.0/24或192.168.1.0/255.255.255.0 use chroot = yes #是否囚牢,锁定家目录,rsync被黑之后,黑客无法再rsync运行的家目录之外创建文件,选项设置为yes max connections=5#最大连接数 pid file =/var/run/rsyncd.pid #进程PID,自动生成 lock file =/var/run/rsync.lock #指max connectios参数的锁文件 log file =/var/log/rsyncd.log #日志文件位置 motd file =/etc/rsyncd.motd #客户端登陆之后弹出的消息,需要创建 [wwwroot]#共享模块名称 path =/web-back/ #路径 comment=used for web-data root#描述 readonly=false#设置服务端文件读写权限 list=yes#是否允许查看模块信息 auth users=rsyncuser#备份的用户,和系统用户无关 secrets file=/etc/rsync.passwd#存放用户的密码文件,格式是用户名:密码
创建提示文件和用户密码
[root@XueGod64 ~]# echo "Welcome to Backup Server" > /etc/rsyncd.motd [root@XueGod64 ~]# vi /etc/rsync.passwd rsyncuser:password123 [root@XueGod64 ~]# chmod 600 /etc/rsync.passwd//目录权限必须是700或者600,否则的话身份验证会失效,设置rsync user的时候
启动服务测试
启动rsync与xinetd服务
systemctl start xinetd#启动xinetd服务 systemctl enable xinetd#将xinetd服务加入开机项 [root@xuegod64 ~]# rsync --daemon --config=/etc/rsyncd.conf [root@xuegod64 ~]# netstat -antup | grep :873
测试,rsync语法:rsync选项 用户名@备份源服务器IP::共享模块名 目标目录
[root@XueGod63 ~]# rsync -avz --delete /var/www/html rsyncuser@192.168.1.64::wwwroot
Welcome to Backup Server
Password:#输入密码password123
新建一个文件保存好密码,然后在rsync命令中使用--password-file指定此文件即可
[root@xuegod63 ~]# vi /etc/rsync.passwd password123 [root@xuegod63 ~]# chmod 600 /etc/rsync.passwd [root@xuegod63 ~]#rsync -avz --delete /var/www/html rsyncuser@192.168.1.64::wwwroot --password-file=/etc/rsync.passwd
[root@xuegod63 ~]# vi autobackup.sh #!/bin/bash rsync -avz --delete /var/www/html rsyncuser@192.168.1.64::wwwroot --password-file=/etc/rsync.passwd [root@xuegod63 ~]# chmod +x autobackup.sh [root@XueGod64 ~]# rm -rf /web-back/*//测试脚本 [root@xuegod63~]# sh autobackup.sh [root@XueGod64 ~]# echo "01 3 * * * sh /root/autoback.sh &" >> /var/spool/cron/root
crontab -l
Rsync+sersync实现数据实时同步
一台装sersync一台装rsync服务
Sersync服务器(数据源,源机器):192.168.1.63
Rsync服务器(备份端,目标机器):192.168.1.64
wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz 上传到服务器 /opt 目录下 tar xvf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/ tar xvf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /opt/ mv /usr/local/GNU-Linux-x86 /usr/local/sersync mv GNU-Linux-x86 sersync
2、配置sersync
cd /usr/local/sersync
[root@xuegod63 sersync]# cp confxml.xml confxml.xml.bak
vi /usr/local/sersync/confxml.xml
1.更改优化sersync配置文件:
<sersync> <localpath watch="/var/www/html"> <remote ip="192.168.1.64" name="wwwroot"/> <!--<remote ip="192.168.8.39" name="tongbu"/>--> <!--<remote ip="192.168.8.40" name="tongbu"/>--> </localpath> <rsync> <commonParams params="-artuz"/> <auth start="true" users="rsyncuser" passwordfile="/etc/rsync.passwd"/> <userDefinedPort start="false" port="874"/><!-- port=874 --> <timeout start="false" time="100"/><!-- timeout=100 --> <ssh start="false"/> </rsync>
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml
测试
在63 /var/www/html/ 目录 增删改目录文件,
看64 /web-back 目录的变化
[root@xuegod64 web-back]# watch ls -l 设置sersync监控开机自动执行 vi /etc/rc.d/rc.local#编辑,在最后添加一行 /usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml#设置开机自动运行脚本
vi /usr/local/sersync/check_sersync.sh#编辑,添加以下代码 #!/bin/sh sersync="/usr/local/sersync/sersync2" confxml="/usr/local/sersync/confxml.xml" status=$(ps aux |grep 'sersync2'|grep -v 'grep'|wc -l) if [ $status -eq 0 ]; then $sersync -d -r -o $confxml & else exit 0; fi
chmod +x /usr/local/sersync/check_sersync.sh #添加脚本执行权限
把这个脚本加到任务计划,定期执行检测
补充: 多实例情况
1、配置多个confxml.xml文件(比如:www、bbs、blog....等等)
2、根据不同的需求同步对应的实例文件
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/bbs_confxml.xml
其他参考 包括多参数的使用
https://www.cnblogs.com/weifeng1463/p/7809851.html
参数说明
https://www.cnblogs.com/yunfeiqi/p/6534399.html
https://www.osyunwei.com/archives/7447.html
windows端
https://www.cnblogs.com/sharesdk/p/10570884.html

给密码文件权限
chmod.exe -c 600 /cygdrive/c/etc/passwd.txt chown -c administrator /cygdrive/c/etc/passwd.txt

rsync.bat脚本内容 注意脚本文件有时候必须在C盘才能执行在d盘无法执行
cd "C:\Program Files (x86)\cwRsync\bin>" rsync.exe -avz --password-file=/cygdrive/c/etc/passwd.txt rsyncuser@192.168.120.82::wwwroot /cygdrive/d/testfile
说明
/cygdrive/c/etc/passwd.txt 路径是c:/etc/passwd.txt /cygdrive/d/testfile#是d:/testfile

浙公网安备 33010602011771号