rsync を使用してリモートのクローンディレクトリを維持するにはどうすればよいでしょうか?

rsync を使用してリモートのクローンディレクトリを維持するにはどうすればよいでしょうか?

リモート マシンへの SSH アクセス (SSH キー ペアを使用) があります。リモート マシン上のディレクトリを、指定されたローカル ディレクトリとまったく同じに維持したい (一方向同期)。ファイルの同一性のチェックは、バイナリ ファイルの内容のハッシュ (サイズや日付ではない) に基づいて実行する必要があります。

  1. それを実行するための正しい rsync コマンドは何ですか (rsync サービスではありません)?
  2. ファイルの権限はどのように処理されますか?
  3. ファイルの変更日はどのように処理されますか?
  4. rsync は失敗に対してどのように反応し、終了コードは何ですか?

答え1

Rsync は、日付やファイル サイズではなく、ファイルの内容をチェックします。内容が異なっていても、パスと名前が同じである場合、ファイルは上書きされます。

rsync の構文はrsync options source destination次のようになります。リモート ディレクトリをローカル ディレクトリと同期させたい場合は、次のようにします。

rsync -azh local_folder user@remote_server:/path/to/destination/

転送プロトコルとして SSH を使用する場合は、これが有効です:

rsync -azhe ssh local_folder user@remote_server:/path/to/destination

ファイルの権限はどのように処理されますか? ファイルの変更日付はどのように処理されますか?

このaパラメータは、シンボリックリンク、ファイル権限、タイムスタンプなどを保存します。この情報を転送したくない場合は、コマンドから除外するだけで、SSH セッションにログインしたユーザーが所有することになります。

rsync は失敗に対してどのように反応し、終了コードは何ですか?

ほとんどのコマンド/プログラムは、成功した場合は 0 を返し、エラーの場合は他の数値を返します。rsync終了コードのリストはこちら参考のため

関連情報