さっしーブログ

埼玉県在住のシステムエンジニアです。基本的には技術的な内容を中心に発信していきます。

rsyncを使ってフォルダの同期をとる

弊社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で自動化していきたい。

以上