バックアップ、圧縮保存、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