首页 > 代码库 > Rsync同步工具

Rsync同步工具

rsync配置文件:/etc/rsyncd.conf ###安装rsync后系统默认不存在rsyncd.conf   需要自己创建。

[root@zhu-centos6 ~]# cat /etc/rsyncd.conf

##rsyncd.conf start##

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

[zhuzhiwei] ###项目名称,可以随意定义。

path = /data1/ ###共享的目录

ignore errors

read only = false

list = false

hosts allow = 192.168.2.0/24 ###允许访问的IP地址

hosts deny = 0.0.0.0/32 ###拒绝访问的IP地址

auth users = zzw ###rsync用户的别名,可随意定义。

secrets file = /etc/rsync.password ###rsync密码文件。

[root@zhu-centos6 ~]# cat /etc/rsync.password ###rsync密码文件。

zzw:123@asd ###分号前部分为rsync用户别名,后面为密码

[root@zhu-centos6 ~]# chmod 600 /etc/rsync.password ###安全起见密码用户的权限设置为600

[root@zhu-centos6 ~]# ll /etc/rsync.password

-rw------- 1 root root 8 Jun 10 15:21 /etc/rsync.password

例子:zhu-centos6 作为备份服务器,Centos6-Vm-A-247作为客户端。

[root@zhu-centos6 ~]# useradd rsync -s /sbin/nologin ##首先创建rsync用户,禁止用户登录。

[root@zhu-centos6 ~]# mkdir /data1 ###创建要共享的目录,共享的目录名称要和rsyncd.conf配置文件里面的共享目录相同

[root@zhu-centos6 ~]# chown -R rsync.rsync /data1 ###指定共享目录的权限,属主和属组都是rsync。

[root@zhu-centos6 ~]# ls  -l  | grep data1 ###查看共享目录的权限信息。

drwxr-xr-x    2 rsync     rsync      4096 Jun 10 15:28 data1

[root@zhu-centos6 ~]# rsync daemon ###启动rsync进程

[root@zhu-centos6 ~]# ps -ef | grep -v grep | grep rsync ###查看rsync进程是否启动

root      1596     1  0 Jun05 ?        00:00:00 rsync --daemon

##########到此服务器端配置完成#####接下来配置客户端

[root@Centos6-Vm-A-247 ~]# cat /etc/rsync.password ##首先创建密码文件,密码文件内容要和服务器端密码文件里面的密码一致。

123@asd

[root@Centos6-Vm-A-247 ~]# chmod 600 /etc/rsync.password ###安全起见密码用户的权限设置为600

[root@Centos6-Vm-A-247 ~]# ll /etc/rsync.password

-rw------- 1 root root 8 Jun 10 15:21 /etc/rsync.password

[root@Centos6-Vm-A-247 aaa]# pwd ###检查要同步的目录路径

/aaa

[root@Centos6-Vm-A-247 aaa]# ls

1  10  2  3  4  5  6  7  8  9

[root@Centos6-Vm-A-247 aaa]# rsync -avz  /aaa/ zzw@192.168.2.185::zhuzhiwei --password-file=/etc/rsync.password ###向备份服务器端发送文件

sending incremental file list

./

1

10

2

3

4

5

6

7

8

9

sent 450 bytes  received 201 bytes  1302.00 bytes/sec

total size is 0  speedup is 0.00

———————————————————————————

PS:同步时用到的命令含义。

-avz #rsync同步时所带的选项。

/aaa/ #将“aaa”目录里面的所有文件上传到备份服务器的共享目录里面。

zzw@192.168.2.185 ###zzw为rsync的虚拟账户,192.168.2.185为备份服务器的IP。

::zhuzhiwei ##服务器端的项目名称

--password-file=/etc/rsync.password ##rsync虚拟用户的密码文件,如不使用此选项,需在同步文件时输入一次rsync虚拟账户的密码。

——————————————————————————————

[root@Centos6-Vm-A-247 ~]# rsync -avz zzw@192.168.2.185::zhuzhiwei  /data1/ --password-file=/etc/rsync.password  ##从备份服务器端获取文件,/data1/是从服务器端获取的文件放到本地的data1目录下

receiving incremental file list

./

1

10

2

3

4

5

6

7

8

9

sent 251 bytes  received 537 bytes  1576.00 bytes/sec

total size is 0  speedup is 0.00

[root@Centos6-Vm-A-247 ~]# ls /data1

1  10  2  3  4  5  6  7  8  9

————————————————————————————

————————————————————————————

从客户端向服务端发送文件时排除文件

[root@Centos6-Vm-A-247 aaa]# rsync -avz  --exclude=123 /aaa/ zzw@192.168.2.185::zhuzhiwei --password-file=/etc/rsync.password  #发送过程中排出单个文件

[root@Centos6-Vm-A-247 aaa]# rsync -avz  --exclude={123,456} /aaa/ zzw@192.168.2.185::zhuzhiwei --password-file=/etc/rsync.password  #发送过程中排出多个文件文件中间用逗号隔开。

如果想要排除更多的文件,可以写一个.log的文件,把需要排除的文件名添加到.log文件中,如下:

排除的文件名

[root@Centos6-Vm-A-247 ~]# rsync -avz  --exclude-from=/tmp/paichu.log /aaa/ zzw@192.168.2.185::zhuzhiwei --password-file=/etc/rsync.password

服务端接收和发送时排除文件(此方法不太灵活,不推荐使用)

需要在rsyncd.conf 的配置文件的项目里面添加一个排除规则,如下图:

注意:排除时也可以指定文件的全路径

需重启rsync服务,

-----------------------------------

无差异同步

[root@Centos6-Vm-A-247 data1]#rsync -avz --delete /data1/ zzw@192.168.2.185::zhuzhiwei --password-file=/etc/rsync.password    ###向服务器端推送数据,客户端服务器有什么备份服务器就有什么。

[root@Centos6-Vm-A-247 data1]#rsync -avz --delete zzw@192.168.2.185::zhuzhiwei /data1/ --password-file=/etc/rsync.password    ###从备份服务器端拉数据,备份服务器端有什么,客服端服务器就有什么。

切记无差异同步数据时危险性大,一定要注意文件的路径,否则会造成文件的丢失。


本文出自 “Zack” 博客,请务必保留此出处http://zhuzhiwei.blog.51cto.com/8446194/1947826

Rsync同步工具