mongodbのバックアップをとって過去30日間分保存する
バックアップをとる簡単なシェルスクリプトのメモ。mongodbのdatabaseのデータをdumpしてtar.gzにして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"`.tar.gz # 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 $DUMP_DIR
んでcrontabで一日一回実行。
0 4 * * * /path/to/bin/backup.sh dbname >/dev/null 2>&1