一,安装
1,yum方式安装即可 yum -y install rsync 2,本地备份 rsync -azvr /data/ecology --delete --exclude='log' /data/backup/ # --exclude 排除 可以加入不需要同步的目录 # 目录后面加 / or 不加 / (/data/ecology/)是有区别的,不加会将整个目录同步过去, # 加 / 后 (/data/ecology/)会同步ecology目录下的所以内容,而不附带ecology目录 # -v 会显示具体细节 # 同步前会对比是否已经存在相同的,存在则跳过,异同则同步
二,修改配置文件
1,当需要实现异地备份时,就需要修改配置文件的方式来进行备份 vim /etc/rsyncd.conf uid=root gid=root port=873 max connections=4 use chroot=yes log file=/var/log/rsyncd.log log format = %t %a %m %f %b transfer logging = yes pid file=/var/run/rsyncd.pid lock file=/var/run/rsyncd.lock hosts allow = 192.168.0.0/24 hosts deny = 0.0.0.0/32 timeout=300 [resin1] path=/data/oanew_backup/resin1 read only = no list = yes ignore errors auth users = root secrets file = /etc/rsyncd.passwd [resin2] path=/data/oanew_backup/resin2 read only = no list = yes ignore errors auth users = root secrets file = /etc/rsyncd.passwd [mobile] path=/data/oanew_backup/app read only = no list = yes ignore errors auth users = root secrets file = /etc/rsyncd.passwd [public] path=/data/OaPublic read only = no list = yes ignore errors auth users = root secrets file = /etc/rsyncd.passwd
2,配置密码验证文件 vim /etc/rsyncd.passwd root:Password_1234 3,启动服务 rsync --daemon ps aux|grep rsync netstat -ntpl|grep 873 确认服务已经启动后即可 4,推送或拉取都行,命令测试 #从服务器向备份机推送 #登录服务器 rsync -azvr /data/ecology --delete --exclude="log" root@192.168.20.200::resin1 --password-file=/etc/rsyncd.passwd >> /data/backup/logs #从备份机拉取,此处不作验证,为了方便编写脚本,采用的推送方式 #拉取操作自行测试,此处略。
三,配置文件详解
配置文件说明: #/etc/rsyncd.conf #设置服务器信息提示文件名称,在该文件中编写提示信息 motd file = /etc/rsyncd.motd #开启Rsync数据传输日志功能 transfer logging = yes #设置日志文件名称,可以通过log format参数设置日志格式 log file =/var/log/rsyncd.log #设置Rsync进程号保存文件名称 pid file =/var/run/rsyncd.pid #设置锁文件名称 lock file =/var/run/rsync.lock #设置服务器监听的端口号,默认为873 port = 873 #设置服务器所监听网卡接口的IP地址,这里服务器IP地址为192.168.0.254 address = 192.168.0.254 #设置进行数据传输时所使用的账户名称或ID号,默认使用nobody uid = nobody #设置进行数据传输时所使用的组名称或GID号,默认使用nobody gid = nobody #设置user chroot为yes后,rsync会首先进行chroot设置,将根映射到path参数路径下,对客户 #端而言,系统的根就是path参数所指定的路径。但这样做需要root权限,并且在同步符号 #连接资料时仅会同步名称,而内容将不会同步。 use chroot = no #是否允许客户端上传数据,这里设置为只读。 read only = yes #设置并发连接数,0代表无限制。超出并发数后,如果依然有客户端连接请求,则将会收 #到稍后重试的提示消息 max connections = 10 #模块,Rsync通过模块定义同步的目录,模块以[name]的形式定义,这与Samba定义共 #享目录是一样的效果。在Rsync中也可以定义多个模块 [common] #comment定义注释说明字串 comment = Web content #同步目录的真实路径通过path指定 path = /common #忽略一些IO错误 ignore errors #exclude可以指定例外的目录,即将common目录下的某个目录设置为不同步数据 #exclude = test/ #设置允许连接服务器的账户,账户可以是系统中不存在的用户 auth users = tom,jerry #设置密码验证文件名称,注意该文件的权限要求为只读,建议权限为600,仅在设置auth users #参数后有效 secrets file = /etc/rsyncd.secrets #设置允许哪些主机可以同步数据,可以是单个IP,也可以是网段,多个IP与网段之间使用空 #格分隔 hosts allow=192.168.0.0/255.255.255.0 #设置拒绝所有(除hosts allow定义的主机外) hosts deny=* #客户端请求显示模块列表时,本模块名称是否显示,默认为true list= false
四,编写计划任务及脚本
1,编写定时任务 crontab -l 0 0 * * * /data/shell/oabackup.sh #每日凌晨执行shell脚本 2,shell脚本 vim oabackup.sh #!/bin/bash # resin1 backup to 192.168.20.200:/data/oanew_backup/resin1 echo -e '\n' >> /data/backup/logs /usr/bin/date >> /data/backup/logs echo "########resin1-ecology-backup##########" >> /data/backup/logs /usr/bin/rsync -azvr /data/ecology --delete --exclude="log" root@192.168.20.200::resin1 --password-file=/etc/rsyncd.passwd >> /data/backup/logs echo "########resin1-ecology-bakend##########" >> /data/backup/logs echo -e '\n' >> /data/backup/logs echo "########OaPublic-backup##########" >> /data/backup/logs /usr/bin/rsync -azvr /data/OaPublic/ root@192.168.20.200::public --password-file=/etc/rsyncd.passwd >> /data/backup/logs echo "########OaPublic-bakend##########" >> /data/backup/logs /usr/bin/date >> /data/backup/logs 3,根据配置文件要求,自行创建目录,同步数量可在logs中查看。
五,总结
切记,rsync同步时会同时将目录软链一起同步过去,此时,如果对共享目录不做单独同步处理,会导致回滚时共享目录文件异同或丢失。
所以,共享目录的内容要进行单独备份。以便回滚时进行覆盖或替换。