rsyncを使用したリモートファイルのチェックサムのクエリ

rsyncを使用したリモートファイルのチェックサムのクエリ

rsyncを使用してリモートファイルを転送せずに単にチェックサムを取得できますか?

これは、比較する一致するローカルファイルがない場合は、多くの帯域幅を使用せずにリモートファイルの整合性を確認するのに役立ちます。また、リモートシステムへのフルシェルアクセス権はありませんが(ログインや実行md5sumなどの操作はできません)、rsyncd、制限されたSSHなどを介してrsyncアクセス権がある場合

答え1

君はできます

rsync --checksum --dry-run --checksum-choice=xxh128  --out-format="%C" host.example.com:/tmp/foo/hello.txt /dev/null

これにより、hello.txtリモートファイルのxxh128チェックサムが16進形式の標準出力(たとえば)に書き込まれます6bba86c7e069f56d5a10b435f1c8e49c

どこ:

  • --checksum強制チェックサムの計算

  • --dry-run何も送信されないように

  • --checksum-choice=xxh128xxh128 ハッシュアルゴリズムの使用を要求します。xxh64あるいは、md5他のさまざまな方法を使用することもできます。rsync --versionこれに関するカスタマーサポートをご覧ください。

    これは、リモートサーバーが必要なアルゴリズムもサポートしている場合にのみ機能します。一部のサーバーではオプションがまったく提供されない場合があります。 md5のみをサポート--checksum-choiceし、提供されていない場合は使用しますが--checksum-choice-md5

  • --out-format="%C"送信された各ファイルのチェックサムのみが出力されます。 「ログ形式」オプションを参照してください。rsyncd.conf(5)追加情報を出力できます。 Useは、入力(それぞれなど)で使用できるのと--out-format="%C %f"同じ形式で出力を生成します。xxh128sumxxh128sum --checkmd5sum

  • /dev/nullローカルの宛先ファイルとして使用できるものが必要です。ターゲットファイルを指定しないと、rsyncはリモートファイルのみを一覧表示し、リモートサーバーにチェックサムを要求しません。

また、複数のリモートファイルに一致するパターンを提供したり、-rディレクトリツリー内のすべてのファイルを再帰的に検証したりするために使用されます。この場合、/dev/nulltargetを既存のローカルディレクトリの名前に変更してください。たとえば、そのディレクトリ/tmpには記録されません。

リモートrsyncは応答を生成する前にすべてのファイルをチェックサムできるため、タイムアウトが発生すると問題が発生する可能性があります。

関連情報