今天在兩臺(tái)服務(wù)器同步備份在用戶權(quán)限上糾結(jié)了很多,主要關(guān)于這個(gè)問(wèn)題網(wǎng)上的配置方法不一,源自rsync版本不一致。

rsync同步備份服務(wù)器配置

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)限。