一度失敗しサイト復旧に半月ほど掛かった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
}