rsync同步兩臺服務器

需求:兩臺服務器(A、B),在服務器A上存放着大量的圖片,須要在天天夜裏三點同步到服務器B,源目錄和目的目錄都是/p_w_picpath服務器

啓用程序:rsyncide

服務器A上的配置ui

一、/etc/rsyncd.confspa

uid = nobodycode

gid = nobodyserver

use chroot = no圖片

max connectionts = 6同步

read only = yesit

hosts allow = 192.168.95.0/24io

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/log/rsyncd.log

[p_w_picpath]

comment = p_w_picpath

path = /p_w_picpath/

ignore errors

list = no

auth users = root

secrets file = /etc/rsyncd.passwd

二、/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 /p_w_picpath/

這樣就開始同步了


注意:

若是有如下的報錯:

@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:/p_w_picpath/  /p_w_picpath

expect "password:"

send "dongpi2014\r"

expect "]*"


exit

interact

相關文章
相關標籤/搜索