[コマンド] rsyncでファイル同期処理

最近では、gitを使ってデプロイ管理する場合も多いかもしれませんが、gitモジュールがインストールできないサーバー環境などでは、今でもよくrsyncが使われています。 rsyncを使うと、サーバー間のプログラムファイルを簡単に更新することができます。 本番で使う時に、いつもコマンドを忘れてしまいガチなので備忘録を残しておきます。

開発環境から本番環境へのデプロイ処理

間初サーバーから実行する場合 rsync -auvzhtP -e 'ssh -i %key' %送信元階層 %user@%domain:%送信先階層 --exclude .git --exclude trash/ --dry-run %送信元階層 : ex) /var/www/html %送信先階層 : ex) /var/www %key : サーバー認証をするための鍵ファイル(rootからのフルパスで書きましょう) %user@%domain : sshで認証する時のサーバーアクセスの情報 --exclude : 同期対象外のフォルダやファイルなどを数珠つなぎで複数記述できます。 --dry-run : このオプションを付けておくと、同期するファイルの確認ができます。(このオプションを取れば同期処理が実行されます)

注意点

送信元サーバーと送信先サーバーのフォルダ構成は、同じである場合、サンプルの場合は、/var/www/htmlの場合、デプロイサーバー側は、/var/wwwとセットすると、html内での相違ファイル一覧が取得できます。 ※これややこしいので、--dry-runオプションで必ずチェックしてから実行しましょう。