ubuntu自动定时备份MongoDB数据库

脚本文件MongoDB_bak.sh:

#!/bin/bash  
#backup MongoDB  

#mongodump命令路径  
DUMP=/usr/bin/mongodump  
#临时备份目录  
OUT_DIR=/data/mongodb/mongodb_now  
#备份存放路径  
TAR_DIR=/data/mongodb/mongodb_list  
#获取当前系统时间  
DATE=`date +%Y_%m_%d` 
#DAYS=15代表删除15天前的备份,即只保留近15天的备份  
DAYS=15  
#最终保存的数据库备份文件  
TAR_BAK="mongodb_bak_$DATE.tar.gz"  

cd $OUT_DIR  
rm -rf $OUT_DIR/*  
mkdir -p $OUT_DIR/$DATE  
#备份全部数据库  
$DUMP -h 127.0.0.1:27017 -o $OUT_DIR/$DATE  
#压缩为.tar.gz格式  
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE  
#删除15天前的备份文件  
find $TAR_DIR/ -mtime +$DAYS -delete  

exit

保存并修改成可以执行的权限

chmod +x MongoDB_bak.sh

添加到计划任务

vi /etc/crontab

每星期六晚上22:30开始执行MongoDB数据库备份脚本

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
30 22   * * 6   root    /data/mongodb/MongoDB_bak.sh
#

猜你喜欢

转载自blog.csdn.net/qq_27623521/article/details/79570762