一,安装

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 会显示具体细节
# 同步前会对比是否已经存在相同的,存在则跳过,异同则同步

3,指定端口号传输
rsync  -e 'ssh -p 2205' -avrz xxx --exclude="harbor"  ip:/data/tools/

二,修改配置文件

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同步时会同时将目录软链一起同步过去,此时,如果对共享目录不做单独同步处理,会导致回滚时共享目录文件异同或丢失。

所以,共享目录的内容要进行单独备份。以便回滚时进行覆盖或替换。