端くれプログラマの備忘録 Unix [Unix] rsyncでWebサイトをディプロイする

[Unix] rsyncでWebサイトをディプロイする

Webサイトのディプロイにrsyncを使う事例は多い。以下、試行錯誤の覚え書き。

ファイル単体の同期

$ rsync -e ssh -v /home/84kure/README.md user@example.com:/home/84kure/README.md

ディレクトリの同期

$ rsync -a -e ssh -v /home/84kure/images/ user@example.com:/home/84kure/images

開発ディレクトリから本番ディレクトリへのディプロイ

# 本番ディレクトリを一時ディレクトリへ複製
cp -a ~/html/prod/public_html ~/html/prod/public_html_new

# 開発ディレクトリを一時ディレクトリへ同期 (同期不要のファイルは--excludeで除外すること)
rsync -azv --delete --exclude '.git*' --exclude 'cache' \
  ~/html/devel/public_html/ ~/html/prod/public_html_new/ \
  > `date +%Y%m%d-%H%M%S`.log

# 本番ディレクトリを日時付加してリネーム
mv ~/html/prod/public_html \ ~/html/prod/public_html_`date +%Y%m%d-%H%M%S`

# 一時ディレクトリを本番ディレクトリへリネーム
mv ~/html/prod/public_html_new ~/html/prod/public_html

参考サイト

rsyncの使い方

rsync でディレクトリの同期(バックアップ) – maruko2 Note.
http://www.maruko2.com/mw/rsync_%E3%81%A7%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E5%90%8C%E6%9C%9F%EF%BC%88%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%EF%BC%89

Command Technica:はじめてrsyncを使う方が知っておきたい6つのルール (1/2) – ITmedia エンタープライズ
http://www.itmedia.co.jp/enterprise/articles/0804/21/news013.html

ディプロイでの利用

rsyncでアプリケーションを配備 — ディノオープンラボラトリ
http://openlab.dino.co.jp/2007/10/01/18112887.html

デプロイに rsync を使う | バシャログ。
http://bashalog.c-brains.jp/10/03/19-113949.php

自動同期

ssh + rsync でパスワードなし認証 – おおらかにいこう
http://fuminori14.hatenablog.com/entry/20121002/1349184746

同期設定(rsync)を今一度整理してみました – Qiita
http://qiita.com/mitzi2funk/items/9308db56829d7b4cb90d

rsyncでバックアップいろいろ | 士別三日、即更刮目相待
http://calcabrina.net/archives/88/