harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

[rsync]タイムスタンプについてメモ

   


 同期元ホストのディレクトリのタイムスタンプ(last update)を同期先で合わせる場合のちょっとしたメモ。
 rsyncを実行するホストがデータの同期元か同期先(バックアップ先)かでオプションが変わる。

1)同期元ホスト→同期先ホスト:

   同期先のタイムスタンプがrsync実行時の時間にアップデートされていたので
   あれ?と思ってman rsyncしたら、そのままでは同期元のディレクトリのタイムスタンプを引き継がない
   とのことなので、オプション"-t"をつけてrsyncを実行。
   普段の運用で本番機からバックアップ機に向けてのrsyncを行うことは無かったので、いままで知らなかった…orz

   ファイル転送が終了した時点で更新元のタイムスタンプに置換される
   (同期中は転送時点でのタイムスタンプとなっているので、終了後に確認すること)。

  • 書式
    $ rsync -atvz -e ssh <ローカルの同期元ディレクトリ> user@***.***.***.***:<同期先ディレクトリ>
  • ショボいけど、一応イメージ…
                      オプション"t"をつける!
          ┌──────┐              ┌──────┐
          │            │              │            │
          │            │ コマンド実行 │            │
          │  同期元srv │ →→→→→→ │  同期先srv │
          │            │ ファイル転送 │            │
          │            │              │            │
          └──────┘              └──────┘

2)同期先ホスト→同期元ホストの場合:

   同期元ホストの全ファイル、ディレクトリのタイムスタンプを引き継ぐ場合
   オプション"-t"は不要。同期元のタイムスタンプをそのまま引き継ぐ。
   自分が日常的な作業をしたりバッチジョブを作るときは、大抵こちらのパターン(同期先→同期元)。

  • 書式
    $ rsync -avz -e ssh user@***.***.***.***:<同期元ディレクトリ> <ローカルの同期先ディレクトリ>
  • またまたショボいけど、イメージ…
                  オプション"t"無しで同期OK!
          ┌──────┐              ┌──────┐
          │            │ コマンド実行 │            │
          │            │ ←←←←←← │            │
          │  同期元srv │              │  同期先srv │
          │            │ →→→→→→ │            │
          │            │ ファイル転送 │            │
          └──────┘              └──────┘



 - command, メモ, 備忘録, 運用