こんにちは、
古いNAS(劣化モード)から新しいNAS(TS-664、QTS 5.2.6.3195上で稼働)へssh経由でデータを復旧しており、rsyncを使用しています。
残念ながら、rsyncのすべてのオプションが利用できないようです。
QTSにパッケージされているrsyncのバージョンと、関連するドキュメントへのリンクをご存知の方がいれば教えていただけますか?
よろしくお願いします。
フレデリック
こんにちは、
古いNAS(劣化モード)から新しいNAS(TS-664、QTS 5.2.6.3195上で稼働)へssh経由でデータを復旧しており、rsyncを使用しています。
残念ながら、rsyncのすべてのオプションが利用できないようです。
QTSにパッケージされているrsyncのバージョンと、関連するドキュメントへのリンクをご存知の方がいれば教えていただけますか?
よろしくお願いします。
フレデリック
次のコマンドを入力してください:
rsync -version
そして
rsync -help
これで、インストールされているバージョンと利用可能なオプションが表示されます。
「現在の」QTS/QuTSは、まともなバージョンのrsyncを搭載しているようです。
古いボックスでは何が使えますか?
私は通常 -aPv を使いますが、過去にはbusyboxやWindowsファイルシステムで苦労したことがあります。
--recursive --times --partial --progress --verbose は、ほぼすべてのrsyncバージョンに含まれており、データ移行が可能です。
[weedy@TheVault ~]$ rsync --help
rsync version 3.0.7 protocol version 30
Copyright (C) 1996-2009 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64ビットファイル、64ビットinum、64ビットタイムスタンプ、64ビットlong int、
ソケットペアなし、ハードリンク、シンボリックリンク、IPv6、バッチファイル、インプレース、
追加、ACL、xattrs、iconv、symtimes
rsyncには絶対的な保証はありません。これはフリーソフトウェアであり、
一定の条件下で再配布することができます。詳細はGNU General Public Licenceをご覧ください。
rsyncは、高速な差分アルゴリズムによる効率的なリモート更新が可能な
ファイル転送プログラムです。
使用方法: rsync [OPTION]... SRC [SRC]... DEST
または rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
または rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST
または rsync [OPTION]... SRC [SRC]... rsync://[USER@]HOST[:PORT]/DEST
または rsync [OPTION]... [USER@]HOST:SRC [DEST]
または rsync [OPTION]... [USER@]HOST::SRC [DEST]
または rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
「:」の使用はリモートシェル経由で接続し、「::」や「rsync://」の使用は
rsyncデーモンに接続し、SRCまたはDESTはモジュール名で始まる必要があります。
オプション
-v, --verbose 詳細出力を増やす
-q, --quiet エラー以外のメッセージを抑制
--no-motd デーモンモードのMOTDを抑制(manページの注意参照)
-c, --checksum タイムスタンプやサイズではなくチェックサムでスキップ
-a, --archive アーカイブモード; -rlptgoDと同等(-H,-A,-Xは除く)
--no-OPTION 暗黙の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 送信先ファイルをインプレースで更新(MANページ参照)
--append 短いファイルにデータを追加
--append-verify --appendと同様だが、古いデータもファイルチェックサムに含む
-d, --dirs ディレクトリを再帰せず転送
-l, --links シンボリックリンクをリンクとしてコピー
-L, --copy-links シンボリックリンクを参照先ファイル/ディレクトリに変換
--copy-unsafe-links 「unsafe」なシンボリックリンクのみ変換
--safe-links ソースツリー外を指すリンクは無視
-k, --copy-dirlinks ディレクトリへのリンクを参照先ディレクトリに変換
-K, --keep-dirlinks 受信側のリンクされたディレクトリをディレクトリとして扱う
-H, --hard-links ハードリンクを保持
-p, --perms パーミッションを保持
-E, --executability ファイルの実行属性を保持
--chmod=CHMOD ファイルやディレクトリのパーミッションに影響
-A, --acls ACLを保持(--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 ファイル全体をコピー(デルタ転送アルゴリズムなし)
-x, --one-file-system ファイルシステムの境界を越えない
-B, --block-size=SIZE 固定チェックサムブロックサイズを指定
-e, --rsh=COMMAND 使用するリモートシェルを指定
--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 発信ソケットのバインドアドレス指定
--port=PORT ダブルコロンの代替ポート番号指定
--sockopts=OPTIONS カスタムTCPオプション指定
--blocking-io リモートシェルでブロッキングI/O使用
--stats ファイル転送統計を表示
-8, --8-bit-output 出力でハイビット文字をエスケープしない
-h, --human-readable 数値を人間に読みやすい形式で表示
--progress 転送中に進捗を表示
-P --partial --progressと同じ
-i, --itemize-changes すべての更新の変更概要を出力
--out-format=FORMAT 指定したFORMATで更新を出力
--log-file=FILE 指定したFILEに実行内容を記録
--log-file-format=FMT 指定したFMTで更新を記録
--password-file=FILE FILEからデーモンアクセスパスワードを読み込む
--list-only ファイルをコピーせずにリスト表示
--bwlimit=KBPS I/O帯域制限; 1秒あたりKB単位
--write-batch=FILE バッチ更新をFILEに書き込む
--only-write-batch=FILE --write-batchと同様だが送信先は更新しない
--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)のmanページをご覧ください。
http://rsync.samba.org/ でアップデート、バグ報告、回答を確認できます
迅速な返信ありがとうございます。
確かに、rsync -version を実行すると 2009年の 3.0.7 でした!
Qnap からもっと新しいバージョンが提供されていないのは、正直驚きです :-/
最新の 2025年版 3.4.1 と比べると、確かに機能が不足していますね。
それでは…
同じバージョンですね。
そして --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 という別の実行ファイルを提供しています。
外部rsyncサービスを提供するためにHBSが使用するバージョンなので、こちらをご利用ください。現在ご使用中の /usr/bin/rsync は外部サービス向けではなく、後方互換性のためにのみ存在しています。
ご意見ありがとうございます!