今天在兩臺(tái)服務(wù)器同步備份在用戶權(quán)限上糾結(jié)了很多,主要關(guān)于這個(gè)問(wèn)題網(wǎng)上的配置方法不一,源自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.
服務(wù)器同步任務(wù)需求
- 服務(wù)器A與服務(wù)器B同步備份,這里只說(shuō)明服務(wù)器A同步到服務(wù)器B,服務(wù)器B還原到服務(wù)器A。
- 考慮安全因素,使用普通用戶進(jìn)行同步。
- 使用cronjob,定時(shí)同步。
錯(cuò)誤提示
錯(cuò)誤發(fā)生在rsync 3.0.6版本,64位 CentOS5.5 系統(tǒng)。
首頁(yè)這篇文章主要解決的錯(cuò)誤是以下:
@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
設(shè)置權(quán)限為只讀:
chmod 600 /etc/rsyncd.secrets
首次啟動(dòng)rsync
rsync –daemon –config=/etc/rsyncd.conf
如果提示
failed to create pid file /var/run/rsyncd.pid: File exists
使用指令
rm -rf /var/run/rsyncd.pid
重啟已經(jīng)在運(yùn)行的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
這樣服務(wù)器A配置成功!
服務(wù)器B配置
一般錯(cuò)誤都會(huì)發(fā)生在服務(wù)器B,注意這部分的講解!
通過(guò)CentOS yum install rsync,安裝rsync服務(wù)。
在rsync安裝之后,運(yùn)行以下指令同步備份:
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為服務(wù)器A用戶,203.171.237.245服務(wù)器A IP地址或者域名 test為服務(wù)器A配置模塊
密碼存放在/home/admin/admin_backups/password.rsync,這里存放位置,可自由安排。
password.rsync內(nèi)容格式為: password
rsyncofpass
設(shè)置權(quán)限為只讀:
chmod 600 /home/admin/admin_backups/password.rsync
解決錯(cuò)誤
用戶密碼錯(cuò)誤
@ERROR: auth failed on module test
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]
檢查服務(wù)器A存儲(chǔ)密碼文件和服務(wù)器B密碼文件。
- 服務(wù)器A密碼文件 /etc/rsyncd.secrets 格式為: username:password
- 服務(wù)器B密碼文件 password.rsync 格式為:password
文件權(quán)限錯(cuò)誤
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]
檢查服務(wù)器A存儲(chǔ)密碼文件和服務(wù)器B密碼文件。
- 服務(wù)器A密碼文件 /etc/rsyncd.secrets 權(quán)限為600: chmod 600 /etc/rsyncd.secrets
- 服務(wù)器B密碼文件 password.rsync 權(quán)限為600:chmod 600 password.rsync
定時(shí)任務(wù)
[root@hk admin_backups]# vi backup.sh
內(nèi)容如下:
#/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
添加定時(shí)任務(wù):
[root@hk admin_backups]# crontab –e
添加以下內(nèi)容:
*/1 * * * * /home/admin/admin_backups/backup.sh > /dev/null 2>&1
每個(gè)一分鐘從服務(wù)器A同步到服務(wù)器B!
服務(wù)器B向下備份到服務(wù)器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
請(qǐng)確保服務(wù)器A同步用戶lixiphp,對(duì)模塊test所在目錄有讀、寫(xiě)、執(zhí)行的權(quán)限。