一.rsync概念

rsync:开源,快速,多功能,实现全量和增量的本地或远程数据同步 **全量备份:**本地所有数据进行传输复制,无论对端是否存在此数据,效率低,速度慢 **增量备份:**只备份传输新增数据到对端,效率高,速度快

二.rsync软件命令(scp/cp/rm/ls)

(1)rsync===scp 传输数据 远程传输文件: 例: [root@backup /]#scp -rp /oldboy/test01 172.16.1.31:/tmp [root@backup /]#rsync -rp /oldboy/test02 172.16.1.31:/tmp 远程传输目录: 例: [root@backup /]#rsync -rp /oldboy 172.16.1.31:/tmp [root@backup /]#rsync -rp /oldboy/ 172.16.1.31:/tmp [root@backup /]#scp -rp /oldboy/ 172.16.1.31:/tmp 注: 如果传输目录时**/oldboy_dir/表示将目录下面的数据内容进行传输 如果传输目录时/oldboy_dir**表示将目录本身及目录下内容传输 (2)rsync===cp复制传输 例:[root@backup /]#rsync -a /oldboy/test02 172.16.1.31:/tmp 复制传输目录文件 (3)rsync===rm 例:[root@backup /]#rsync -r --delete /oldboy/ 172.16.1.31:/tmp 递归删除目录 (4)rsync===ls 例:[root@backup /oldboy]#rsync /oldboys

三.rsync实现增量同步原理说明

“quick check”,实现增量复制传输数据 centos5 rsync为2.X版本算法,先比对完再传输 centos6 rsync为3.X版本算法,一边比对,一边传输,效率较高

四.软件服务特点(7点)

1.实现排除同步数据 2.加密传输数据(借助加密ssh协议) 3.数据传输认证机制 4.socket守护进程方式,传输数据 5.保持数据传输属性信息不变 6.传输普通/特殊文件(连接文件,设备文件) 7.支持数据增量传输

五.rsync服务工作方式(3种)

(1)实现本地数据传输备份 [root@backup /]#rsync -a /oldboy/test02 172.16.1.31:/tmp (2)实现ssh远程数据传输备份 rsync -avz -e "ssh -p22" /home/oldboy/oldboy_test.txt 172.16.1.41:/backup (3)实现socket守护进程数据传输 rsync -avz /oldgirl/5.txt rsync_backup@172.16.1.41::backup

六.守护进程传输部署

服务端:

(1)检查rsync软件是否存在 rpm -qa | grep rsync 查看是否存在 yum -y install rsync 安装软件 (2)配置rsync软件文件(/etc/rsyncd.conf) 配置文件:/etc/rsyncd.conf(默认不存在,自行编写) vim /etc/rsyncd.conf 编辑配置文件

文本:

#rsync_config #created by LP at 2018 ##rsyncd.conf start##

**uid = rsync
gid = rsync **
use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log ignore errors read only = false list = false hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
**auth users = rsync_backup **
secrets file = /etc/rsync.password

[backup]
comment = "backup dir by oldboy" **path = /backup **

(3)创建备份目录管理用户 useradd -s /sbin/nologin -M rsync 创建程序(虚拟)用户 id rsync 查看用户信息
(4)创建认证用户密码文件 echo “rsync:123456” > /etc/rsync.password 设置用户密码文件 chomd 600 /etc/rsync.password 设置配置文件权限为只读 (5)创建备份目录 mkdir /backup chown -R rsync:rsync /backup/ 将所创目录属组设为认证用户 (6)启动rsync服务(端口:873) rsync --daemon 启动守护进程

客户端配置: (1)客户端验证 rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup 传输数据到客户端

七.客户端部署免密钥传输数据流程(--password-file)

(1)创建密码文件,并进行修改权限为600 echo "123456" >>/etc/rsync.password chmod 600 /etc/rsync.password (2)进行免交互传输数据测试 rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

八.rsync参数选项

1.-avz -v 表示:显示详细信息 -z 表示:传输是进行压缩提高传输效率 -a(rtpP) 表示:递归传输数据,保持文件属性 2.-rp -r 表示:表递归传输 -p 表示:保持权限不变 3.-t -t 表示:保持时间信息 4.-P -P 表示:显示同步过程及传输进度信息 5.-e -e 表示:信道协议-----ssh 例: rsync -avz -e "ssh -p22" /home/oldboy/oldboy_test.txt 172.16.1.41:/backup ssh远程登录传输数据 **6.--delete ** --delete 表示:无差异同步数据(本地和rsync服务端数据同步) 例:rsync --delete -avz /home/oldboy/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password 7.--exclude --exclude 参数指定排除的文件或目录信息 例:rsync -avz /oldboy_dir/ --exclude=a --exclude=b --exclude=d/2 rsync_backup@172.16.1.41::backup--password-file=/etc/rsync.password 8.--exclude-from --exclude-from 参数指定排除多个数据信息文件 例:rsync -avz /oldboy_dir/ --exclude-from=/oldboy_dir/**exclude.txt ** rsync_backup@172.16.1.41::backup--password-file=/etc/rsync.password

九. rsync服务扩展

1.rsync服务特殊启动方法--------------xinetd”大管家,超级守护进程”

方式一:利用xinetd启动rsync服务 步骤: (1)确认是否安装了xinetd (rpm -qa | grep xinetd) (2)yum -y install xinetd 安装xinetd软件 (3)配置xinetd文件,让rsync服务允许被超级守护管理 vim /etc/xinetd.d/rsync

(4)确保rsync服务是关闭的 killall rsync (5)启动xinetd服务 /etc/init.d/xinetd start (6)查看rsync服务是否存在即可

** 方式二:让rsync守护进程开机自启动** echo "rsync --daemon" >>/etc/rc.local

2. rsync多模块配置 方式一(单用户多模块): (1)编辑配置文件 vim /etc/rsyncd.conf [backup] comment = "backup dir by oldboy" path = /backup [devbackup] comment = "backup dir by oldboy" path = /devbackup [sabackup] comment = "backup dir by oldboy" path = /sabackup (2)设置目录属主/属组 mkdir /{backup,devbackup,sabackup}/ -p chown -R rsync.rsync /{backup,devbackup,sabackup}/ (3)重启rsync服务 killall rsync && rsync --daemon /etc/init.d/xinetd restart (4)客户端测试

方式二(多用户多模块): (1)生成3个备份目录管理用户 useradd -s /sbin/nologin -M rsync useradd -s /sbin/nologin -M sa useradd -s /sbin/nologin -M dev (2)编写修改rsync配置文件 [backup] uid = rsync gid = rsync comment = "backup dir by oldboy" path = /backup [devbackup] uid = dev gid = dev comment = "backup dir by oldboy" path = /devbackup [sabackup] uid = sa gid = sa comment = "backup dir by oldboy" path = /sabackup (3)对备份目录进行分别授权 chown -R rsync.rsync /backup/ chown -R sa.sa /sabackup/ chown -R dev.dev /devbackup/ (4)重启服务 killall rsync && rsync --daemon

3.黑白名单访问策略 (1)只有白名单,没有黑名单,只按白名单执行,默认规则是阻止 (2)没有白名单,只有黑名单,按黑名单执行,默认规则是允许 (3)默认规则允许,白名单优于黑名单 4.守护进程无差异同步配置 --delete 实现无差异同步数据传输 5.守护进程列表功能配置(list= ) list=true(可以让rsync客户查看到rsync服务端所有的模块信息) list=false(不可以让rsync客户查看到rsync服务端所有的模块信息) 查看命令:rsync rsync_backup@172.16.1.41:: 建议为false,安全