一、安装rsync
1、rsync一般服务器都是自带的,可以直接使用rsync并且可以直接启动的。
2、如果没有需要安装,使用yum进行安装
yum install rsync -y
二、参数讲解
-a #归档模式传输,等于-tropgDl
-v #详细模式输出,会显示传输的文件和速度
-z #传输时进行压缩以提高效率
-r #递归传输目录及子目录。
-t #保持文件时间信息
-o #保持文件属性
-p #保持文件权限
-g #保持文件属组信息
-l #保留软连接
-P #显示同步的过程及传输时的速度
-D #保持设备文件信息
-L #保留软连接指向的目标文件
-e #使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN #执行排除不需要传输的文件模式
--exclude-from=file #文件名所在的目录文件
--bwlimit =100 ##限速传输
--partial ##断点续传
--delete #让目标目录和源目录数据保持一致
三、配置文件讲解
[root@backup ~]# vim /etc/rsyncd.confuid = rsync #运行进程的用户gid = rsync #允许进程的用户组port = 873 #监听端口fake super = yes #无需让rsync以root用户身份允许,允许接收文件的完整属性use chroot = no #禁锢推送的数据至某个目录下,不允许跳出该目录max connections = 200 #最大连接数timeout = 600 #超时时间ignore error #忽略错误信息read only =false #对备份数据可读写list = false #不允许查看模块信息auth users = rsync_backup #定义虚拟用户,作为连接认证用户secrets file = /etc/rsync.passwd #定义rsync服务用户连接认证密码文件路径[backup] #定义的模块信息comment = commit #模块注释信息path = /backup #定义接受备份数据目录hosts allow = 10.0.0.11 #只允许10.0.0.11传输内容
四、配置
1、创建虚拟用户
useradd -M -s /sbin/nologin rsync
2、创建存放数据目录
mkdir /backup
3、授权数据目录
chown -R rsync:rsync /backup
4、 配置密码文件
echo ‘rsync_backup:123456 ' >/etc/rsync.passwd
5、授权密码文件
chmod 600 /etc/passwd
6、启动服务
systemctl start rsyncd
systemctl enable rsyncd
7、检查端口
netstat -lntp|grep 873
五、客户端配置
1、配置密码文件
echo ‘123456‘ >/etc/rsync.pass
chmod 600 /etc/rsync.pass
2、客户端命令测试
脚本中使用,强烈推荐方式
[root@nfs01 ~]# export RSYNC_PASSWORD=123456
实战一: 客户端推送backup目录下所有内容至Rsync服务端
[root@nfs01 ~]# export RSYNC_PASSWORD=123456
[root@nfs01 ~]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup/
实战二: 客户端拉取Rsync服务端 backup模块数据至本地客户端的 /backup目录
[root@nfs01 ~]# export RSYNC_PASSWORD=123456
[root@nfs01 ~]#rsync -avz rsync_backup@172.16.1.41::backup /backup/
实战三: Rsync实现数据无差异同步 #拉取远端数据:远端与本地保持一致,远端没有本地有会被删除, 造成客户端数据丢失
[root@nfs01 ~]# export RSYNC_PASSWORD=123456
[root@nfs01 ~]# rsync -avz --delete rsync_backup@172.16.1.41::backup/ /data/
实战四: Rsync的Limit限速 #企业案例: 某DBA使用rsync拉取备份数据时,由于文件过大导致内部交换机带宽被沾满,导致用 户的请求无法响应
[root@nfs01 ~]# export RSYNC_PASSWORD=123456
[root@nfs01 ~]# rsync -avz --bwlimit=1 rsync_backup@172.16.1.41::backup/ /data/
六、脚本
[root@nfs scripts]# cat /server/scripts/client_rsync_backup.sh
#!/usr/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
Host=$(hostname)
Addr=$(ifconfig eth1|awk 'NR==2{print $2}')
Date=$(date +%F)
Dest=${Host}_${Addr}_${Date}
Path=/backup
#2.创建备份目录
[ -d $Path/$Dest ] || mkdir -p $Path/$Dest
#3.备份对应的文件
cd / && \
[ -f $Path/$Dest/system.tar.gz ] || tar czf $Path/$Dest/system.tar.gz etc/fstab etc/rsyncd.conf && \
[ -f $Path/$Dest/log.tar.gz ] || tar czf $Path/$Dest/log.tar.gz var/log/messages var/log/secure && \
#4.携带md5验证信息
[ -f $Path/$Dest/flag ] || md5sum $Path/$Dest/*.tar.gz >$Path/$Dest/flag_$Date
#5.推送本地数据至备份服务器
export RSYNC_PASSWORD=123456
rsync -avz $Path/ rsync_backup@172.16.1.41::backup
#6.本地保留最近7天的数据
find $Path/ -type d -mtime +7|xargs rm -rf
有问题请加博主微信进行沟通!
全部评论