rsync異地備份

rsync異地備份
(http://rsync.samba.org)

主要有兩種方法
1使用ssh通道
指令格式為rsync option user@remoteserver:/dir /localdir
ex:將am.mine.nu的/home目錄透過ssh備份到本機/tmp/home
rsync -av -e ssh root@am.mine.nu:/home /tmp/home
2使用rsync server
以下說明主要以此為主

…………………………………………………………………………………..
…………………………………………………………………………………..
rsync server設定方式

1
設定/etc/rsyncd.conf,格式如下
[modulename]
option=value

option有以下:
use chroot = no #不使用chroot
max connections = 4 #最大連接數為4
log file = /var/log/rsyncd.log #紀錄檔位置
path = /tmp/back #備份過來的檔案要放置的目錄
auth users = rcopy #授權的帳號,與系統上的帳號無關,名稱可自訂,若無表匿名
secrets file = /etc/rsyncd.secrets #指定secrets file位置
comment = describe #註解
ignore errors #可以忽略一些無關的IO錯誤
read only = yes #只讀
list = no #不允許列文件
hosts allow = 192.168.0.1 localhost #允許使用的client
dont compress = yes #視需求決定是否壓縮
ex:
[copy1]
path = /tmp/back
auth users = rcopy
uid = root
gid = root
secrets file = /etc/rsyncd.secrets
read only = no

1.1
設定secrets file
檔案格式為authuser:authkey
ex:
rcopy:abcd

1.2
設定好此檔後將此檔的擁有者與群組設成root,權限為600
ex:
chown root.root /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

……………..
2
啟動rsync server
方法有以下兩種

方法a
使用xinet的rsync
1
設定xinet的rsync
# default: off
# description: The rsync server is a good addition to am 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
}
2
啟動
service xinetd restart

方法b
直接使用rsync做server
rsync –daemon –port=873 –config=/etc/rsyncd.conf
……………………………………………………………………………….
rsync client設定方式

linux client設定如下
指令為:rsync option source_path dest_path
option常用為-av,若要指定密碼檔則用–password-file
path若要指向server格式為authuser@rsyncserver::modulename
ex:用am.mine.nu的rsync server的模組copy1來備份本地端root的目錄,認證帳號為rcopy,密碼放在/root/rsyncdkey
rsync -av –delete –password-file=/root/rsyncdkey /root rcopy@am.mine.nu::copy1
ex:同上,但是從am.mine.nu的rsync server備份到本地端
rsync -av –delete –password-file=/root/rsyncdkey rcopy@am.mine.nu::copy1 /root
ps:/root/rsyncdkey內只需放密碼即可
ps:/root/rsyncdkey的權限需設定600
ps:可用crontab指定時間定期備份

xp clinet設定如下
需先安裝cwrsync client版,安裝成功後rsync.exe預設會在C:Program FilescwRsyncbin
指令和linux client差不多,但dir部份,格式為/cygdrive/<硬碟代號>/<目錄>
ex:
“C:Program FilescwRsyncbinrsync.exe” -av –delete –password-file=rsynckey.txt /cygdrive/e/test rcopy@amcopy.mine.nu::copy1
ps:rsynckey.txt需放在cwRsync目錄下,且以上指令需在cwRsync目錄下執行

……………………………………………………………………………….
……………………………………………………………………………….

rsync的option如下
-v :觀察模式,可以列出更多的資訊
–progress :可顯示進度
-q :安靜模式,輸出的資訊比較少

-a :等同於-rlptgoD
-r :遞迴複製!可以針對『目錄』來處理!很重要!
-l :複製連結檔的屬性,而非連結的目標原始檔案內容;
-p :複製時,連同屬性 (permission) 也保存不變!
-t :保存原始檔案的時間參數;
-g :保存原始檔案的擁有群組;
-o :保存原始檔案的擁有人;
-D :保存原始檔案的裝置屬性 (device)
-R :使用相對路徑訊息

-u :僅更新,不會覆蓋目標的新檔案;
-I :忽略更新時間mtime的屬性,檔案比對會較快;
-z :使用壓縮
-e :使用的通道協定,例如使用 ssh 通道,則 -e ssh

–delete 若client端的文件被刪除,server端的文件也一併刪除,保持一致
–password-file 指定密碼檔