Rsync数据同步工具
什么是Rsync?
Rsync是一款开源的、快速的、多功能的,可以实现全量及增量的本地或原程数据同步备份的优秀工具。Rsync软件适用于unix/linux/windows等多种操作系统平台。
Rsync还可以实现删除文件和目录的功能。
Rsync相当于scp,cp ,rm.但是还优于他们每一个命令。
Rsync的特性;
1、支持拷贝特殊文件如链接文件,设备等。
2、可以有排除(tar? find?)指定文件或目录同步的功能,相当于打包命令tar的排除功能。
3、可以做到保持源文件和目录的权限,时间,软硬链接,属主,组等属性均不变-P
4、可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar-N)
5、可以使用rcp,rsh,ssh等方式来配合传输文件(rsync本身不对数据加密)
6、可以通过socket(进程方式)传输文件和数据(服务端和客户端)
7、支持匿名的认证(无需系统用户)的进程模式传输,可实现方便安全的进程数据备份级镜像。
Rsync的工作方式?
三大类
1、单个主机本地之间的数据传输(此时类似于cp命令的功能)
2、借助rcp,ssh等通道来传输数据(此时类似于scp命令的功能)
3、以守护进程(socket)的方式传输数据(这个是rsync自身的重要功能)
Rsync 命令常用参数
-V,--verbose详细模式输出,传输时的进度等信息
-z, --compress传输时进行压缩以提高传输效率,--compress-level=NUM可按级别压缩。
-a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rtopgD1
-r,--recursive 对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写r
-o,--owner 保持文件属主信息
-p,--perms 保持文件·权限
-g ,--group 保持文件属组信息
-p ,--progress 显示同步的过程及传输时的进度等信息
-D,--devices保存设备文件信息
-l,--links 保留软链接
-e,--rsh=COMMAND | 使用的信道协议(remote shell),指定替代rsh的shell程序。例如:ssh --exclude=PATTERN 指定排除不需要传输的文件模式(和tar参数一样) |
--bwlimit=RATE | limit socket I/O bandwidth |
--delete | 让源目录SRC和目标目录数据DST一致 |
Rsync缺点;1,大量小文件时候同步的时候,比队时间较长,有时候,同步过程中,rsync进程可能会停止,僵死了。
2、同步大文件,10G这样的大文件有时候也会出问题,中断。未完整同步前,是银川文件,可以通过续传(--partial)等参数实现传输。
3、一次性远程拷贝可以用scp,大量小文件要打成一个包在拷贝。
Rsync优点;
1、增量备份,支持socket(daemon),集中备份(支持推拉,都是以客户端为参照物)。
2、远程SHELL通道模式还可以加密(SSH)传输,socket(daemon)需要加密传输,可以利用vpn服务或ipsec服务。
Rsync服务端排错思路
查看rsync服务配置文件路径是否正确,正确的默认路径为:/etc/rsyncd.conf
查看配置文件里host allow,host deny,允许的IP网段是否是允许客户端访问的ip网段
查看配置文件中path参数里的路径是否存在,权限是否正确(正常应为配置文件中断UID参数对应的属主和组)
参看rsync服务是否启动的命令为:ps-ef | grep rsync
端口是否存在netstat -antup | grep 873
查看iptables 防火墙和selinux是否开启允许rsync服务通过,也可以考虑关闭。
查看服务端rsync配置的密码文件是否为60的权限,密码文件格式是否正确,正确格式为;用户名: 密码,文件路径和配置文件里的secrect files参数对应。
如果是推送数据,要查看下,配置rsyncd.conf文件中用户是否对模块下目录有可读写的权限。
第一步;创建程序用户
useradd -M -s /sbin/nologin
第二步;创建共享目录
mkdir /backup
第三步;可以在rsync里写
chown rsync /backup
第四步:vim /etc/rsync.passwrod
进入里面创建虚拟账号和密码
rsync_backup:123456
将文件账户密码权限设为600(安全措施)
chmod 600 /etc/rsync.password
启动服务
rsync --daemon
监听873端口12
ss (netstat) -antup | grep rsync
手动模式推;
rsync -avz /benet/ rsync_backup@192.168.81.128::backup
输入密码(交互文件直接传输)
rsync -avz /benet/ rsync_backup@192.168.81.128::backup --password file=/etc/rsync.password
防火墙的规则;
1、service iptable start
2、service iptable stop
3、netstat -antup | grep sshd