2014-08-29

rsync 指令

rsync 為單向備份的工具, 其指令從網路搜集較常用的如下:

rsync語法:

rsync -選項 /來源目錄 /目的路徑/


rsync [-avrlptgoD] [-e ssh] [user@host:/dir] [/local/path]
選項與參數:
-v : 輸出訊息以供除錯
-q : 安靜模式,僅顯示錯誤訊息;
-r : 遞迴複製,處理時包含子目錄

-R, --no-relative : 不使用相對路徑.
    如果你是用 -av 選項
     rsync -av /foo/bar/baz.c remote:/tmp/
     這會產生一個名叫 baz.c 的檔案在目的端的 /tmp/ 機器
    如果你是用 -avR 選項
     rsync -avR /foo/bar/baz.c remote:/tmp/
   這會在目的端機器的 /tmp/ 下依來源端的樹狀路徑產生一個檔案 foo/bar/baz.c, 完整路徑即 /tmp/foo/bar/baz.c
-b, –backup : 產生備份,也就是對於目的已經存在有同樣的文件名時,將老的文件重新命名為 ~filename。可以使用 –suffix 選項來指定不同的備份文件前綴。
-u : 僅更新 (update),若目標檔案較新,則保留新檔案不會覆蓋;
-l : 複製連結檔的屬性,而非連結的目標原始檔案內容;
-p : 保留檔案權限
-P : 大 P, 等同於 –partial –progress 顯示備份過程,只是為了把參數簡單化
-g : 保存原始檔案的擁有群組;
-o : 保存原始檔案的擁有人;
-D : 保存原始檔案的裝置屬性 (device)
-t : 保留檔案時間資訊
-I : 忽略更新時間 (mtime) 的屬性,檔案比對上會比較快速;rsync為了加快速度會忽略同樣檔案大小且同樣存取時間點的檔案.
-z : 壓縮模式,當資料在傳送到目的端進行檔案壓縮
-e : 使用的通道協定,例如使用 ssh 通道,則 -e ssh
-a : 為檔案模式,主要是將檔案的權限與時間保留,等於-rlptgoD這幾個參數,但是不包含-H-A-X 就是不含檔案的Hard Link與ACLs與xattrs屬性
-z : 壓縮檔案傳送
--delete : 當傳送端沒有的檔案而目的地端有的話,將目的地的檔案刪除
--ignore-errors : 忽略錯誤進行--delete刪除
--progress : 傳送時會顯示%進度
--size-only  : rsync 只檢查檔案大小是否改變,不管時間存取點是否改變.通常用在mirror,且對方時間不太正確時.
-c, --checksum : 在傳送之前透過128bit的md4檢查碼來檢查所有要傳送的檔案.(會拖慢速度.)
--config=FILE : 定義所要讀取的設定檔rsyncd.conf位置(daemon限定)預設值為 /usr/local/etc/rsyncd.conf
--port=PORT : 定義rsyncd(daemon)要執行的port(預設為tcp 873)
--password-file=FILE : 從檔案讀取與遠端rsync伺服器連結的密碼
-S, –sparse 對稀疏檔案進行特殊處理以節省目的端的空間
-n, –dry-run 不實際執行傳送,只顯示將會有的傳輸動作
--exclude=PATTER 符合PATTERN(規則表示式)樣式的檔案不進行傳送
--exclude-from=FILE 和--exclude參數相同,不過是把不進行傳送的檔案事先寫入某一檔案. 執行時,透過此參數讓rsync讀取. (; #開頭的行列或空白行會被rsync忽略)
--delete-excluded 除了把傳送端已經不存在,而目的端存在的檔案刪除之外,也刪除 --exclude 參數所包含的檔案.
--existing 只比對更新目的端已經存在的檔案
--ignore-existing 忽略目的端已經存在的檔案(也就是不更新)

沒有留言:

張貼留言