弊社WebサイトはGitで管理しており、まだ立ち上げたばかりのため、 暫定的にrsyncを用いてサーバー上にCloneしたリポジトリとルートディレクトリの同期を取っている。
とまあ、以下に使い方を記載しておく。
書式
rsync [オプション] [コピー元] [コピー先]
具体的な使用例
#!/bin/bash rsync -auvz --delete --exclude '.gitignore' /home/[user]/hoge /var/www/html
オプション一例
- -a コピー元のディレクトリを再帰的にオーナー・グループ・パーミッション・タイムスタンプをそのままコピー
- -u コピー元とコピー先を比較し、追加・更新されたファイル・ディレクトリのみをコピー
- -v コピーしているファイル名やバイト数などの情報を表示
- -z 通信を圧縮
- --delete 同期先にないファイルを同期先から削除する
- --exclude 指定したパターンにマッチしたファイルは処理しない
最後に
「具体的な使用例」に記載しているオプションをそのまま使用すればいい感じに同期を取ってくれる。 ドットファイルなどは基本的には配置する必要ないので、その都度細かく設定している。
現状はrsync以外にもGitからプルしたりする手順も踏まなくてはいけないため、ゆくゆくはJenkinsで自動化していきたい。
以上