rsync 服务器配置过程

rsync的原理和相关算法不赘述,资料很多

1、准备两台机器并确保都已经安装rsync

a机器:192.168.1.150 ,用作客户端测试 b机器:192.168.1.151用作server端

先介绍个命令,lsof -i :873 检查rsyn服务是否启动,rsync作为守护进程运行时会默认监听873端口

为了试验顺利关闭iptables 和selinux

2、在b机以守护进程方式启动作为server端

有两种方式启动服务,一个是直接rsync --daemon,一个是通过xinetd 启动,如果要通过xinetd启动的话,需要先修改配置文件/etc/xinetd.d/rsync

如下所示:

service rsync
{
disable = no #这里原来是yes 改为no,只需修改这一行即可
flags = IPv6
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}

2、创建/etc/rsyncd.conf文件,系统默认没有这个文件,此文件是rsync作为服务端使用的主要配置文件

内容如下:

uid = nobody
gid = nobody

use chroot = yes #这里使用yes或者no都能正确运行,具体差别可去官网查阅或者google
max connections = 4
pid file = /var/run/rsyncd.pid #自行指定
lock file = /var/run/rsync.lock #自行指定
log file = /var/log/rsyncd.log  # 自行指定,这三个文件路径和名字可以随便定

[backup]
path = /data/backup/ #server端用来接收数据的实际路径,注意连接时使用的是上面中括号中的名字backup
read only = true #这里可以也可以改为false 最好是true,更安全
list = false
hosts allow = 192.168.1.0/24 #允许连接的ip范围
auth users = test #允许连接的用户名
secrets file = /etc/rsyncd.password #验证用的用户名和密码,格式为test:test, 路径和名字可以自定义

然后写入用户名密码 echo "test:test" >/etc/rsyncd.password 并设定权限 chmod 600 /etc/rsyncd.password

修改hosts文件,vi /etc/hosts,增加一条192.168.1.150 host01.argb.com,我测试时如果没有这个设置会报一下错误:

name lookup failed for 192.168.1.150: Name or service not known
connect from UNKNOWN (192.168.1.150)

应该是因为内网没有dns服务器的原因。

至此服务器端设置基本完成,启动rsync服务: rsync --daemon

注意:我看有些配置示例上有 ignore errors 这条,但是我实际验证时日志显示这句配置不合法:

 params.c:Parameter() - Ignoring badly formed line in configuration file: ignore errors

不知是不是版本问题。

3、进行client端设置

客户端设置很简单,只要配置一个密码文件即可,echo "test">/etc/rsyncd.password 

修改文件权限 chmod 600 /etc/rsyncd.password

配置完成

ok,连接测试 

rsync -vzrtopg --progress /home/data/test test@192.168.1.151::backup --password-file=/etc/rsyncd.password

done!

rsync可以跟 inotify实现数据的实时备份。

原文地址:https://www.cnblogs.com/argb/p/3442531.html