以rsync的daemon工作模式传输数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以rsync的daemon工作模式传输数据相关的知识,希望对你有一定的参考价值。

一、简介

rsync主要有三种工作方式:

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

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

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

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

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

 

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

[[email protected]]# rsync --deamon #启动服务

[[email protected]]# ps -ef|grep rsync|grep -v grep

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

[[email protected]]# 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 

[[email protected]]# ss -lntup|grep rsync

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

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

[[email protected]]# 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)

 

三、服务端配置

[[email protected] ~]# 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

[[email protected] ~]# useradd rsync -s /sbin/nologin  -M

[[email protected] ~]# tail -1 /etc/passwd

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

[[email protected] ~]# id rsync

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

[[email protected] ~]# mkdir /backup

[[email protected] ~]# chown -R rsync.rsync /backup/

[[email protected] ~]# ls -ld /backup/             

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

 

[[email protected] ~]#echo"rsync_backup:oldboy">/etc/rsync.password

[[email protected] ~]# cat /etc/rsync.password                      

rsync_backup:oldboy

#/etc/rsync.password的内容对应了[[email protected] ~]# 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,所以针对其他用户来说,这里是不安全的,所以设置。

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

[[email protected] ~]# ll /etc/rsync.password

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

[[email protected] ~]# chmod 600 /etc/rsync.password

[[email protected] ~]# ll/etc/rsync.password       

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

 

[[email protected] run]# vim /etc/rc.local 

touch /var/lock/subsys/local

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

rsync –daemon

 

四、客户端设置

[[email protected] ~]# mkdir -p  /backup

[[email protected] ~]# echo "oldboy" >/etc/rsync.password

[[email protected] ~]# chmod 600 /etc/rsync.password

[[email protected] ~]# ll /etc/rsync.password

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

[[email protected] ~]# cat /etc/rsync.password

oldboy

 

五、测试

#推测试

#100客户端

[[email protected] ~]# 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

 

[[email protected] ~]# rsync -avz/tmp/[email protected]::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

[[email protected] ~]# echo $?

0

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

 

#41服务端

[[email protected] ~]# 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客户端执行

[[email protected] ~]# rsync [email protected]::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

[[email protected] ~]# echo $?

0

 

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

 


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

以上是关于以rsync的daemon工作模式传输数据的主要内容,如果未能解决你的问题,请参考以下文章

rsync服务简介(补充)

linux rsync 同步过来的目录为啥属主属组是mysql

rsync简明手册

sersync的简单例子

rsync服务实现推送,拉取

rsync服务安装使用