rsync是开源的、快速的、多功能的可实现全量及增量的本地或远程数据同步备份的优秀工具。它拥有scp、cp的全量复制功能,同时比scp、cp命令更优秀、更强大。通过它独特的“quick check”算法,仅同步大小或者最后修改时间发生变化的文件或目录,同样也可以根据文件或目录的权限、属主等属性变化同步,但需要制定相应的参数,甚至可以实现只同步一个文件里有变化的内容部分,所有可以实现快速的同步备份数据。
CentOS5.x中,rsync2.x比对方法:把所有的文件比对一遍同步后,再进行同步。
CentOS6.x中,rsync3.x比对方法:一边比对差异,一边对差异的部分进行同步
backup服务器之rsync特性
- 支持拷贝特殊文件加链接文件、设备等
- 可以有排除指定文件或目录的同步功能 (–exclude参数)
- 可以保持原文件或目录的权限、时间、软硬链接、属主等所有属性不变(-p参数)
- 可以实现增量同步,即只同步发生变化的数据,传输效率高
- 可以配合rcp、rsh、ssh等方式来配合传输文件
- 可以通过socket(进程方式)传输文件和数据*****(服务端和客户端)
- 支持匿名的或认证的进程模式传输,可实现方便安全的数据备份及镜像
backup服务器之rsync生产企业工作场景
- cron+rsync 定时任务推送备份
- inotify+rsync或serync+rsync 实时数据备份
backup服务器之rsync的工作模式
- Local:(means cp) #本#地模式
rsync [OPTION...] src... [DEST]
- Access via remote shell: #通道模式
Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST
- Access via rsync daemon: #服务模式
Pull rsync [OPTION...] [[email protected]]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST]
Push rsync [OPTION...] SRC... [[email protected]]HOST::DEST
rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST
rsync参数
-a --archive相当于-rztopgDl
-v 详细输出
-z 压缩
-r --recursive递归
-t --times保持文件时间属性
-o --owner保持文件属主信息
-p --perms保持文件权限
-g --group 保持文件属组信息ttern
-D --device 保持设备文件信息
-l --links 保持软连接
-e --rsh=command使用的信道协议,制定替代的rsh的shell程序,如:ssh
--exclude=pattern 指定排除不需要传输的的文件
--delete 差异化同步
--bwlimit=RATE 设定传输速率
**rsync的src中如后面不接/表示同步该目录,加/表示同步该目录下的文件**
[[email protected] ~]#rsync –avz /etc/hosts /mnt/
backup服务器之rsync使用远程ssh通道实践及总结
利用-e参数使用ssh隧道传输数据:
[[email protected] ~]#rsync –avz /etc/hosts –e ‘ssh –p 22‘ [email protected]:/mnt/
默认传输速率比较慢,可以通过编辑目标的sshd_conf配置文件的两个参数GSSAPIAuthentication参数设置成no
UseDNS 设置为no 来提升速率
backup服务器之rsync daemon服务模式详解
useradd -s /sbin/nologin -M rsync 建立rsync虚拟用户; 不建立家目录
vim /etc/rsyncd.conf 创建rsync daemon服务进程配置文
###rsync_start##
###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
hosts allow = 172.16.1.0/24 全局使用(allow和deny二选一)
#hosts deny = 0.0.0.0/32
ignore errors
read only = false
list = false
auth users = rsync_backup 连接rsync服务器的用户
secrets file = /etc/rsync.password 连接rsync服务器的用户配置文件
[backup]
path = /backup
[nfsbackup] 多模块
path = /nfsbackup
##rsyconfig_____end
- 密码配置文件注意事项
*****rsync密码配置文件的权限必须为600*******
*****rsync服务端密码配置格式为用户名:密码****
*****rsync客户端密码配置格式只有密码********
- 配置文件生效需要服务重启
pkill rsync 关闭服务
lsof -i: 873 检查服务是否完全关闭
rsync --daemon 重启服务
****客户端不需要密码配置rsyncd.conf*******
###rsync_start##
###rsyncd.conf start##
uid = root
gid = root
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
hosts allow = 10.0.0.0/24
ignore errors
read only = false
list = false
[backup]
path = /backup
[mysql]
path = /root/mysql
##rsyconfig_____end
启动
rsync --daemon --config=/etc/rsyncd.conf