mongodb在linux 上自动备份全部数据 并且只保留近几天 超出天数就删掉老的备份文件
先写 sh脚本命令 (全)
#!/bin/sh
DUMP=/usr/local/mongodb/bin/mongodump #mongodump备份文件执行路径
OUT_DIR=/home/backup/mongod_bak/mongod_bak_now #临时备份目录
TAR_DIR=/home/backup/mongod_bak/mongod_bak_list #备份存放路径
DATE=`date +%Y_%m_%d` #获取当前系统时间
DB_USER=xxx #数据库账号
DAYS=10 #DAYS=10代表删除10天前的备份,即只保留最近10天的备份
TAR_BAK="mongod_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
cd $OUT_DIR # 先cd到临时的备份存放路径
rm -rf $OUT_DIR/* # 删除临时备份路径下的所有文件
mkdir -p $OUT_DIR/$DATE # 创建一个当前时间的文件夹
$DUMP -d $DB_USER -o $OUT_DIR/$DATE #备份全部数据库数据到临时文件地址里面
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #获取到临时文件 压缩为.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete #删除备份存放路径下10天前的备份文件
脚本没有密码
配置cron 定时任务
一般都是cd到 /var/spool/cron 下面有个配置文件 然后加上下面的配置 记得sh脚本路径就是你放的sh脚本路径
如果懒得找 就在sh脚本目录下执行 pwd 查看全路径 复制粘贴一下就行
30 1 * * * /home/xxx/xxxx/xxx/mongod_bak.sh # 表示在凌晨的 1点30分执行这个sh脚本
crontab -l #查看定时任务是否生效是否在里面
cat /var/log/cron #查看cron的log日志
温馨提示:cron配置完成以后是不需要重启的
还原 mongodb 数据库脚本
如果上面都生效了以后 每天凌晨1.30分会自动生成数据库脚本 导入数据库只需要把生成的文件进行解压
cd /home/backup/mongod_bak/mongod_bak_list # 先cd到你的数据库备份文件里面 找到最新或者你需要还原的版本
当你解压以后 需要进入到mongodb 的 bin 下执行此脚本 或者你可以直接写全路径执行脚本 小编是直接先cd到mongodb的bin下
./mongorestore -d 要还原的数据库名称 /home/backup/mongod_bak/mongod_bak_now/2020_11_01/数据库名称