985
人物
使用rsync同步windows與Linux文件
有時候需要在windows和Linux之間同步數據,或者遠程備份,可以使用rsync。在標準的RedHat Linux發行版本中,一般都帶有rsync,而在windows上需要下載和安裝cwrsync。具體配置如下。
服務器配置
假設服務器設置在Linux上,使用係統自帶的rsync
a ) 首先需要編輯一個配置文件/etc/rsyncd.conf,比如:
log file = /var/log/rsyncd.log
transfer logging=yes
use chroot = no
max connections = 4
[test]
path=/tmp/ruser/test
comment=My laptop
ignore errors = yes
#strict modes = no
read only = no
list = no
auth users = ruser
secrets file = /etc/ruser.pas
hosts allow=*
hosts deny=*
[web]
path=/var/www/html
comment =my home page
前4行是全局設置。後麵有兩個模塊test和web。每個模塊下有自己的個性配置,比如路徑(path)、注釋(comment)、訪問權限設置等。auth users設置可以訪問的用戶列表,這裏為ruser。如果不指定,就為匿名,即不需要密碼也可以同步。secret file指定密碼文件,格式:帳號:密碼 (每行一組,帳號和密碼用:號分開)。這裏指定為/etc/ruser.pas,內容為:
ruser:123456
hosts allow和hosts deny指定允許或拒絕的機器名。
b) 配置後,就要啟動rsync服務器,有兩種方式:單獨啟動或者使用xinetd服務。
單獨啟動
rsync –daemon –config=/etc/rsyncd.conf
使用xinetd服務,編輯/etc/xinetd.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
log_on_failure += USERID
}
客戶端配置
假設到d:\Program Files\cwRsync,首先編輯一個密碼文件,比如ruser.pas,這裏要注意兩個事情。a)與服務器上的密碼文件格式不一樣,直接為密碼,沒有用戶名;b)要用bin目錄下的chmod命令改變其訪問權限,否則出現錯誤:”password file must not be other-accessible“。使用方法是chmod 600 ruser.pas。
然後可以使用一個rsync命令就可以了,為了方便可以寫如下批處理腳本:
@ECHO OFF
cd d:\Program Files\cwRsync\bin
rsync.exe –password-file=ruser.pas -avz /cygdrive/e/tmp/SimpleCloudAPI-0.2/ ruser@cdev01.ihep.ac.cn::test
cd ..
注意,在第三行中,test前麵是兩個冒號,表示test是一個模塊名,如果僅有一個冒號,就是具體的路徑。對於模塊名,服務器會到/etc/rsyncd.conf中查找路徑,本文中就是/tmp/ruser/test。
各種功能腳本
使用rsync可以實現多種功能,比如遠程增量備份、網站鏡像等,隻要寫好客戶端腳本都可以輕鬆實現。
最後更新:2017-01-04 22:34:37