Rsync ERROR: auth failed on module解决方法

今天在两台服务器同步备份在用户权限上纠结了很多,主要关于这个问题网上的配置方法不一,源自rsync版本不一致,这里简单总结下,方便需要的朋友
示意图:


Rsync 版本

[root@mail video]# rsync –version
rsync version 3.0.6 protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: rsync.samba.org
Capabilities:
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, no symtimes

rsync comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the GNU
General Public Licence for details.

服务器同步任务需求

服务器A与服务器B同步备份,这里只说明服务器A同步到服务器B,服务器B还原到服务器A。
考虑安全因素,使用普通用户进行同步。
使用cronjob,定时同步。

错误提示

错误发生在rsync 3.0.6版本,64位 CentOS5.5 系统。

首页这篇文章主要解决的错误是以下:


@ERROR: auth failed on module ***
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]


*** 是你/etc/rsyncd.conf 中配置的模块,我这里用


password file must not be other-accessible
continuing without password file
Password:
@ERROR: auth failed on module ***
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

Rsync 配置

#vi /etc/rsyncd.conf


uid = nobody
gid = nobody
max connections = 4
read only = true
#hosts allow = 202.207.177.180
hosts allow = *
transfer logging = true
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
slp refresh = 300
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock

[web]
path = /home/admin/public_html
comment = Mirror to Hk server
read only = true
list = false
auth users = lixiphp

[test]
path = /home/admin/domains/test
read only = false
auth users = lixiphp
secrets file = /etc/rsyncd.secrets

配置普通用户密码

[root@mail video]# vi /etc/rsyncd.secrets

格式为: username:password

rsync_user:rsyncofpass

设置权限为只读:

chmod 600 /etc/rsyncd.secrets

首次启动rsync

rsync –daemon –config=/etc/rsyncd.conf

如果提示

failed to create pid file /var/run/rsyncd.pid: File exists

使用指令

rm -rf /var/run/rsyncd.pid

重启已经在运行的rsync


[root@mail video]# ps -ef | grep rsync
root     27284     1  0 10:26 ?        00:00:00 rsync –daemon –config=/etc/rsyncd.conf
root     30516 29986  0 18:35 pts/3    00:00:00 grep rsync
[root@mail video]# kill -9 27284
[root@mail video]# rsync –daemon –config=/etc/rsyncd.conf

这样服务器A配置成功!

服务器B配置

一般错误都会发生在服务器B,注意这部分的讲解!
通过CentOS yum install rsync,安装rsync服务。
在rsync安装之后,运行以下指令同步备份:

rsync -vzrtopg –progress –delete –password-file=/home/admin/admin_backups/password.rsync rsync://lixiphp@203.171.237.245/test /home/admin/admin_backups/test



地址rsync://lixiphp@203.171.237.245/test,lixiphp为服务器A用户,203.171.237.245服务器A IP地址或者域名 test为服务器A配置模块

密码存放在/home/admin/admin_backups/password.rsync,这里存放位置,可自由安排。

password.rsync内容格式为: password

rsyncofpass


设置权限为只读:

chmod 600 /home/admin/admin_backups/password.rsync


解决错误

用户密码错误


@ERROR: auth failed on module test
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]



检查服务器A存储密码文件和服务器B密码文件。

服务器A密码文件 /etc/rsyncd.secrets 格式为: username:password
服务器B密码文件 password.rsync 格式为:password
文件权限错误


password file must not be other-accessible
continuing without password file
Password:
@ERROR: auth failed on module ***
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]


检查服务器A存储密码文件和服务器B密码文件。

服务器A密码文件 /etc/rsyncd.secrets 权限为600: chmod 600 /etc/rsyncd.secrets
服务器B密码文件 password.rsync 权限为600:chmod 600 password.rsync

定时任务

[root@hk admin_backups]# vi backup.sh



内容如下:


#/bin/sh
rsync -vzrtopg –progress –delete –password-file=/home/admin/admin_backups/password.rsync rsync://lixiphp@203.171.237.245/test /home/admin/admin_backups/test


添加定时任务:

[root@hk admin_backups]# crontab –e


添加以下内容:

*/1 * * * * /home/admin/admin_backups/backup.sh > /dev/null 2>&1


每个一分钟从服务器A同步到服务器B!

服务器B向下备份到服务器A

rsync -vzrtopg –progress –delete –password-file=/home/admin/admin_backups/password.rsync /home/admin/admin_backups/test rsync://lixiphp@203.171.237.245/test


请确保服务器A同步用户lixiphp,对模块test所在目录有读、写、执行的权限。
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

本地wamp下调试url重写,加入htaccess文件后提示:500 Internal Server Error ...,而删除这个文件网站又可以正常访问。 百度了一下,都讲了一大通废话,其实就是没有开启url重写的功能。开启一下就可以。 WAMP下htaccess出错的解决方法: 1. 打开wamp安装目
configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/ 基本上确定是丢失了什么包所致,上网搜索得到需要事先安装的依赖包。 # RetHat CentOS or Fedora 使用下面安装命令 yum install curl curl-devel # Debi
网站采用了RsyncServer进行同步,但同步的时候经常无法连接远程RsyncServer服务器端,登陆后发现原来是RsyncServer服务无法启动了,其实解决方法很简单。
rsync是个真正的镜像工具,它能相应地删除本地文件万一服务器上的文件被删除,这一点比wget好,在镜像目录的同时也能排除某些目录及文件。速度非常快
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。
我的服务器是用apache搭建的,里面的access.log和error.log这两个文件要经常上去看,和清理,如果时间忙,忘记看和清理了,过不了多久,这两个文件就膨胀的非常的大,打都打不开了。