Last Updated on 2020年6月27日 by かんりにん
同期元ホストのディレクトリのタイムスタンプ(last update)を同期先で合わせる場合のちょっとしたメモ。
rsyncを実行するホストがデータの同期元か同期先(バックアップ先)かでオプションが変わる。
1)同期元ホスト→同期先ホスト
同期先のタイムスタンプがrsync実行時の時間にアップデートされていたので
あれ?と思ってman rsyncしたら、そのままでは同期元のディレクトリのタイムスタンプを引き継がないとのことなので、オプション”-t”をつけてrsyncを実行。
普段の運用で本番機からバックアップ機に向けてのrsyncを行うことは無かったので、いままで知らなかった…orz
ファイル転送が終了した時点で更新元のタイムスタンプに置換される
(同期中は転送時点でのタイムスタンプとなっているので、終了後に確認すること)。
ちなみにオプション”-a(アーカイブ)”にも”-t”オプションの実行が含まれるので、-aを追加してもOK
書式
$ rsync -tvz -e ssh [ローカルの同期元ディレクトリ] user@***.***.***.***:[同期先ディレクトリ]
または
$ rsync -avz -e ssh [ローカルの同期元ディレクトリ] user@***.***.***.***:[同期先ディレクトリ]
ショボいけど、一応イメージ…
オプション"t"をつける! ┌──────┐ ┌──────┐ │ │ │ │ │ │ コマンド実行 │ │ │ 同期元srv │ →→→→→→ │ 同期先srv │ │ │ ファイル転送 │ │ │ │ │ │ └──────┘ └──────┘
2)同期先ホスト→同期元ホストの場合
自分が日常的な作業をしたりバッチジョブを作るときは、大抵こちらのパターン(同期先→同期元)。
書式
$ rsync -avz -e ssh user@***.***.***.***:[同期元ディレクトリ] [ローカルの同期先ディレクトリ]
またまたショボいけど、イメージ…
オプション"t"無しで同期OK! ┌──────┐ ┌──────┐ │ │ コマンド実行 │ │ │ │ ←←←←←← │ │ │ 同期元srv │ │ 同期先srv │ │ │ →→→→→→ │ │ │ │ ファイル転送 │ │ └──────┘ └──────┘
-a スイッチには -t も含まれていますよ(^^
以下manの抜粋
> -a, –archive archive mode; equals -rlptgoD (no -H,-A,-X)
omote様、有難うございます。
記事に追記しました!