rsyncでWebサイトのコンテンツをバックアップする

一度失敗しサイト復旧に半月ほど掛かったrsyncバックアップですが、
今度はデータのバックアップを何重にも取ってからのrsyncリベンジです。

スクリプト組み立て

増分バックアップを行うためrsyncを使いますが、それだけではログに開始時間と経過時間が残りません。今回は余り難しく考えないで、rsync実行前にdateを実行し、timeコマンドを併用して経過時間を記録することにします。
またバックアップする必要のないディレクトリを「–exclude」で指定できるようにしました。

■webcontentsbackup.sh

#!/bin/bash

## 変数に値を設定
HOSTNAME=********
LOGFILE=/var/log/rsync.log
SORCE_DIR=/data/html/
DEST_DIR=/data/backup/web/
EXCLUDE=munin/

##
echo ===============================>> ${LOGFILE} 2>&1
date >> ${LOGFILE} 2>&1

## 所要時間付きでrsyncを実行しログ出力
(time rsync -av --delete ${SORCE_DIR} ${DEST_DIR} --exclude ${EXCLUDE} ) >> ${LOGFILE} 2>&1

exit

■/var/log/rync.logへの出力ログ

===============================
Mon Apr 20 23:15:24 JST 2015
sending incremental file list
wp-content/uploads/2015/04/
wp-content/uploads/2015/04/ln_r-h_p_400x400-100x100.jpeg
wp-content/uploads/2015/04/ln_r-h_p_400x400-150x150.jpeg
wp-content/uploads/2015/04/ln_r-h_p_400x400-320x180.jpeg
wp-content/uploads/2015/04/ln_r-h_p_400x400.jpeg

sent 76432 bytes  received 258 bytes  153380.00 bytes/sec
total size is 43414156  speedup is 566.10

real    0m0.725s
user    0m0.027s
sys     0m0.108s

rync.logファイルのローテーション設定

最後にもう一つ。このままだとrync.logファイルが肥大化してしまうので、logrotateでローテーションさせます。
といってもCentOS6のデフォルトlogrotate.confの設定で十分なのでサックリとrync.log用にファイルを1つ作るだけです。

■/etc/logrotate.d/rsync

/var/log/rsync.log {
    missingok
}