一、RSYNC介绍。
全称Remote Rynchronization。
可以用于主机之间快速复制同步镜像和远程备份,类似于SCP命令,但又优于SCP命令,可以增量拷贝。
同时又类似于CP命令,用于本地不同分区或目录之间的全量或者增量拷贝。
还能实现删除文件和目录的功能,类似于RM命令。
二、RSYNC特性。
1. 支持拷贝特殊类型文件如设备,链接文件。
2. 可以排除指定文件或目录,相当于TAR打包时的排除。
3. 可以保持原文件的属性不变,如属主、属组、修改时间、软硬链接,权限等等。
4. 可以实现增量备份,备份效率远高于SCP全量拷贝。
5. 可以使用RCP、RSH、SSH通道来传输文件。
6. 可以通过SOCKET进程方式传输文件。
7. 支持匿名或者认证用户(非系统用户)的进程模式传输。
三、常见企业生产场景应用
1. 服务器之间的数据备份。
2. 结合inotify实现数据实时同步。
3. 备份全网数据到一台固定的备份存储服务器。
四、安装部署配置实战演练
1. 本地备份
2. RSYNC保持文件所有属性的参数 -avz
3. RSYNC实现删除
其实是一种排除删除,也可以说是删除复制,排除指定目录内同样的文件,删除其它,如果指定目录为空目录,则删除所有。注意指定目录后需接/,并且该删除方式只跟指定目录内的文件内容有关,跟目录名无关。
4. RSYNC通道推拉,使用-e参数指定通道。
5. RSYNC参数详解
-v 详细进度
-z 压缩传输
-a 归档模式,以递归方式传输,保持文件属性。
6. RSYNC进程模式演练
实验环境:
192.168.0.31 NFS服务器作为RSYNC的服务器,接收192.168.0.21NGINX服务器和192.168.0.90MYSQL数据库的数据同步。
RSYNC进程的默认配置文件不存在,手动创建,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
[asling]
path = /home/data-asling
ignore errors
read only = false
list = false
hosts allow = 192.168.0.0/24
hosts deny = 192.168.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#################################################################
启动进程模式的RSYNC,命令rsync --daemon
增加用户和密码,并设置密码文件权限为600.
客户端只需存在RSYNC软件即可,配置etc/password密码:
此处无需用户名,配置完成后密码文件修改权限为600.
echo "123456" > /etc/rsync.password
客户端拉取服务端实例 (输入密码方式)
使用密码文件时需要指定密码文件,使用参数--password-file=/path
五、企业级应用实战
1. 客户端排除打包
使用--exclude=方式排除
使用--exclude-from=方式排除
2. 服务端排除打包
使用--exclude=方式排除
3. 企业重要应用:无差异同步(--delete参数的使用)
高风险操作!慎用!
1. 客户端排除打包
4. 共享多个目录
将相同参数放到模块之外。
原文地址:http://xiangpang.blog.51cto.com/10719398/1712644