rsync daemon模式配置

牛平發表於2016-03-17
軟體:
CentOS: rsync daemon模式
Windows: cwRsync client端(Free)
方法:
    Linux設為伺服器端,同時windows作為client端,同步方法為,資料發生改動的一方想讓另外一方進行同步。三種情況,windows 向linux同步,linux向windows同步,linux和windows互相同步。
步驟:
1.在Linux端配置daemon模式的rsync服務端並掛載相應的共享目錄。
2.在windows客戶端執行cwRsync軟體,並設定定時任務,和伺服器端進行同步。


配置步驟:

伺服器端:
1. 建立rsync配置檔案目錄
# mkdir /etc/rsyncd
2. 建立配置檔案
# touch rsyncd.conf
3. rsync.conf內容:
#全域性設定
[global section]
1, 規定全域性設定,比如socket檔案,pass檔案等全域性性的配置
[rsync_section]
2,規定同步的目錄的細節,比如許可權,路徑等。


配置檔案樣例
#Global settings
port = 873
address = 192.168.0.x
#the service bind to the ip address
hosts allow = *
#the ip address that can access the service.
motd file = /etc/rsyncd/motd.txt
#socket options = /var/run/rsyncd.socket
#socket opt is for geek 
pid file = /var/log/rsyncd.pid
log file = /var/log/rsyncd.log
#syslog facility = syslog


####Module config######Moudle defines the detail info of the share part.
[backup]
#Setting the file owner and group transfered.
uid = nobody
gid = nobody

#read only can write, wite only can read.
read only = false
#writable
write only = false
#download enable

#List the module
list = true
#Only auth user can access, not need local system user
auth users = rsync
secrets file = /etc/rsyncd.secrets
#password file like : usename:passwd

strict modes = true
#this option is true makes the password file should be read and write only by its owner
ignore errors = true
ignore nonreadable = false
#log in the transfer progress
transfer logging = true
log format = %a-%b-%f-%m-%o-%P-%t-%u

timeout = 600
dont compress = true
path = /backup
use chroot = true
#if use chroot = true, you should run rsync under root privleges
#immentounous connection can not more than 5
max connections = 5
#the lock file functioning the max connections.
lock file = /var/run/rsyslogd.lock


#啟動程式
/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
#關閉程式
ps -ef |grep rsync
kill -15 pid
#加入到service
新建檔案
#vim /etc/init.d/rsyncd
#!/bin/bash
# chkconfig: 345 90 90
# description: running rsync in daemon mode
#author: zzp
#The 2 above config is essential if you want to add it to the chkconfig

rsync_prog="/usr/bin/rsync"
config_file="/etc/rsyncd/rsyncd.conf"
pid_file="/var/run/rsyncd.pid"
cat_prog="/bin/cat"
xargs_prog="/usr/bin/xargs"
RETVAL=0

start() {
    if [ -f $pid_file ];then
        echo "Service is running..."
    else
        echo "Starting rsync daemon..."
        $rsync_prog --daemon --config=$config_file
        RETVAL=$?
    fi
#   [ -x $sync_prog ] || return 5
#   [ -f $config_file ] || return 5
#   [ -f $pid_file ] || return 5
    return $RETVAL
}
stop() {
    echo "Stopping rsync daemon..."
    if [ -f $pid_file ];then
        $cat_prog $pid_file | $xargs_prog kill -15 && rm -f $pid_file
        RETVAL=$?
    else
        echo "Serivce already down..."
    return $RETVAL
    fi
}
restart() {
    echo "Restarting rsync daemon..."
    stop
    sleep 4
    start
    RETVAL=$?
    return $RETVAL 
}
case $1 in
    start)
    start
    RETVAL=$?
    ;;
    stop)
    stop
    RETVAL=$?
    ;;
    restart)
    restart
    RETVAL=$?
    ;;
    *)
    echo "Usage: service rsyncd { start|stop|restart}"
    ;;
esac
exit $RETVAL


#chmod u+x /etc/init.d/rsyncd



#開機自啟動
echo "/usr/bin/rsync –daemon –config=/etc/rsyncd/rsyncd.conf" >> /etc/rc.d/rc.local

#chkconfig –add rsyncd

客戶端配置
客戶端有兩種,一種為Linux,一種為windows。Linux採用自帶rsync,Windows採用cwRsync(client)端。
下面分別說明

1. Linux
方法:寫一個執行指令碼,在crontab中每隔一段時間進行執行,
1. 手動執行
# rsync -av --progress rsync@192.168.0.x::backup ./test/


2. 含有密碼檔案的rsync
# rsync -av --progress --password-file=test.pass rsync@192.168.0.x::backup ./test/
#echo ‘xxxxxx’>/etc/syncd/rsyncd.pass && chmod 600 /etc/rsyncd/rsyncd.pass

3. 執行指令碼的rsync

#!/bin/bash

rsync_prog="/usr/bin/rsync"
$rsync_prog -a --password-file=/root/test.pass rsync@192.168.0.x::backup /root/test/ 2>&1>/dev/null

#echo ‘xxxxxx’>/root/test.pass


Windows下rsync客戶端,
下載cwRsync客戶端(Free)
然後執行定時任務

配置方法:
安裝cwRsync並配置環境:
1. 將cwRsync的bin目錄設定到path環境變數中。
2. 配置密碼檔案,並寫入密碼,設定此密碼檔案的許可權。
檔案的擁有者具有讀寫許可權。


建立執行指令碼:
rsync -av --progress --password-file=/cygdrive/c/passfile rsync@192.168.0.x::backup /cygdrive/c/backup

設定定時任務:
控制皮膚->管理工具->任務計劃程式

新建任務

建立觸發器
建立動作

總結:
    此種解決方案主要處理Windows伺服器備份檔案到Linux,或者Linux備份檔案到Windows,最適合的情況是第一種,即Linux作為備份伺服器,並且rsync作為程式一直守護。如果以xinetd的方式的話,則可實現rsync按照需求進行啟動,從而可以節省運算資源。

    這種方案也適合於Linux生產伺服器每天晚上負載低的情況下,進行資料同步,即,對某個資料產生目錄,或者生產日誌進行同步,如果資料量一天產生的不大,且內網頻寬應該沒有問題,是進行每日同步的。如果對於業務比較重要的,可以進行每隔多少時間進行同步一次。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29757574/viewspace-2059009/,如需轉載,請註明出處,否則將追究法律責任。

相關文章