Rsync 差不多可以代替 cp 和 scp,此外,斷點(diǎn)續(xù)傳是重啟有效的。尾部的斜杠也有著不同的意思,請(qǐng)閱讀 man 頁(yè)面......這里有一些例子:
拷貝目錄中所有內(nèi)容:
# rsync -a /home/colin/ /backup/colin/
# rsync -a /var/ /var_bak/
# rsync -aR --delete-during /home/user/ /backup/ # 使用相對(duì)路徑(看下面)
同之前一樣,但使用了壓縮和網(wǎng)絡(luò)。Rsync 使用 SSH 進(jìn)行傳輸,并且使用 SSH 密鑰,如果設(shè)置的話。和 SCP 一樣使用 ":"。一個(gè)典型的拷貝:
# rsync -axSRzv /home/user/ user@server:/backup/user/
排除在 /home/user/ 中任何 tmp 目錄,并且保持相對(duì)目錄層次結(jié)構(gòu),遠(yuǎn)程目錄的結(jié)構(gòu)就是 /backup/home/user/。典型的用于備份的命令。
# rsync -azR --exclude /tmp/ /home/user/ user@server:/backup/
SSH 連接使用端口 20022:
# rsync -az -e 'ssh -p 20022' /home/colin/ user@server:/backup/colin/
使用 rsync 守護(hù)進(jìn)程(使用"::")是很快的,但沒(méi)有透過(guò) SSH 加密。 位置 /backup 定義在了配置文件 /etc/rsyncd.conf 中。變量 RSYNC_PASSWORD 可以設(shè)置用來(lái)免除手動(dòng)輸入密碼。
# rsync -axSRz /home/ ruser@hostname::rmodule/backup/
# rsync -axSRz ruser@hostname::rmodule/backup/ /home/ # 回拷貝
一些重要選項(xiàng):
-a, --archive
歸檔模式,等于 -rlptgoD (非 -H)
-r, --recursive
對(duì)子目錄以遞歸模式處理
-R, --relative
使用相對(duì)路徑名
-H, --hard-links
保留硬鏈結(jié)
-S, --sparse
對(duì)稀疏文件進(jìn)行特殊處理以節(jié)省DST的空間
-x, --one-file-system
不跨越文件系統(tǒng)邊界
--exclude=PATTERN
指定排除不需要傳輸?shù)奈募J?/p>
--delete-during
傳輸期間刪除
--delete-after
傳輸結(jié)束以后再刪除
可以通過(guò) cygwin 或 獨(dú)立打包的 cwrsync 來(lái)在 Windows 上運(yùn)行 rsync。這對(duì)于自動(dòng)備份來(lái)說(shuō)非常方便。只裝其中一個(gè)(不是兩個(gè)),然后添加路徑到 Windows 系統(tǒng)變量中:# 控制面板 -> 系統(tǒng) -> 高級(jí)標(biāo)簽,環(huán)境變量按鈕。編輯 "Path" 添加 rsync 的安裝路徑,比如:C:\Program Files\cwRsync\bin 或者 C:\cygwin\bin。這可以讓 rsync
和 ssh
可用于 Windows 命令窗口中。
Rsync 是自動(dòng)使用 SSH 隧道的,因此在服務(wù)端使用 SSH 認(rèn)證。自動(dòng)備份可免受用戶的影響,rsync 命令對(duì)于使用 SSH 公鑰認(rèn)證可以不需要密碼。
下面所有的命令都可在 windows 控制臺(tái)中執(zhí)行。在控制臺(tái)(開(kāi)始 -> 運(yùn)行 -> cmd)中像在 SSH 中描述的那樣創(chuàng)建和上傳密鑰,根據(jù)你的情況改變 "user" 和 "server"。如果文件 authorized_keys2 不存在,拷貝 id_dsa.pub 成 authorized_keys2 并上傳它。
# ssh-keygen -t dsa -N '' # 創(chuàng)建密鑰對(duì)
# rsync user@server:.ssh/authorized_keys2 . # 從服務(wù)器拷貝本地文件
# cat id_dsa.pub >> authorized_keys2 # 或者使用編輯器添加這個(gè)公鑰
# rsync authorized_keys2 user@server:.ssh/ # 拷貝文件回服務(wù)器
# del authorized_keys2 # 刪除本地拷貝
現(xiàn)在測(cè)試一下(在同一行里面):
rsync -rv "/cygdrive/c/Documents and Settings/%USERNAME%/My Documents/" \
'user@server:My\ Documents/'
使用批處理文件自動(dòng)備份并添加到任務(wù)計(jì)劃(程序 -> 附件 -> 系統(tǒng)工具 -> 任務(wù)計(jì)劃)。舉個(gè)例子,創(chuàng)建批處理文件 backup.bat 取代 user@server。
@ECHO OFF
REM rsync the directory My Documents
SETLOCAL
SET CWRSYNCHOME=C:\PROGRAM FILES\CWRSYNC
SET CYGWIN=nontsec
SET CWOLDPATH=%PATH%
REM uncomment the next line when using cygwin
SET PATH=%CWRSYNCHOME%\BIN;%PATH%
echo Press Control-C to abort
rsync -av "/cygdrive/c/Documents and Settings/%USERNAME%/My Documents/" \
'user@server:My\ Documents/'
pause
更多建議: