一、rsync是什么?
rsync远程同步数据的一个命令,而且支持增量备份,解释:A机器和C机器考备过一次,A机器上的数据发生了改变,再次将A机器考备到C机器,它不会覆盖 原有的数据,只会增加A与C之间不同的地方。
二、rsync选项?
-a==r(针对目录,归档)
l(保留软链接文件)
例如:
<a href="https://s3.51cto.com/wyfs02/M00/8F/7B/wKioL1jgjTeSH1zeAAALhQ2cgfo766.png-wh_500x0-wm_3-wmp_4-s_2681858340.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/8F/7D/wKiom1jgjTij117rAAAKLImNWuA467.png-wh_500x0-wm_3-wmp_4-s_2418672791.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/8F/7B/wKioL1jgjTiiprTXAAAWVO5zWLc110.png-wh_500x0-wm_3-wmp_4-s_3928909393.png" target="_blank"></a>
p(读写执行,权限)
t(时间)
g(属组)
o(属主)
D(设备文件)
-v可视化
-P显示同步时的百分比
--delete 强制保持文件的一致性,源是什么,目标就是什么。
--exclude==*.log不要后缀为.log的文件
-L rsync可以在同步的时候把软链接对应的源文件拉过来
-u 允许目标机器上的新文件 。A机器copy到C机器,C机器上的数据就需要一些改动
-z 压缩
三、具体用法?
拉,远程的数据到本地:rsync -av 192.168.11.190:/tmp/1.txt /tmp
推,本地的数据到远程:rsync -av /tmp/1.txt 192.168.11.190:/tmp
四、以daemon方式启动rsync
日志文件为,var/log/rsync.log(排错去找)
搭建过程:服务器端192.168.8.102
a.创建配置文件,且修改配置文件
[root@Herry ~]# vim /etc/rsyncd.conf
port=8730
log file=/var/log/rsync.log
pid file=/var/run/rsync.pid
[test]
path=/tmp/rsync
use chroot=no
max connections=4
read only=no
list=true
uid=aop
gid=aop
auth users=wenwen
secrets file=/etc/rsyncd.passwd
hosts allow=192.168.8.101
path:是推送文件的路径,
use chroot:是把远程用户限制规定的目录内,即/tmp/rsync中,如果使用-L同步软链接的源文件,而源文件又在/etc目录下(非tmp/rsync目录),use chroot=yes,则无法使用L选项;
max connection:最大连接数;
read only只读;
list是否要将模块名test列出来;
uid属主,后面红色的有详细介绍;
gid属组,后面红色的有详细介绍;
auth user 验证用户名,作连接用;
secrets file密码文件;
hosts allow允许哪些主机IP连接;
b.启动一个守护进程,且查看进程是否生成
[root@Herry ~]# rsync --daemon
[root@Herry ~]# ps aux | grep rsync
root 8129 0.2 0.0 107624 552 ? Ss 00:05 0:00 rsync --daemon
root 8135 0.0 0.0 103260 848 pts/0 S+ 00:06 0:00 grep rsync
c.创建/tmp/rsync
[root@Herry ~]# mkdir /tmp/rsync
[root@Herry ~]# touch /tmp/rsync/1.txt
[root@Herry ~]# echo "asdsa" > /tmp/rsync/1.txt
d.在服务端192.168.8.101上创建密码文件
vim /etc/rsyncd.passwd
wenwen:l426844 wenwen是验证帐号,l426844是验证密码。
e.给密码文件设置权限:chmod 400 /etc/rsyncd.passwd
f.客户端192.168.8.101验证,将服务器上的1.txt,拉取过来,其中--port指的是与服务器端的8730端口连接,默认是tcp 873端口,因为在服务器端中的配置文件/etc/rsyncd.conf中指定过。
[root@wenwen ~]# rsync -avzP --port 8730 [email protected]::test/1.txt ./
Password:
receiving incremental file list
1.txt
6 100% 5.86kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 75 bytes received 144 bytes 39.82 bytes/sec
total size is 6 speedup is 0.03
[root@wenwen ~]# ls
123 1.txt 2.txt anaconda-ks.cfg install.log 公共的 视频 文档 音乐
123.txt 234.txt 9.txt cisco install.log.syslog 模板 图片 下载 桌面
五、部分参数剖析
/etc/rsyncd.conf中UID和GID意义:
针对客户端往服务器上的拉取和推送等操作,在服务器上的/tmp/rsync/下看传过来的文件属主:
1.服务器端如果是root,则同步过来的就跟客户端的属主属组保持一致,如果在服务器端本地没有创建客户端的文件属主属组,则直接用数字替补(跟客户端的UID和GID一样的数字),用id查询UID和GID哦!
2.服务器端如果是非root,则同步过来的文件属主和属组就是服务器端指定的UID和GID
本文转自飞奔的小GUI博客51CTO博客,原文链接http://blog.51cto.com/9237101/1912163如需转载请自行联系原作者
ziwenzhou