«前の日記(2007-06-23(土)) 最新 次の日記(2007-06-25(月))» 編集
RSS feed

からっぽの日記


2007-06-24(日) 梅雨日和 [長年日記]

バックアップスクリプト

さくらサーバにバックアップスクリプトを作成し、cron に登録したのでメモ。

backup.sh

#!/bin/sh

LANG=C
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:\
/usr/X11R6/bin:/home/hoge/bin:/home/hoge/bin:/home/hoge/local/bin

DAY=`date +%d`
# バックアップ対象
BACKUP_TARGET="./home/hoge"
# バックアップ先
BACKUP_DIR="/home/hoge/backup"
# バックアップ除外設定ファイル
BACKUP_EXCLUDE="/home/hoge/bin/exclude.lst"
# 世代管理数
GENERATION=7


if [ ! -d $BACKUP_DIR ]; then
  mkdir -p $BACKUP_DIR
fi


IDX=$GENERATION

until [ $IDX -eq 0 ]
do
  if [ -f $BACKUP_DIR/backup_$IDX.tar.bz2 ]; then
    if [ $IDX -eq $GENERATION ]; then
      rm -f $BACKUP_DIR/backup_$IDX.tar.bz2
    else
      mv -f $BACKUP_DIR/backup_$IDX.tar.bz2 $BACKUP_DIR/backup_`expr $IDX + 1`.tar.bz2
    fi
  fi
  IDX=`expr $IDX - 1`
done


cd /

tar jcf $BACKUP_DIR/backup_1.tar.bz2 -X $BACKUP_EXCLUDE $BACKUP_TARGET

# 月次バックアップ
if [ $DAY -eq 01 ]; then
  cp -p $BACKUP_DIR/backup_1.tar.bz2 $BACKUP_DIR/backup_`date +%Y%M%D`.tar.bz2
fi

exit

~/.crontab を作成

# m h  dom mon dow   command
00 03 * * * /home/hoge/bin/backup.sh >/dev/null 2>&1

crontab に登録

# 登録
% crontab ~/.crontab
# 確認
% crontab -l

参考にさせていただいたサイト


«前の日記(2007-06-23(土)) 最新 次の日記(2007-06-25(月))» 編集
RSS feed