rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步,
支持增量传输(只同步变化的数据新消息主要利用里quick check算法实现)
同步原理:
1)建立网络连接
2)信息比对
3)只将辩护熬多数据进行增量备份。
Rsync 的特性如下:
本地数据备份:cp
注意:用rsync同步目录的时候 ,源路径目录不能以/结尾,否则会把里面的内容同步过去,而不是同步的目录。
eg: rsync -a /etc /temp/
远程数据备份:scp
可见,两个文件都从nfs01这台机器上传过来了。
数据删除操作:rm (–delete) 准确来说应该叫替换
这里直接把/temp里面的东西全部替换过来了,把原来的东西全部删除了。所以当你要清空某个文件夹的时候 可以创建一个空目录,然后用 rsync --delete命令替换,比rm效率高很多。
怎么恢复呢? 参考scp 用另一台机器的tmp直接替换过来。
利用守护进程方式实现数据同步
man rsync中的守护进程方式说明
服务器端部署步骤
2.2 配置rsync服务端(将服务端配置到 backup 服务器上)
第一个里程碑: 软件是否存在
[root@backup ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64
第二个里程碑: 进行软件服务配置
[root@backup ~]# vim /etc/rsyncd.conf
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
第三个里程:创建rsync备份目录管理用户(虚拟用户)
[root@backup ~]# id rsyncid: rsync: No such user
[root@backup ~]# useradd -s /sbin/nologin -M rsync
第四个里程碑: 创建数据备份储存目录,目录修改属主
[root@backup ~]# mkdir /backup/
[root@backup ~]# chown -R rsync.rsync /backup/
第五个里程碑: 创建认证用户密码文件
echo "rsync_backup:oldboy123" >>/etc/rsync.password
chmod 600 /etc/rsync.password
第六个里程碑: 启动rsync服
rsync --daemon
至此服务端配置完成
[root@backup ~]# ps -ef |grep rsync
root 2076 1 0 17:05 ? 00:00:00 rsync --daemon
root 2163 1817 0 17:38 pts/1 00:00:00 grep --color=auto rsync
[root@backup ~]# netstat -lntup |grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:*
LISTEN 2076/rsync
tcp 0 0 :::873 :::*
LISTEN 2076/rsync
配置rsync客户端(其他服务器为客户端)
第一个里程碑: 软件是否存在
[root@nfs01 ~]# rpm -qa |grep rsync
rsync-3.0.6-12.el6.x86_64
第二个里程碑: 创建认证文件
客户端的认证文件只需要有密码即可
echo "oldboy123" >>/etc/rsync.password
chmod 600 /etc/rsync.password
第三个里程碑: 实现数据传输
交互式
[root@nfs01 ~]# rsync -avzP /etc/hosts [email protected]::backup
Password:
sending incremental file list
hosts
357 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 63 bytes received 33 bytes 9.14 bytes/sec
total size is 357 speedup is 3.72
免交互式
[root@nfs01 ~]# rsync -avzP /etc/hosts [email protected]::backup --
password-file=/etc/rsync.password
sending incremental file list
hosts
357 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 199 bytes received 27 bytes 150.67 bytes/sec
total size is 357 speedup is 1.58
目录参数 参数说明
4.1 特殊参数实践
指定ip:
[root@backup ~]# rsync --daemon --address=172.16.1.41
[root@backup ~]# netstat -lntup |grep 873
tcp 0 0 172.16.1.41:873 0.0.0.0:* LISTEN 2583/rsync
参数测试:
[root@nfs01 ~]# rsync -avzP /etc/services [email protected]::backup --
password-file=/etc/rsync.password
sending incremental file list
services
641020 100% 19.34MB/s 0:00:00 (xfer#1, to-check=0/1)
sent 127417 bytes received 27 bytes 254888.00 bytes/sec
total size is 641020 speedup is 5.03
指定配置文件路径
[root@backup ~]# rsync --daemon --config=/etc/rsyncd.conf
[root@nfs01 ~]# rsync -avzP /etc/services [email protected]::backup --
password-file=/etc/rsync.password
sending incremental file list
sent 29 bytes received 8 bytes 74.00 bytes/sec
total size is 641020 speedup is 17324.86
服务端指定服务端口:
[root@backup ~]# rsync --daemon --port=5222
[root@backup ~]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 2598/rsync
tcp 0 0 :::5222 :::* LISTEN 2598/rsync