Webサイトの差分更新
注:このエントリはほぼ自分用のメモでしかない。
Webサイトを制作するとき、普段は開発用Webサーバで作業してテストがうまくいったら本番サーバへアップロードするという手はずを取ると思う。場合によっては開発用サーバ→ステージングサーバ→本番サーバという流れになっていることもあるだろう。
さて、開発サーバと本番サーバの同期をSubversionなりで出来るならいいのだが、協業相手の都合でそうもいかない場合がある。
仕方ないので rsyncで差分を目視確認してからアップロードするという手段を取ることにしてみた。
まず開発サーバ上にあるゴミを掃除するとしよう。
rm `find -name '._*'`
rm `find -name '.DS_Store'`
rm `find -name '*~'`
上の2つは Macが勝手に作るゴミファイル(HFS以外のファイルシステムに対して Macから読み書きすると勝手にこういうのが出来る)の削除、最後はEmacsが作るバックアップファイルの削除。俺は Macじゃないし Emacsも使ってないという人は見なかったことに。
差分を確認するための rsync
rsync -rptuvn --delete /path/to/localsite/ username@hostname:/path/to/remotesite
-nが付いているためdry-run動作となり、差分の表示だけされて実際の同期は行われない。
この表示を見て後は手でコピーするなり、-nを外して再実行し同期させるなりする。
Webサイトを制作するとき、普段は開発用Webサーバで作業してテストがうまくいったら本番サーバへアップロードするという手はずを取ると思う。場合によっては開発用サーバ→ステージングサーバ→本番サーバという流れになっていることもあるだろう。
さて、開発サーバと本番サーバの同期をSubversionなりで出来るならいいのだが、協業相手の都合でそうもいかない場合がある。
仕方ないので rsyncで差分を目視確認してからアップロードするという手段を取ることにしてみた。
まず開発サーバ上にあるゴミを掃除するとしよう。
rm `find -name '._*'`
rm `find -name '.DS_Store'`
rm `find -name '*~'`
上の2つは Macが勝手に作るゴミファイル(HFS以外のファイルシステムに対して Macから読み書きすると勝手にこういうのが出来る)の削除、最後はEmacsが作るバックアップファイルの削除。俺は Macじゃないし Emacsも使ってないという人は見なかったことに。
差分を確認するための rsync
rsync -rptuvn --delete /path/to/localsite/ username@hostname:/path/to/remotesite
-nが付いているためdry-run動作となり、差分の表示だけされて実際の同期は行われない。
この表示を見て後は手でコピーするなり、-nを外して再実行し同期させるなりする。

2 件のコメント:
rsync に --exclude '._*' --exclude '.DSStore' --exclude '*~' とかやるといい
excludeするよりか消しちゃった方がきれいになるので。
コメントを投稿
<< ホーム