環境:
Rsync Server 192.168.0.160
Rsync Client 192.168.0.159
(一)配置Rsync Server
1.安裝rsync2.6.5
./configure --prefix=/opt/rsync2.6.5
make
make install
2.配置以服務器模式啟動
#vi /etc/x.netd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it # allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon --config=/opt/rsync2.6.5/etc/rsyncd.conf
log_on_failure += USERID
}
3.建立服務器端目錄結構
etc man var
4.配置服務器端配置文件
#vi /opt/rsync2.6.5/etc/rsyncd.conf
log file = /opt/rsync2.6.5/var/rsyncd.log
pid file = /opt/rsync2.6.5/var/rsyncd.pid
lock file = /opt/rsync2.6.5/var/rsyncd.lock
secrets file = /opt/rsync2.6.5/etc/rsyncd.secrets
motd file = /opt/rsync2.6.5/etc/rsyncd.motd
read only = yes
hosts allow = 192.168.0.159
hosts deny = 192.168.100.0/24
list = yes
uid = root
gid = root
use chroot = no
max connections = 4
syslog facility = local5
[mailstore]
path = /mss
comment = whole mailstore area
auth users = mailstore
[maildb]
path = /db
comment = db data
auth users = maildb
[maildatabase]
path = /var/lib/mysql/userdb
comment = mysql databases
auth users = maildatabase
# vi /opt/rsync2.6.5/etc/rsyncd.secrets
mailstore:123456
maildb:maildb
maildatabase:maildatabase
5.設置服務器端配置文件的權限
# chmod 600 rsyncd.conf rsyncd.secrets
-rw------- 1 root root 795 Aug 23 06:21 rsyncd.conf
-rw------- 1 root root 37 Aug 23 06:23 rsyncd.secrets
(注意:這個安全設置很重要,如果不這樣做客戶機連接服務器時會提示:
@ERROR: auth failed on module smb_recover_files
rsync: connection unexpectedly closed (102 bytes read so far)
rsync error: error in rsync protocol data stream (code 12) at io.c(165)
服務器端日志將出現錯誤提示:
2005/08/23 06:32:01 [8388] secrets file must not be other-aclearcase/" target="_blank" >ccessible (see strict modes option)
2005/08/23 06:32:01 [8388] continuing without secrets file
2005/08/23 06:32:01 [8388] auth failed on module smb_recover_files from documentserver (192.168.0.159)
)
(二)配置Rsync Client
1.安裝Rsync2。6。5
./configure --prefix=/opt/rsync2.6.5
make
make install
2.編寫自動連接服務器端腳本,該腳本可以同時連接多個Rsync Server服務器,並可以從一個Rsync Server同時連接多個備份點。
# vi rsync_client.sh
#!/bin/sh
# shenxiaoran/foundir.com 2005.7.20
# This script gets files from server to local directory to backup.
# It's a month rotating incremental backup.
#
[ -f /etc/profile ] && . /etc/profile
PROG=/usr/bin/rsync
MAILSTORE=/data/mss
MAILDB=/data/db
MAILDATABASE=/data/userdb
DATE=`date +%d`
BACK_POINT1=mailstore
BACK_POINT2=maildb
BACK_POINT3=maildatabase
BACK_OLD_DIR1=$MAILSTORE/mss_old/$DATE
BACK_OLD_DIR2=$MAILDB/db_old/$DATE
BACK_OLD_DIR3=$MAILDATABASE/userdb_old/$DATE
LOGFILE=./rsync.log
[ -d $BACK_OLD_DIR ] && rm -fr $BACK_OLD_DIR
OPTS1="--force --ignore-errors -pogt --delete --backup --backup-dir=$BACK_OLD_DIR1 -az"
OPTS2="--force --ignore-errors -pogt --delete --backup --backup-dir=$BACK_OLD_DIR2 -az"
OPTS3="--force --ignore-errors -pogt --delete --backup --backup-dir=$BACK_OLD_DIR3 -az"
echo "##############################################" >>$LOGFILE 2>&1
echo "Begin Time: `date`" >>$LOGFILE 2>&1
SERVER1="[email protected]"
export RSYNC_PASSWORD=123456
$PROG $OPTS1 $SERVER1::$BACK_POINT1 $MAILSTORE >>$LOGFILE 2>&1
SERVER2="[email protected]"
export RSYNC_PASSWORD=maildb
$PROG $OPTS2 $SERVER2::$BACK_POINT2 $MAILDB >>$LOGFILE 2>&1
SERVER3="[email protected]"
export RSYNC_PASSWORD=maildatabase
$PROG $OPTS3 $SERVER3::$BACK_POINT3 $MAILDATABASE >>$LOGFILE 2>&1
echo "End Time: `date`" >>$LOGFILE 2>&1
echo "########################################" >>$LOGFILE 2>&1