mongodb定时删除数据库备份 (mongodb数据备份与恢复示例)

mongodb备份文件比较大,mongodb本地备份及异地备份脚本

mongodb备份文件比较大,mongodb本地备份及异地备份脚本

推荐

Zabbix拓扑图绘制,快速定位故障主机位置

一小时带你学习完zabbix监控,生产全套详细学习教程

一/编写脚本

#!/bin/bash
#############################################################################

host='127.0.0.1'
port='12345'
#mongodump文件路径
sourcepath='/usr/local/mongodb/bin/'
#当前时间
nowtime=$(date "+%Y%m%d")
#前一天时间
yesterday=$(date -d "1 day ago" +%Y-%m-%d)
#日志时间年月
nowtime_log=$(date "+%Y%m")
#库
mongo_DB=test
#压缩包备份路径
backupdir=/data/mongodb_backups

#### 自动检查/创建备份路径 ####
if [ ! -d /data/mongodb_backups/mongo_bak ];then
    mkdir -p /data/mongodb_backups/mongo_bak
fi

if [ ! -d /data/mongodb_backups/log ];then
    mkdir -p /data/mongodb_backups/log
fi
#备份路径
targetpath="/data/mongodb_backups/mongo_bak"
#日志
logpath="/data/mongodb_backups/log"

#### 备份函数 ####
start(){
    $sourcepath/mongodump --host $host --port $port --db $mongo_DB --gzip --out ${targetpath}/${nowtime}
}


#### 判断备份成功 ####
execute(){
echo "=========================$(date)  备份所有mongodb启动  ${nowtime}========="  >> ${logpath}/${nowtime_log}.log
#为什么要这样做,zabbix监控检查文件是否存在vfs.file.size[/data/mongodb_backups/test.tar.gz]
mv $backupdir/$mongo_DB.tar.gz  $backupdir/${mongo_DB}_${yesterday}.tar.gz
start
if [ $? -eq 0 ];then
    cd ${targetpath}/${nowtime}/
	#为什么这样做?包结构会冗余很多,包含了上层目录的问题
    tar -czvf $backupdir/$mongo_DB.tar.gz $mongo_DB
    echo " MongoDB备份成功 !"  >> ${logpath}/${nowtime_log}.log
	find $backupdir -mtime +7 -name *.tar.gz -exec rm -rf {} \;
else
    echo " MongoDB备份失败失败失败失败 "   >> ${logpath}/${nowtime_log}.log
fi
}

execute

find $targetpath -mtime +3 -name 20* -exec rm -rf {} \;
find $logpath -mtime +180 -name *.log -exec rm -rf {} \;

echo "========================= $(date)  备份mongodb结束  ${nowtime}========="   >> ${logpath}/${nowtime_log}.log
#导入命令/usr/local/mongodb/bin/mongorestore --host 127.0.0.1 --port 123456 --gzip /data/mongodb_backups/mongo_bak/20230619/

二/定时任务

[root@abc mongodb_backups]# chmod +x mongodb_bachups.sh 
[root@iZ mongodb_backups]# crontab -l
* 5 * * * sh /data/mongodb_backups/mongodb_bachups.sh  > /dev/null 2

三/zabbix监控文件和文件大小,触发器

mongodb备份文件比较大,mongodb本地备份及异地备份脚本

没了就这样了。