一,安装
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同步时会同时将目录软链一起同步过去,此时,如果对共享目录不做单独同步处理,会导致回滚时共享目录文件异同或丢失。
所以,共享目录的内容要进行单独备份。以便回滚时进行覆盖或替换。