mongodb数据库定时任务自动备份

本文档详细介绍了如何使用shell脚本实现MongoDB的定期备份,并通过crontab设置定时任务。首先创建备份目录,接着编写备份脚本,包括设置备份路径、时间戳、数据库凭据等,并实现压缩与清理旧备份。然后,赋予脚本执行权限,通过crontab添加每分钟执行一次的定时任务。最后,检查crond服务状态并启动服务。在遇到邮件发送错误时,提供了Postfix配置的解决方案。
摘要由CSDN通过智能技术生成

自行下载 yum install crontabs

  1. 创建文件夹
mkdir mb_data
mkdir mb_data/crontab 
mkdir mb_data/mongodb 
mkdir mb_data/mongodb/mongodb_backup_list
mkdir mb_data/mongodb/mongodb_backup_now
  1. 编写脚本 mb_data/crontab/mongod_backup.sh
#!/bin/sh
DUMP=/usr/bin/mongodump # mongodump备份文件执行路径
OUT_DIR=/mb_data/mongodb/mongodb_backup_now # 临时备份目录
TAR_DIR=/mb_data/mongodb/mongodb_backup_list # 备份存放路径
DATE=`date +%Y_%m_%d` # 获取当前系统时间
DB_USER=1111 # 数据库账号
DB_PASS=2222 # 数据库密码
DB_NAME= # 要备份的数据恢复库名字
DAYS=30 # DAYS=30代表删除30天前的备份,即只保留最近30天的备份
TAR_BAK="mongod_$DB_NAME_bak_$DATE.tar.gz" # 最终保存的数据库备份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1 --port 27017 --authenticationDatabase admin -u $DB_USER -p $DB_PASS  -o $OUT_DIR/$DATE # 备份全部数据库
tar -zcvPf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 压缩为.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete # 删除天前的备份文件
  1. 修改文件属性,使其可执行
chmod +x /mb_data/crontab/mongod_backup.sh
  1. 添加定时任务
crontab -e

进入vim的编辑, 点击 i 键盘

*/1 * * * *  /mb_data/crontab/mongod_backup.sh #表示每1分钟执行备份

:wq 退出vim编辑

  1. 重启
service crond reload #重新载入配置
service crond start   #启动服务
  1. 定时任务已经启动了,,去查看文件是否已经生成了

ps:

  • 查看当前的crond的任务列表 crontab -l
  • 查看crontab的日志 tail -f /var/log/cron
    如果遇到 (root) MAIL (mailed 54 bytes of output but got status 0x004b#012 的错误
    方案:
	编辑/etc/postfix/main.cf文件,把inet_interfaces = all这一行前面的注释符号取消。  
	注释掉inet_interfaces = localhost. 
	service postfix start. 
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值