一、简介

rsync主要有三种工作方式:

1、单个主机本地之间的数据传输(类似于cp命令的功能)

2、借助rcp,ssh等通道来传输数据(类似于scp命令的功能)

3、以守护进程(socket)的方式传输数据(rsync自身的重要功能)

这里描述的是以第三种模式处理。

此例子准备了两台机器,分别为服务端10.0.0.41-backup,客户端10.0.0.100-oldboy

 

二、在服务端启动及检查rsync服务

[root@backuptmp]# rsync --deamon #启动服务

[root@backuptmp]# ps -ef|grep rsync|grep -v grep

root      3648     1  0 19:10 ?        00:00:00 rsync--daemon

[root@backuptmp]# netstat -lntup|grep rsync

tcp       0      00.0.0.0:873                0.0.0.0:*                  LISTEN     3648/rsync          

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

[root@backuptmp]# ss -lntup|grep rsync

tcp    LISTEN    0     5                    :::873                 :::*      users:(("rsync",3648,5))

tcp    LISTEN    0     5                     *:873                  *:*      users:(("rsync",3648,4))

[root@backuptmp]# lsof -i:873#默认端口

COMMAND  PIDUSER   FD   TYPE DEVICESIZE/OFF NODE NAME

rsync   3648root    4u IPv4 14421      0t0  TCP *:rsync (LISTEN)

rsync   3648root    5u IPv6 14422      0t0  TCP *:rsync (LISTEN)

 

三、服务端配置

[root@backup ~]# cat /etc/rsyncd.conf

#rsync_config_______________start

##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

[backup]

path = /backup/

ignore errors

read only = false

list = false

hosts allow =  172.16.1.0/24

#hosts allow = 10.0.0.0/24

hosts deny = 0.0.0.0/32

auth users = rsync_backup

secrets file = /etc/rsync.password

#rsync_config_______________end

 

#上述中的hosts allow的IP不区分内外网,只要是对应网段的都可以。

#设置完上述文件之后要重启rsync

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

[root@backup ~]# tail -1 /etc/passwd

rsync:x:502:502::/home/rsync:/sbin/nologin

[root@backup ~]# id rsync

uid=502(rsync) gid=502(rsync) ×é=502(rsync)

[root@backup ~]# mkdir /backup

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

[root@backup ~]# ls -ld /backup/             

drwxr-xr-x 2 rsync rsync 4096 5  23 19:41 /backup/

 

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

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

rsync_backup:oldboy

#/etc/rsync.password的内容对应了[root@backup ~]# cat /etc/rsyncd.conf中的

auth users = rsync_backup

secrets file = /etc/rsync.password

 

#把密码放在/etc/rsync.password中是因为不想再交互了

#当别人连过来,会连secrets file= /etc/rsync.password这个文件,会使用authusers = rsync_backup这个用户。

#连接需要密码,并且是root,所以针对其他用户来说,这里是不安全的,所以设置。

#要养成设置和查看的好习惯。

[root@backup ~]# ll /etc/rsync.password

-rw-r--r-- 1 root root 20 5  23 19:46 /etc/rsync.password

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

[root@backup ~]# ll/etc/rsync.password       

-rw------- 1 root root 20 5  23 19:46 /etc/rsync.password

 

[root@backup run]# vim /etc/rc.local 

touch /var/lock/subsys/local

>/etc/udev/rules.d/70-persistent-net.rules

rsync –daemon

 

四、客户端设置

[root@oldboy ~]# mkdir -p  /backup

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

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

[root@oldboy ~]# ll /etc/rsync.password

-rw------- 1 root root 7 5?  23 20:45 /etc/rsync.password

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

oldboy

 

五、测试

#推测试

#100客户端

[root@oldboy ~]# ll -ltr /tmp/

total 0

-rw------- 1 root root 0 Mar  6 16:18 yum.log

-rw-r--r-- 1 root root 0 May 23 17:12 stu9

 

[root@oldboy ~]# rsync -avz/tmp/rsync_backup@10.0.0.41::backup --password-file=/etc/rsync.password

sending incremental file list

./

stu1

stu10

stu11

stu12

stu13

sent 999 bytes received 414 bytes  2826.00bytes/sec

total size is 0 speedup is 0.00

[root@oldboy ~]# echo $?

0

#执行完步骤执行echo$?,结果如果为0的话,那么结果就是正确的

 

#41服务端

[root@backup ~]# ll -ltr /backup/

×üóá 0

-rw------- 1 rsync rsync 0 3   6 16:18 yum.log

-rw-r--r-- 1 rsync rsync 0 5  23 17:12 stu9

-rw-r--r-- 1 rsync rsync 0 5  23 17:12 stu8

。。。。。。。。。。。。。。。

 

#拉测试

#100客户端执行

[root@oldboy ~]# rsync -avzrsync_backup@10.0.0.41::backup/tmp/ --password-file=/etc/rsync.password

receiving incremental file list

。。。。。。。。。。

stu9

yum.log

 

sent 467 bytes received 1083 bytes  3100.00bytes/sec

total size is 0 speedup is 0.00

[root@oldboy ~]# echo $?

0

 

#只会拉到客户端没有,而服务端目录中存在的文件

 


本文出自 “你可以选择不平凡” 博客,请务必保留此出处http://ylcodes01.blog.51cto.com/5607366/1787772