一、简介
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
原文地址:http://ylcodes01.blog.51cto.com/5607366/1787772