linux下配置rsync文件同步服务
服务端配置:
前提:安装了xinetd和rsync
1. 修改/etc/xinetd.d/rsync文件
将下列内容中disable=yes改为no
service rsync
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
2. 配置rsync自动启动
执行命令:chkconfig rsync on
执行命令chkconfig rsync --list后可以看到如下内容:
rsync on
3. 配置rsyncd.conf,该文件一般来说是不存在的,需要自己创建,内容示例如下:
uid = root
gid = root
use chroot = no
max connections = 4 (最大连接数,可以适当调整。)
strict modes = yes
port = 873 (默认端口,最好不要修改。)
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[test] (这个是模块名称,可以配置多个模块分别对应服务端不同的目录。)
path = /test (这个是该模块对应的服务端路径)
comment = This is test
auth users = rsync (客户端连接上来进行同步所使用的用户名,可以任意取名,但是后面的配置要对应。)
uid = root
gid = root
secrets file = /home/rsync.ps (口令文件,里面保存同步所使用的用户名和口令)
read only = no
list = no
4 确保etc/services中rsync端口号正确
一般为如下内容:
rsync 873/tcp # rsync
rsync 873/udp # rsync
5 配置rsync密码(在上边的配置文件中已经写好路径)/home/rsync.ps(创建这个文件,名字随便写,只要和上边配置文件里的一致即可),格式为(用户名:密码),一行一个用户。
例如:
rsync:rsync
6 配置rsync密码文件权限
chown root.root rsync.ps
chmod 400 rsync.ps
7 启动配置
service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
8 检查rsync是否启动
执行命令:lsof -i :873
正常情况应该显示如下内容:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
xinetd 4396 root 5u IPv4 633387 TCP *:rsync (LISTEN)
客户端配置:
1. 设定口令文件/home/rsync.ps ,这个文件随便起名,放在任意目录都可以,和服务端的配置没关系,但是内容只有一个密码,并且是要和服务端一致。
根据上面服务端的配置,这里的内容应该是:
rsync
然后修改文件权限:
chown root.root rsync.ps
chmod 600 rsync.ps
2. 将rsync指令放入计划任务(crond),假设服务端ip为192.168.1.100
先测试是否可以使用
从服务端取数据: rsync -avz --progress --delete --password-file=/opt/rsync.ps rsync@192.168.1.100::test /opt/web/public/
向服务端发数据: rsync -avz --progress --delete --password-file=/opt/rsync.ps /opt/web/public/ rsync@192.168.1.100::test
修改/etc/crontab文件,增加类似如下内容(每分钟执行一次,从服务端取数据):
* * * * * rsync -avz --progress --delete