首页 > 代码库 > Rsync详解

Rsync详解


一、拷贝操作

本地拷贝,相当cp

[root@NFSServer ~]# rsync /etc/hosts /opt


[root@NFSServer opt]# rsync -avz /etc/hosts /opt


保存属性一般参数 使用-v是进度,-z压缩传输-a归档模式


二、删除操作

[root@NFSServer ~]# rsync -r --delete /null/ /data/

rsync的删除操作,先建立一个空的目录null,然后把data目录下的文件删除。删除原理是,前面的null是空的,后面的data也会变成空的,如果null有data也有


三、rsync的推操作

rsync -avz /etc/hosts -e ‘ssh -p 22‘ csbmoon@192.168.3.200:~


-e参数是使用的通道


四、rsync的拉操作

rsync -avz -e ‘ssh -p 22‘ csbmoon@192.168.3.200:/etc/hosts /root/


五、指定排除不需要传输的文件推送

[root@NFSServer bier]# rsync -avz /root/bier --exclude=a.txt -e ‘ssh -p 22‘ csbmoon@192.168.3.200:~


==>排除bier目录下的a.txt文件的推送


类似的有tar --exculude

tar -X=tar --exclude-from



服务端

六、rsync配置推拉不需要密码认证

rsync的配置文件在 /etc/rsyncd.conf  需要自己创建

编辑vim /etc/rsyncd.conf  加入如下内容:

#port=873

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

[bier]

path = /bier/


[data]  ==>可以共享多个目录

path = /data/



ignore errors

read only = false

list = false

hosts allow = 10.0.0.0/24

hosts deny = 0.0.0.0/32

auth users = rsync_backup  #指定验证用户名,可以不设置

secrets file = /etc/rsync.password


保存退出,以守护进程模式启动:rsync –daemon

加入到/etc/rc.local 开机自启动


检测端口是否启动:

[root@NFSServer ~]# netstat -lnptu | grep 873 

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      4410/rsync          

tcp        0      0 :::873                      :::*                        LISTEN      4410/rsync    


七、创建模块目录并且授权

[root@NFSServer ~]# mkdir /bier

[root@NFSServer ~]# useradd rsync -s /sbin/nologin

[root@NFSServer ~]# chown -R rsync.rsync /bier



八、创建验证用户密码

[root@NFSServer ~]# echo "rsync_backup:123456">/etc/rsync.password

[root@NFSServer ~]# cat /etc/rsync.password

rsync_backup:123456

[root@NFSServer ~]# chmod 600 /etc/rsync.password


至此服务端的免密码认证配置完毕。




客户端的操作

客户端只需要放密码进去密码文件认证就可以

[root@NFSClient ~]# echo "123456">/etc/rsync.password

[root@NFSClient ~]# chmod 600 /etc/rsync.password


下面在客户端测试拉操作不需要密码认证

[root@NFSClient /]# rsync -avz rsync_backup@192.168.3.188::bier /data --password-file=/etc/rsync.password


或者


[root@NFSClient data]# rsync -avz rsync://rsync_backup@192.168.3.188/bier /data --password-file=/etc/rsync.password


客户端推到服务器端操作

[root@NFSClient data]# rsync -avz /data/ rsync_backup@192.168.3.188::bier --password-file=/etc/rsync.password


注意:推和拉,文件都统一存放到了刚刚设置的bier模块里面



高级实战

排除多个文件

[root@NFSClient data]# rsync -avz --exclude={a,b} /data/ rsync_backup@192.168.3.188::bier --password-file=/etc/rsync.password


[root@NFSClient data]# rsync -avz --exclude={a..b} /data/ rsync_backup@192.168.3.188::bier --password-file=/etc/rsync.password


也可以在配置文件中排除指定文件,一般不这样子用--exclude=a b


排除指定文件里面的文件名,标记了哪个 文件名 该文件就不同步

[root@NFSClient data]# rsync -avz --exclude-from=paichu.log /data/ rsync_backup@192.168.3.188::bier --password-file=/etc/rsync.password



无差异同步

--delete 本地有啥,远端也有啥,反之。这样子做有风险

[root@NFSClient data]# rsync -avz --delete /data/ rsync_backup@192.168.3.188::bier --password-file=/etc/rsync.password    ==》推


[root@NFSClient data]# rsync -avz --delete rsync_backup@192.168.3.188::bier /data/ --password-file=/etc/rsync.password    ==》拉


[root@NFSClient data]# rsync -avzP /data/ rsync_backup@192.168.3.188::bier --password-file=/etc/rsync.password


-P参数指定传输的进度


本文出自 “比尔linux运维笔记” 博客,请务必保留此出处http://chenshoubiao.blog.51cto.com/6159058/1881339

Rsync详解