===== バックアップのシェルスクリプト =====
バックアップ、圧縮保存、30日経過後は削除
#!/bin/sh
DB_NAME=$1
if [ -z $DB_NAME ]; then
echo 'require database name'
exit
fi
BACKUP_BASE_DIR=/backup/db
BACKUP_DIR=$BACKUP_BASE_DIR/$DB_NAME
DUMP_DIR=$BACKUP_DIR/dump
BACKUP_FILE=$BACKUP_DIR/${DB_NAME}_`date +"%Y%m%d-%H%M%S"`
# remove dump dir
rm -rf $DUMP_DIR
# dump db data
/usr/bin/mongodump -o $DUMP_DIR -d $DB_NAME
# remove old file
find $BACKUP_DIR -type f -mtime +30 | xargs rm -f
# compress
# tar vczPf $BACKUP_FILE.tar.gz $DUMP_DIR
tar cf - $DUMP_DIR | pbzip2 -f -p4 > $BACKUP_FILE.tar.bz2
cronに登録するときは、dbnameを忘れずに。
30 5 * * * /path/to/bin/backup.sh dbname >/dev/null 2>&1