さくらサーバでファイルを自動バックアップ

2009/06/28 (日)

さくらサーバ上のファイルも増えてきたのでバックアップしておこうかと、簡単なスクリプトを作成。

#!/bin/sh

PATH=$HOME/bin:/usr/bin

BACKUP_DIR=$HOME/backup
HOLD_DAYS=30

cd $BACKUP_DIR
tar zcf backup_`date +"%Y%m%d"`.tar.gz $HOME --exclude $BACKUP_DIR

find . -mtime +$HOLD_DAYS -exec rm {} \;

sync

exit 0
  • 事前に、ホームディレクトリにbackupというディレクトリを作っておく。
  • このディレクトリにtarでホームディレクトリ以下をすべてバックアップする。
  • ただし、backupディレクトリは対象外とする(当然)。
  • シェル変数HOLD_DAYSで指定した日数分だけバックアップファイルを保存する。
  • 保存日数は、ディスクの使用量との兼ね合いで見直す。
  • tarはGNU版を想定。FreeBSD版でもできるのかもしれないけど、未確認。

このスクリプト(とりあえず、mkbackup.shという名前とする)をcronで起動する。こんな感じ。

% crontab -l
SHELL=/bin/sh
PATH=/home/XXX/bin:/home/XXX/etc:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow command

0 4 * * * mkbackup.sh
  • /home/XXXは自分のホームディレクトリ。
  • PATH=$HOME/binのようには書けないらしい(展開してくれない)。