关于mysql和mongo的自动备份脚本,网上一搜一大堆,都不够简洁,这里写了足够简单的版本。方便拓展和维护。
mysql自动备份脚本
#!/bin/bash
export DATA_DIR=/data/backup
export OUTNAME="mongo_$(date +"%Y-%m-%d")_archive.gz"
mongodump --host 127.0.0.1 --port 27017 --db 库 --authenticationDatabase admin --username root --password 密码 --gzip --archive > $DATA_DIR/$OUTNAME
find $DATA_DIR/ -type f -name "_archive.gz" -mtime +7 -exec rm -rf {} \;
mongo自动备份脚本
#!/bin/bash
export NOW="$(date +"%Y-%m-%d")" export DATA_DIR=/data/backup
mysqldump -uroot -h127.0.0.1 -P3308 --databases 数据库 -p密码 | gzip > $DATA_DIR/mysql_$NOW.sql.gz
find $DATA_DIR/ -type f -name "*sql.gz" -mtime +7 -exec rm -rf {} \;
使用参考:
0. 确保mysql client 和 mongodump工具存在。
1. 存放至 /data/auto_back/
2. 修改bak_mongo.sh与bak_sql.sh脚本的信息,比如备份路径
3. vim /etc/crontab
添加两行30 0 * * * /data/auto_back/bak_mongo.sh
30 0 * * * /data/auto_back/bak_sql.shMongo的恢复脚本如下:
mongorestore --host 127.0.0.1 --port 27017 --db 库 --authenticationDatabase admin --username root --password 密码 --gzip --archive=mongo_2023-06-09_archive.gz