由于前段时间的披星戴月,项目是终于搞上线了,先庆祝一下
这里介绍下项目整体的框架:.NET5+SqlServer+MongoDB
管理后台用的ElementUI+VUE
好了,该切入正题了。
Ubuntu本身自带定时执行任务“Crontab”,利用这个可以每天可以对数据库进行备份。
首先看看备份脚本
代码如下:
#!/bin/bash
#backup MongoDB
#mongodump命令路径
DUMP=/usr/bin/mongodump
#临时备份目录
OUT_DIR=/data/mongodb/bak/mongodb_now
#备份存放路径
TAR_DIR=/data/mongodb/bak/mongodb_list
#获取当前系统时间
DATE=`date +%Y_%m_%d`
#DAYS=15代表删除15天前的备份,即只保留近15天的备份
DAYS=15
#最终保存的数据库备份文件
TAR_BAK="mongodb_bak_$DATE.tar.gz"
cd $OUT_DIR
/bin/rm -rf $OUT_DIR/*
/bin/mkdir -p $OUT_DIR/$DATE
/bin/mkdir -p $TAR_DIR
#备份全部数据库
$DUMP -h 127.0.0.1:27017 -o $OUT_DIR/$DATE
#压缩为.tar.gz格式
/bin/tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
#删除15天前的备份文件
/usr/bin/find $TAR_DIR/ -mtime +$DAYS -delete
exit
dump参数代表你当前的备份命令的路径,如有不知道在哪里的,可以用如下命令查看
whereis mongodump
OUT_DIR:表示你要备份的目录,这里你可以自己设置。
这里所有的命令执行都要带上绝对路径,不然执行会报错。因为cron在执行的时候貌似没有获取环境变量,所以......
另外,如上所示,bak目录必须要是你当前执行的用户权限,如不是,在执行的时候将会抛出异常说权限被拒绝。
到此,算的上是大功告成......一半(还有最终的部分没完成呢,就着急剧终字幕了吗?)
保存该文件,确保该文件具有执行权限,如没有,键入chmod +x mongodb_bak.sh
查看文件列表,具有X执行权限了。
然后键入 crontab -e,编辑定时任务,这里重点来了(敲黑板)
在最后一行键入:10 * * * * /home/app/mongodb_bak.sh,这里代表每天凌晨0点10分开始执行数据库备份。
好了,剧终字幕可以出来了,鸣谢,礼炮!!