rsync服务守护进程 服务器端配置过程:
1. 检查rsync是否安装:
rpm -qa rsync
2.添加rsync服务的用户,管理本地目录
useradd-s /sbin/nologin -M rsync
3.生成rsyncd.conf 配置文件(默认没有需要手动创建)
touch /etc/rsyncd.conf
4. 写入配置到 /etc/rsyncd.conf 文件中
#rsync_config
#created by HQ at 2017
##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
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32 ##这两个同时写,那就会造成其他IP段也能通过rsync传文件,解决办法,保留一个
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup
#created by oldboy 15:00 2016-11-15
##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 deny = 0.0.0.0/32 ##这两个同时写,那就会造成其他IP段也能通过rsync传文件,解决办法,保留一个
auth users = rsync_backup
secrets file = /etc/rsync.password
5.写入密码到 密码配置文件/etc/rsync.password
echo "rsync_backup:123456" >/etc/rsync.password
6. 给密码文件添加权限避免其他用户看到
chmod 600 /etc/rsync.password
7.创建共享目录 /backup并授权
mkdir /bakcup -p
chown -R rsync.rsync /backup
8. 启动服务并检查
rsync --daemon 服务器配置完成
9.添加到开机自启动
echo "/usr/bin/rsync --daemon" >>/etc/rc.local
检查是否成功启动:lsof -i:873
[root@backup ~]# lsof -i:873 (进程启动成功,配置完成)
COMMANDPID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync2002 root 4u IPv412746 0t0 TCP *:rsync (LISTEN)
rsync2002 root 5u IPv612747 0t0 TCP *:rsync (LISTEN)
---------------------------
客户端配置:
两步:
1. echo '123456' >/etc/rsync.password
2. chmod 600 /etc/rsync.password
测试:
客户端:
[root@nfs01 backup]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup/
Password:
sending incremental file list
./
1.txt
10.txt
2.txt
3.txt
4.txt
5.txt
6.txt
7.txt
8.txt
9.txt
全部推送到 远程服务成功
配置无交互的密码文件验证方式:
rsrsync -avz /backup/sync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
密码文件存放: --password-file=/etc/rsync.password
服务器(10.0.0.31)创建文件:
to touch chenleilei{1..100}.txt
rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
看到文件都被推送过来了,表示成功完成实验
百万级小文件的实时同步方案:
http://www.ttlsa.com/web/let-infotify-rsync-fast/
注意:修改了服务配置必须重启服务,否则无法生效
重启进程的两个方法:
rm -f /var/run/rsyncd.pid
pkill rsync
进程结束了 最好确认一下:
lsof -i :873
同样进程开启了也需要确认一下
lsof -i :873
小问题:
vi /etc/rsyncd.conf 配置文件中:
#hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
#hosts allow = 192.168.1.0/24
全部注释都无法传输
hosts allow = 192.168.1.0/24 开放这一项 无法传输
hosts deny = 0.0.0.0/32 #仅开放这一项 可以传输
hosts allow = 172.16.1.0/24 #仅开放这一项 无法传输
全部注释 可以传输???
rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password 可以在没有任何权限的情况下 推送文件到 服务器
hosts deny = 0.0.0.0/32 可以传输
hosts allow = 172.16.1.0/24 可以传输
hosts allow = 192.168.1.0/24 单项开启 无法传输
hosts deny = 0.0.0.0/32 单项开启: 可以传输
hosts allow = 172.16.1.0/24 单项开启:可以传输
hosts deny = 0.0.0.0/32 开启
hosts allow = 192.168.1.0/24 开启 这两项同时开启,可以传输
hosts allow = 172.16.1.0/24 开启
hosts allow = 192.168.1.0/24 开启 这两项 无法传输
注释其他所有添加外网网段
hosts alllow = 10.0.0.0/24 开启 可以传输
故障整理演示:
故障1:
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1503) [sender=3.0.6]
答: 要上传的目录不存在吗,因为我在另一端删除了 /backup 目录 ,解决办法 重新创建backup目录 重新添加所属主组 和数字权限600
[root@backup ~]# mkdir /backup -p
[root@backup ~]# chmod 600 /backup/
[root@backup ~]# chown rsync.rsync /backup/
推送数据:
rsync -avz /backup/ rsync_backup@172.16.1.41::backup/
拉回数据:
rsync -avz rsync_backup@172.16.1.41::backup/ /backup
远程推送数据:
sync -avz /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
拉回远程数据:
rsync -avz rsync_backup@172.16.1.41::backup /backup --password-file=/etc/rsync.password
来源:https://www.cnblogs.com/superlinux/p/dbb55c4545567fc990cda11eef48caf1.html