Technical note
mysql与mongo备份脚本
MySQL备份
#!/bin/bash
# ##################################################################
# MySQL定时备份
# crontab -e
# 30 01 * * * . $HOME/.bash_profile; cd /data/dump/hydrabot_policy; ./dump_mysql.sh
# ##################################################################
# 环境变量
USERNAME=root
PASSWORD=yourpass
DATABASE=hydrabot_policy_prd
BASE_DIR=/data/dump/hydrabot_policy
DUMP_FILE=$BASE_DIR/hydrabot_policy_prd_`date +%Y%m%d%H%M%S`.sql
# 备份
cd $BASE_DIR
mysqldump -u$USERNAME -p$PASSWORD $DATABASE > $DUMP_FILE
# 压缩dmp
gzip $DUMP_FILE
# 删除旧的dmp
find $BASE_DIR -name "*.sql.gz" -mtime +7 -exec rm {} \;
MongoDB备份
参考
https://stackoverflow.com/questions/24439068/tar-gzip-mongo-dump-like-mysql
mongodump --host <host-ip> --port 27017 --db <database> --authenticationDatabase admin --username <username> --password <password> --gzip --archive > dump_`date "+%Y-%m-%d"`.gz
mongodump --host <host-ip> --port 27017 --db <database> --authenticationDatabase admin --username <username> --password <password> --gzip --archive=mongodump.gz
Shell
#!/bin/bash
# ##################################################################
# MongoDB定时备份
# crontab -e
# 30 01 * * * . $HOME/.bash_profile; cd /data/dump/policy_content; ./dump_mongo.sh
# ##################################################################
# 环境变量
DATABASE=hydrabot
COLLECTION=policy_content
BASE_DIR=/data/dump/policy_content
DUMP_FILE=$BASE_DIR/policy_content_`date +%Y%m%d%H%M%S`.gz
# 备份
cd $BASE_DIR
mongodump -d $DATABASE -c $COLLECTION --gzip --archive > $DUMP_FILE
# 删除旧的dmp
find $BASE_DIR -name "*.gz" -mtime +3 -exec rm {} \;