rsync

1527人浏览 / 0人评论

一、安装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.conf
uid = 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 

 

全部评论