Rsync数据同步工具

Rsync是一款开源的,快捷的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具。用于服务器之间数据同步,一般都是通过定时任务和rsync。适用于unix、linux、windows等操作系统。

特性:
有排除功能,排除某个文件然后同步到目标。
保持源文件或目录的权限、时间、软硬链接,属主、属组、属性不变。
可以增量同步,只同步对方没有的。
可以使用rcp,rsh,ssh等方式来配合传输文件。
可以通过socket监听方式接收数据。
可以加密传输。
Rsync工作方式分为三大类:
1.本地之间的数据同步。
2.网络间两台不同IP服务器间数据同步。
3.以socket进程监听的方式启动Rsync服务端,专门监听某个端口。

第一类:

[root@jinchuan ~]# rsync /etc/hosts /tmp  将hosts系统映射文件同步到/tmp
[root@jinchuan ~]# rsync -avz /root/benet /tmp  将/root/benet目录同步到/tmp下
-a表示以递归的方式传输  -v表示传输时显示详细信息  -z表示传输时进行压缩可以提高效率
[root@jinchuan ~]# rsync -avz /root/benet /tmp --delete  这样可以实现/root/benet和/tmp两个目录完全一样,把/tmp下没有的增量传输过去,把/tmp与/root/benet下不一样
的数据删除

第二类:

[root@jinchuan ~]# yum -y install openssh-clients  首先安装一个ssh通道的支持包
[root@jinchuan ~]# rsync -avz /root/benet root@192.168.200.103:/tmp  将本地/root/benet目录增量同步到IP地址为192.168.200.131服务器的/tmp目录下
[root@jinchuan ~]# rsync -avz -e 'ssh -p 22' /root/benet root@192.168.200.131:/tmp  -e是指定对方远程连接的端口号,默认是22不用指定。

第三类:

部署服务端:
首先在服务端/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
[backup]
path = /backup/
ignore errors
read only = false
list = false
hosts allow = IP地址
hosts deny = IP地址
auth users = 虚拟用户名
secrets file = /etc/rsync.password

[root@jinchuan ~]# useradd -M -s /sbin/nologin rsync  创建rsync程序用户
[root@jinchuan ~]# mkdir /backup  创建模块里的目录
[root@jinchuan ~]# chown rsync.rsync /backup  将/backup的属主和属组改成rsync程序用户
[root@jinchuan ~]# rsync --daemon  启动rsync服务
[root@jinchuan ~]# touch /etc/rsync.password  在里面写虚拟的账号和密码
[root@jinchuan ~]# chmod 600 /etc/rsync.password  将密码文件权限改成600
部署客户端:
[root@jinchuan ~]# vim /etc/rsync.password  创建服务端密码文件,写入密码。
[root@jinchuan ~]# chmod 600 /etc/rsync.password  将密码文件权限改成600

[root@jinchuan ~]# rsync -avz /root/benet rsync_backup@192.168.200.131::backup --password file=/etc/rsync.password  将客户端/root/benet目录推向

服务端配置文件的模块,指向客户端的密码文件,这样可以密码免交互推送

[root@jinchuan ~]# rsync -avz --bwlimit=100 /root/benet root@192.168.200.131:/tmp  这个是给rsync限速,因为他在推送时会占满整个带宽,导致其他服务无法正常工作

原文地址:https://www.cnblogs.com/jinchuan16/p/9915751.html