全栈开发过程中需要我们自己维护数据库
mongodb
,数据备份是尤为重要的一环,了解 Linux 环境下数据的自动备份
一、创建备份目录
mkdir -p /data/mongodb_bak/mongodb_bak_now
mkdir -p /data/mongodb_bak/mongodb_bak_list
二、创建备份脚本
#!/bin/bash
# backup MongoDB [mongodb_bak.sh]
# mongodump命令路径
DUMP=/usr/local/mongodb/bin/mongodump
OUT_DIR=/data/mongodb_bak/mongodb_bak_now
TAR_DIR=/data/mongodb_bak/mongodb_bak_list
# 获取当前系统时间
DATE=`date +%Y_%m_%d`
# 数据库账号
DB_USER=user
# 数据库密码
DB_PASS=123
# 最终保存的数据库备份文件
DAYS=15
# 最终保存的数据库备份文件
TAR_BAK="mongodb_bak_$DATE.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
# mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径
# 如果没有用户谁,可以去掉-u和-p
# 如果导出本机的数据库,可以去掉-h
# 如果是默认端口,可以去掉--port
# 如果想导出所有数据库,可以去掉-d
# 备份单个(dcg)数据库 mongodump -h dbhost -d dbname -o dbdirectory [无密码]
$DUMP -h 10.8.19.223:27017 -d "dcg" -o $OUT_DIR/$DATE
# 备份全部数据库
$DUMP -h 10.8.19.223:27017 -u $DB_USER -p $DB_PASS --authenticationDatabase
# 压缩为.tar.gz格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
# 删除15天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete
exit
三、修改脚本文件属性
chmod +x mongodb_bak.sh
四、添加计划任务 /etc/cront
路径:/etc/crontab
30 20 * * 6 root /data/mongodb_bak/mongo-back.sh