命令列 Rsync 選項

您好,
我正在透過 ssh,使用我的新 NAS(TS-664,運行 QTS 5.2.6.3195)和 rsync,從一台舊 NAS(處於降級模式)恢復資料。
不幸的是,似乎 rsync 的所有選項都不可用。

有人可以告訴我 QTS 內建的 rsync 版本,以及提供相關文件的連結嗎?

謝謝,
Frédéric

輸入:
rsync -version
以及
rsync -help

這樣就能顯示已安裝的版本以及可用的選項。

1個讚

「目前」QTS/QuTS 似乎有不錯版本的 rsync。

你舊機器上的版本是什麼?
我通常使用 -aPv,但過去在 busybox 或 Windows 檔案系統上也遇過一些有趣的情況。
--recursive --times --partial --progress --verbose 幾乎在任何版本的 rsync 都有,能讓你遷移資料。

[weedy@TheVault ~]$ rsync --help
rsync 版本 3.0.7 協定版本 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, 及其他人。
網站:http://rsync.samba.org/
功能:
    64 位元檔案、64 位元 inums、64 位元時間戳、64 位元 long ints、
    無 socketpairs、硬連結、符號連結、IPv6、批次檔案、原地更新、
    附加、ACLs、xattrs、iconv、symtimes

rsync 不提供任何保證。這是免費軟體,你可以在特定條件下重新分發。
詳情請參閱 GNU 通用公共授權條款。

rsync 是一個檔案傳輸程式,能夠透過快速差異演算法有效地遠端更新。

用法:rsync [選項]... SRC [SRC]... DEST
  或   rsync [選項]... SRC [SRC]... [USER@]HOST:DEST
  或   rsync [選項]... SRC [SRC]... [USER@]HOST::DEST
  或   rsync [選項]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
  或   rsync [選項]... [USER@]HOST:SRC [DEST]
  或   rsync [選項]... [USER@]HOST::SRC [DEST]
  或   rsync [選項]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
「:」用法是透過遠端 shell 連線,「::」及「rsync://」用法則是連接到 rsync 守護程式,並要求 SRC 或 DEST 以模組名稱開頭。

選項
 -v, --verbose               增加詳細輸出
 -q, --quiet                 隱藏非錯誤訊息
     --no-motd               隱藏守護模式 MOTD(請參閱手冊注意事項)
 -c, --checksum              根據檢查碼而非修改時間與大小跳過
 -a, --archive               封存模式;等同於 -rlptgoD(不含 -H,-A,-X)
     --no-OPTION             關閉隱含選項(如 --no-D)
 -r, --recursive             遞迴進入目錄
 -R, --relative              使用相對路徑名稱
     --no-implied-dirs       使用 --relative 時不傳送隱含目錄
 -b, --backup                建立備份(參見 --suffix 與 --backup-dir)
     --backup-dir=DIR        備份至 DIR 為根的階層
     --suffix=SUFFIX         設定備份字尾(預設 ~,未指定 --backup-dir 時)
 -u, --update                跳過接收端較新的檔案
     --inplace               直接在目的地檔案上更新(詳見手冊)
     --append                將資料附加到較短的檔案
     --append-verify         類似 --append,但以舊資料進行檔案檢查碼
 -d, --dirs                  傳送目錄但不遞迴
 -l, --links                 複製符號連結為符號連結
 -L, --copy-links            將符號連結轉為目標檔案/目錄
     --copy-unsafe-links     只轉換「不安全」符號連結
     --safe-links            忽略指向來源樹外部的符號連結
 -k, --copy-dirlinks         將指向目錄的符號連結轉為目標目錄
 -K, --keep-dirlinks         接收端的符號連結目錄視為目錄
 -H, --hard-links            保留硬連結
 -p, --perms                 保留權限
 -E, --executability         保留檔案可執行屬性
     --chmod=CHMOD           影響檔案及/或目錄權限
 -A, --acls                  保留 ACLs(隱含 --perms)
 -X, --xattrs                保留延伸屬性
 -o, --owner                 保留擁有者(僅限超級使用者)
 -g, --group                 保留群組
     --devices               保留裝置檔案(僅限超級使用者)
     --specials              保留特殊檔案
 -D                          等同於 --devices --specials
 -t, --times                 保留修改時間
 -O, --omit-dir-times        目錄不套用 --times
     --super                 接收端嘗試超級使用者操作
     --fake-super            以 xattrs 儲存/恢復特權屬性
 -S, --sparse                有效處理稀疏檔案
 -n, --dry-run               試跑,不做任何更動
 -W, --whole-file            完整複製檔案(不使用 delta-xfer 演算法)
 -x, --one-file-system       不跨越檔案系統邊界
 -B, --block-size=SIZE       強制固定檢查碼區塊大小
 -e, --rsh=COMMAND           指定遠端 shell
     --rsync-path=PROGRAM    指定遠端執行的 rsync
     --existing              跳過接收端新建檔案
     --ignore-existing       跳過更新接收端已存在的檔案
     --remove-source-files   傳送端移除同步檔案(非目錄)
     --del                   等同於 --delete-during
     --delete                刪除目的地多餘檔案
     --delete-before         接收端在傳送前刪除,而非傳送期間
     --delete-during         接收端在傳送期間刪除(預設)
     --delete-delay          傳送期間找出刪除項目,傳送後再刪除
     --delete-after          接收端在傳送後刪除,而非傳送期間
     --delete-excluded       也刪除目的地被排除的檔案
     --ignore-errors         即使有 I/O 錯誤也刪除
     --force                 強制刪除即使目錄非空
     --max-delete=NUM        最多刪除 NUM 個檔案
     --max-size=SIZE         不傳送大於 SIZE 的檔案
     --min-size=SIZE         不傳送小於 SIZE 的檔案
     --partial               保留部分傳送的檔案
     --partial-dir=DIR       部分傳送的檔案存入 DIR
     --delay-updates         傳送結束後才更新所有檔案
 -m, --prune-empty-dirs      從檔案清單修剪空目錄鏈
     --numeric-ids           不以使用者/群組名稱對應 uid/gid
     --timeout=SECONDS       設定 I/O 逾時秒數
     --contimeout=SECONDS    設定守護程式連線逾時秒數
 -I, --ignore-times          不跳過大小和修改時間相符的檔案
     --size-only             跳過大小相符的檔案
     --modify-window=NUM     以較低精度比較修改時間
 -T, --temp-dir=DIR          在 DIR 建立暫存檔案
 -y, --fuzzy                 若無目的地檔案則尋找相似檔案
     --compare-dest=DIR      也比較 DIR 下的目的地檔案
     --copy-dest=DIR         ...並包含未變更檔案的複本
     --link-dest=DIR         未變更檔案以硬連結方式複製到 DIR
 -z, --compress              傳送時壓縮檔案資料
     --compress-level=NUM    明確設定壓縮等級
     --skip-compress=LIST    跳過壓縮 LIST 字尾的檔案
 -C, --cvs-exclude           以 CVS 方式自動忽略檔案
 -f, --filter=RULE           新增檔案過濾規則
 -F                          等同於 --filter='dir-merge /.rsync-filter'
                             重複:--filter='- .rsync-filter'
     --exclude=PATTERN       排除符合 PATTERN 的檔案
     --exclude-from=FILE     從 FILE 讀取排除模式
     --include=PATTERN       不排除符合 PATTERN 的檔案
     --include-from=FILE     從 FILE 讀取包含模式
     --files-from=FILE       從 FILE 讀取來源檔案名稱清單
 -0, --from0                 所有 *-from/filter 檔案以 0 分隔
 -s, --protect-args          不分割空格;僅萬用字元特殊符號
     --address=ADDRESS       對守護程式綁定外送 socket 位址
     --port=PORT             指定雙冒號替代 port 號
     --sockopts=OPTIONS      指定自訂 TCP 選項
     --blocking-io           遠端 shell 使用阻塞 I/O
     --stats                 顯示檔案傳送統計
 -8, --8-bit-output          輸出高位元字元不跳脫
 -h, --human-readable        以易讀格式輸出數字
     --progress              傳送時顯示進度
 -P                          等同於 --partial --progress
 -i, --itemize-changes       輸出所有更新的變更摘要
     --out-format=FORMAT     以指定格式輸出更新
     --log-file=FILE         將操作記錄到指定 FILE
     --log-file-format=FMT   以指定 FMT 記錄更新
     --password-file=FILE    從 FILE 讀取守護程式存取密碼
     --list-only             僅列出檔案不複製
     --bwlimit=KBPS          限制 I/O 頻寬;每秒 KB
     --write-batch=FILE      將批次更新寫入 FILE
     --only-write-batch=FILE 僅寫入批次,不更新目的地
     --read-batch=FILE       從 FILE 讀取批次更新
     --protocol=NUM          強制使用舊版協定
     --iconv=CONVERT_SPEC    要求檔名字元集轉換
     --qnap-mode=mode        0:一般, 1:QRAID1, 2:USB 複製 3:HD 複製 USB
     --check-dest                 檢查目的地路徑是否有效
     --password=WORD         QNAP 模式的密碼
     --sever-mode=mode       0:一般, 1:QNAP 守護模式
     --schedule=name         指定排程名稱
 -4, --ipv4                  優先使用 IPv4
 -6, --ipv6                  優先使用 IPv6
     --version               顯示版本號
(-h) --help                  顯示此說明(-h 可單獨使用)

使用「rsync --daemon --help」可查看守護模式指令選項。
請參閱 rsync(1) 與 rsyncd.conf(5) 手冊以獲得完整說明。
更新、錯誤回報及解答請見 http://rsync.samba.org/
1個讚

感謝您的迅速回覆。
確實,rsync -version 顯示我的是 3.0.7 … 來自 2009 年!
我很驚訝 Qnap 沒有提供更近期的版本 :-/

這個版本確實比最新的 3.4.1(2025 年)缺少一些功能。

謝謝…

我們用的是同一個版本。
而且它有 --archive,你還需要什麼才能一次性把你的資料傳過來?

我希望能有一個全域進度指示器(可以看到隧道盡頭),並顯示傳輸速度(方便和我測試過的其他傳輸技術做比較)。

除此之外,它就是能正常運作,沒什麼問題。

啊,對……我們沒有 --info=

你的新款 NAS 上有 pv 嗎?我有。

rsync -ahiPv --stats /path/to/source/ /path/to/destination/ | pv -lep

算是有點用啦,勉強可以。

看來我們沒有 pv… :-/

你有考慮過架設一台 Ubuntu 伺服器(Ubuntu server) 來滿足你的需求嗎?這或許是一個解決方案。
謝謝!

你是說,獨立的伺服器嗎?

順便問一下,你能告訴我們為什麼這些基本工具在 QNAP NAS 上不可用或沒有更新嗎?

我指的是 Ubuntu Linux Station。你可以在這裡找到更多詳細資訊:How to Use Ubuntu Linux Station | QNAP

我會另外和團隊確認你提到的問題!

1個讚

@frederic
經過我們工程師的確認,系統的 HBS 提供了另一個可執行檔,位於 /usr/bin/rsync.hbs。

請使用這個檔案,因為這是 HBS 用來提供外部 rsync 服務的版本。你目前使用的 /usr/bin/rsync 並非用於外部服務,只是為了向下相容而存在。

1個讚

非常感謝您的回饋!