rsyncでバックアップ

ログファイルや設定ファイルなどをバックアップする際に、rsyncを使うと便利です。実際に、ローカルサーバ内でのコピーにもrsyncを使用して、さらにリモートのバックアップサーバにもrsyncで同期をとっています。 ここでは、そのバックアップのシェルスクリプトを紹介します。

なお、rsyncコマンドのエラーハンドリングは記述していません。ログ監視でいいのであれば、ここで紹介する例のままでいいかと思います。

またここでは、リモート側でもここで紹介するローカルバックアップを実行していることを前提としています。

1.ローカルバックアップのシェルスクリプト rsync_backup_local.sh

このシェルスクリプトでは、rsyncのオプションinclude-fromとexclude-fromに指定しているファイルが重要な役割を担っています。これら2つのファイルの内容を1つのファイルにまとめて記述して、それをinclude-fromあるいはexclude-fromオプションで指定しても、同じ動作をします。

rsync_backup_local.sh

#!/bin/sh rc_NG=1 backupfrom=/ backupto=/backup/local/ includelist=$(dirname $0)/../conf/rsync_include.list excludelist=$(dirname $0)/../conf/rsync_exclude.list ownname=$(basename $0) logfile=$(dirname $0)/../log/${ownname%.*}.log echo `date +’%Y/%m/%d %H:%M:%S.%3N’` “Start of rsync backup [” $ownname “]” >>$logfile if [ ! -e $includelist ]; then echo “[ERROR] includeリストファイル” $includelist “が見つかりません。” >>$logfile echo `date +’%Y/%m/%d %H:%M:%S.%3N’` “End of rsync backup [” $ownname 続きを読む »

2日前の日付を取得する

dateコマンドを使って、次のように簡単に。

# date -d “2 day ago” ‘+%Y-%m-%d’

エポック秒を取得する

日時の前後比較など、何かと便利なエポック秒。1970年1月1日00:00:00からの秒数ですが、その取得方法です。

現在日時のエポック秒は次のようにすれば取得できます。

# date +%s

さらに、指定した日時のエポック秒は次のようにすれば取得できます。

# date -d “2015-02-06 01:23:45” +%s