那些年我踩过的坑之 rsync daemon详解

服务端设置

/etc/rsyncd.conf 设置

#rsync.conf--------------------------------------------start

##这个地方被坑过 报错信息 uid rsync error 类似的
##原因是把##注释加到了uid=rsync后面,这里定义的是系统用户,以后的配置文##注释必须换行加
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300

##这条新版本必加的,否则报错 看下面常见错误
fake super = yes
pid file = /var/run/rsyncd.pid
##lock file
lock file = /var/run/rsync.lock
log file = /var/log/rysncd.log

[backup]

##即接收文件的目录,区分清楚末尾 / 的问题
path = /backup
ignore errors
read only = false
list = false
##生产环境一般使用内网IP做rsync
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32

##这个就是客户端访问的用户名,即 rsync_backup@IP 这个名
auth users = rsync_backup

##每个类似于[backup]这样的模块都有一个密码文件,区分于后期设立多模块,且路径可以自定义
secrets file = /etc/rsync.password
#rsyncd.conf--------------------------------------------------end

添加系统用户与rsyncd.conf uid gid 保持一致

useradd -s /sbin/nologin -M rsync

添加密码文件且修改权限为600

echo "rsync_backup:123" >> /etc/rsync.password
chmod 600 /rsync.password

创建接收文件目录并修改所有者和所有组

mkdir -p /backup
chown rsync.rsync /backup

客户端配置

创建密码文件 且写入密码 并修改权限

echo "123" >> /etc/rsync.password
chmod 600 /etc/rsync.password

测试

1.确认服务端端口打开,默认873 用nmap telnet 等测试, 如果不正常,大概率是防火墙的问题
2.命令 rsync -avz /backup/testfile [email protected]::backup 注意daemon 方式用:: 两个冒号,shell模式用: 一个冒号

这条命令很重要,写脚本的时候非交互使用密码文件

rsync -avz /backup/testfile [email protected]::backup --passwork-file=/etc/rsync.password

常见错误

1.uid gid error : 用户名不对,配置文件写错(我就是后面跟了##注释,被坑好久)
2.配置文件里写的文件名好几个,一定检查配置文件内容与 实际创建的文件 名一致
3.rsync: chgrp ".hosts.G6sZha" (in backup) failed: Operation not permitted (1)
这个错误就是因为没有加 fake super = yes

猜你喜欢

转载自blog.51cto.com/14316149/2415177