サーバ管理していると、ちょっとしたデータを定期的にバックアップしたいことがあります。私が普段使用している簡単バックアップの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でファイルをコピーしたり、データベースをバックアップするコマンドをたたいたりすることでいろいろと対応できます。