首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >rsync同步两台服务器

rsync同步两台服务器

作者头像
星哥玩云
发布2022-07-03 10:51:33
发布2022-07-03 10:51:33
2.6K0
举报
文章被收录于专栏:开源部署开源部署

需求:两台服务器(A、B),在服务器A上存放着大量的图片,需要在每天夜里三点同步到服务器B,源目录和目的目录都是/image

启用程序:rsync

服务器A上的配置:

1、/etc/rsyncd.conf

uid = nobody

gid = nobody

use chroot = no

max connectionts = 6

read only = yes

hosts allow = 192.168.95.0/24

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

[image]

comment = image

path = /image/

ignore errors

list = no

auth users = root

secrets file = /etc/rsyncd.passwd

2、/etc/rsyncd.passwd

root:test

完成上面的配置后运行

# rsync --daemon

如果提示没有找到rsyncd.passwd文件则说明这个文件没有在默认的/etc/路径下或者没有创建,只要把这个文件移动过去就可以了

服务器B上的配置:

/etc/rsync.passwd

dongpi2014

这里要注意,服务器A和服务器B上对于密码文件的写法是不一样的,服务器A的密码文件需要记录用户名,而服务器B的密码文件不需要记录用户名。

之后执行命令

rsync -arv  --password-file=/etc/rsyncd.passwd  rsync://root@192.168.95.11/test /image/

这样就开始同步了

注意

如果有以下的报错:

@ERROR: Unknown module 'xxx'

rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

这个报错表明密码文件的权限有问题,正常的密码文件权限应为600

The --password-file option may only be used when accessing an rsync daemon.

这个报错表明服务器端没有执行rsync --daemon命令(没有启动服务)

@ERROR: auth failed on module xxxxx

这个报错表明服务器A和服务器B里面的用户名密码有问题,有可能是服务器B里面用户名密码格式问题。

除了以上方法外,还可以用expect的自动交互脚本完成

#!/usr/bin/expect

set timeout 3000

spawn rsync -avcz --delete root@192.168.95.11:/image/  /image

expect "password:"

send "dongpi2014\r"

expect "]*"

exit

interact

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档