rsyncを日付・サイズ比較でなく中身(checksum)比較でコピーを行う

経緯

サイト生成時に内容の更新有無に関わらず毎回HTMLを作る為、 HTMLのmtimeが中身の変更が無くても、サイト生成時の時刻となってしまっていた。

解決策として公開ディレクトリへ直接置くのではなく、ワンクッション置いてrsyncをかける。

rsyncを使ってコピーしよう

rsyncオプションの代表的なものには下記のようなオプションがある。

rsyncを行う際、-aオプションを使うと、-tオプションの効果が得られ、時刻・サイズで比較をしてしまう。

なので今回は-aオプションの中から-tオプションを省き、-c-Iオプションを追加。下記コマンドにて解決した。

rsync -rlpcgoDv --delete ${TMP_DIR} ${PUBLIC_DIR}

おまけ

既存のファイルは更新しないっていうオプションもある。

rsync --ignore-existing ${TMP_DIR} ${PUBLIC_DIR}

使うシーンがあんまり想像できないけど。 いろんな引数があるので困ったらmanを見るべし。

comments powered by Disqus
カテゴリ
タグ
月別アーカイブ