您好,
我正在透過 ssh,使用我的新 NAS(TS-664,運行 QTS 5.2.6.3195)和 rsync,從一台舊 NAS(處於降級模式)恢復資料。
不幸的是,似乎 rsync 的所有選項都不可用。
有人可以告訴我 QTS 內建的 rsync 版本,以及提供相關文件的連結嗎?
謝謝,
Frédéric
您好,
我正在透過 ssh,使用我的新 NAS(TS-664,運行 QTS 5.2.6.3195)和 rsync,從一台舊 NAS(處於降級模式)恢復資料。
不幸的是,似乎 rsync 的所有選項都不可用。
有人可以告訴我 QTS 內建的 rsync 版本,以及提供相關文件的連結嗎?
謝謝,
Frédéric
輸入:
rsync -version
以及
rsync -help
這樣就能顯示已安裝的版本以及可用的選項。
「目前」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/
感謝您的迅速回覆。
確實,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
我會另外和團隊確認你提到的問題!
嗨 @frederic
經過我們工程師的確認,系統的 HBS 提供了另一個可執行檔,位於 /usr/bin/rsync.hbs。
請使用這個檔案,因為這是 HBS 用來提供外部 rsync 服務的版本。你目前使用的 /usr/bin/rsync 並非用於外部服務,只是為了向下相容而存在。
非常感謝您的回饋!