BlueXIII's Blog

热爱技术,持续学习

0%

mysql与mongo备份脚本

MySQL备份

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/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

1
2
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/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 {} \;