簡単バックアップシェル

サーバ管理していると、ちょっとしたデータを定期的にバックアップしたいことがあります。私が普段使用している簡単バックアップのbashのシェルを紹介します。

#!/bin/bash
BACKUP_NAME=`date '+%y%m%d.tar.bz2'`
BACKUP_DIR=/home/backup/
BACKUP_FILE=/var/www

cd $BACKUP_DIR
tar cvfj $BACKUP_NAME $BACKUP_FILE
find $BACKDUP_DIR -type f -daystart -mtime +15 -follow |xargs /bin/rm -f

上記例では、ホームページ領域の/var/wwwをtarで固めてBACKUP_DIRで指定したディレクトリ/home/backupにバックアップしています。tarファイル名は、バックアップ時の年月日としています。

これを毎日cronで実行してあげればよいのですが、このままだといつかはディスクが足らなくなってしまうので、最後のfindで/home/backup内の15日以上古いファイルは削除するようにしています。

今回はtarで、あるディレクトリをまるごと固めていますが、tarではなくcpでファイルをコピーしたり、データベースをバックアップするコマンドをたたいたりすることでいろいろと対応できます。

タイトルとURLをコピーしました