mongdb备份及其删除昨日备份数据(window、linux脚本)

windows bat脚本 

@echo off
rem =====================================================
rem 获取昨日日期
rem =====================================================

set YE=%date:~0,4%
set MO=%date:~5,2%
set DA=%date:~8,2%
set DG=1
set/a vY1=%YE% %% 400
set/a vY2=%YE% %% 4
set/a vY3=%YE% %% 100
if %vY1%==0 (set var=true) else (if %vY2%==0 (if %vY3%==0 (set var=false) else (set var=true)) else (set var=false))
set LY=%YE%
set LM=%MO%
if %MO:~0,1%==0 (set MO=%MO:~1,1%)
if %DA:~0,1%==0 (set DA=%DA:~1,1%)
if %DA% GTR %DG% (set/a LD=%DA%-%DG%) else (
if %MO%==1 (set/a LY=%YE%-1) & (set/a LM=12) & (set/a LD=31+%DA%-%DG%) else (
set/a LM=%MO%-1
if %MO%==3 (if %var%==false (set/a LD=28+%DA%-%DG%) else (set/a LD=29+%DA%-%DG%))
for %%a in (2 4 6 8 9 11) do (if "%MO%"=="%%a" (set/a LD=31+%DA%-%DG%))
for %%b in (5 7 10 12) do (if "%MO%"=="%%b" (set/a LD=30+%DA%-%DG%))))
if %LM% LSS 10 set LM=0%LM:~-1%
if %LD% LSS 10 set LD=0%LD:~-1%
set strLstDt=%LY%%LM%%LD%
rem =====================================================
rem 以下信息需要手动配置修改
rem =====================================================
 
rem 数据库的IP地址
set DB_HOST=127.0.0.1
rem 数据库的端口
set DB_PORT=27017
rem 数据库名
set DB_NAME=test
rem 用户名
set DB_USER=root
rem 用户密码
set DB_PWD=root
rem mongodump命令路径
set DUMP=D:\迅雷下载\mongodb-database-tools-windows-x86_64-100.5.1\bin
rem 备份文件保存的路径
set BACK_UP_DIR=D:\工作文档\杂项\mongodb定时备份\Mongodb\databaseBack
 
rem =====================================================
rem 以下为批处理逻辑部分,不需要修改
rem =====================================================
 
set BAK_FILE_NAME=yapi_bak_%date:~0,4%%date:~5,2%%date:~8,2%
%DUMP:~0,2%
cd %DUMP%
mongodump --authenticationDatabase admin -h %DB_HOST% -p %DB_PORT% -d %DB_NAME% -u %DB_USER% -p %DB_PWD% -o %BACK_UP_DIR%\%BAK_FILE_NAME%
 
set BEFORE_BACK_DIR=%BACK_UP_DIR%\yapi_bak_%strLstDt%

rd /s/q %BEFORE_BACK_DIR%

linux shell脚本

#!/bin/bash
####################以下根据自己情况进行修改  
#mongodump命令路径
DUMP=/usr/local/mongodb/bin/mongodump
#tar备份包临时备份目录,这个tar包最好定时传到本地存储做备份
OUT_DIR=/data/backup/mongo/mongodb_bak_tmp
#完整备份目录路径
BACK_UP_DIR=/data/backup/mongo/mongodb_bak_path
#获取当前系统时间
DATE=`date +%Y_%m_%d_%H_%M`
# 数据库的IP地址
DB_HOST=127.0.0.1
# 数据库的端口
DB_PORT=27017
# 数据库名
DB_NAME=test
#数据库账号
DB_USER=root
#数据库密码
DB_PWD=root
#DAYS=1代表删除1天前的备份,即只保留近15天的备份
DAYS=1
#最终保存的数据库备份文件
TAR_BAK="mongodb_bak_$DATE.tar.gz"
########################以下逻辑不需要修改 
cd $OUT_DIR

rm -rf $OUT_DIR/*

mkdir -p $OUT_DIR/$DATE
#备份全部数据库
$DUMP --authenticationDatabase admin -h $DB_HOST -p $DB_PORT -d $DB_NAME -u $DB_USER -p $DB_PWD -o $OUT_DIR/$DATE
#压缩为.tar.gz格式
tar -zcvf $BACK_UP_DIR/$TAR_BAK $OUT_DIR/$DATE
#删除15天前的备份文件
find $BACK_UP_DIR/ -mtime +$DAYS -delete
#删除tar备份包1天前的备份文件
find $OUT_DIR/ -mtime +1 -name "*.tar.gz" -exec rm -rf {} \;
exit

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值