1.创建脚本:
vim /opt/data/mongd.sh
#!/bin/bash
DB_USER=aaaa # 数据库操作员
DB_PASS=xxxx # 数据库操作员密码
TAR_DIR=/opt/data/backup/mongo # 备份文件正式目录,例如:/data/backup/mongod
OUT_DIR=/opt/data/backup/tmp # 备份文件临时目录,例如:/data/backup/mongod/tmp
DUMP=mongodump
DATE=`date +%Y_%m_%d_%H_%M_%S` # 备份文件将以备份时间保存
DAYS=7 # 保留最新14天的备份
TAR_BAK="mongod_bak_$DATE.tar.gz" # 备份文件命名格式
mkdir -p $OUT_DIR cd $OUT_DIR # 务必确保 $OUT_DIR 路径正确,否则可能引起致命错误
rm -rf $OUT_DIR/* # 清空临时目录
mkdir -p $OUT_DIR/$DATE # 创建本次备份文件夹
$DUMP -h 127.0.0.1:27027 -u $DB_USER -p $DB_PASS -d mydb -o $OUT_DIR/$DATE # 执行备份命令
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 将备份文件打包放入正式目录
find $TAR_DIR/ -mtime +$DAYS -delete # 删除14天前的旧备份
赋执行权限:
chmod +x ~/crontab/mongod.sh
如果你 是windows编辑shell,需要转码unix:
dos2unix mongod.sh
自动运行
crontab -e
0 2 * * * root ~/crontab/mongod.sh
开机启动:
/bin/systemctl restart crond.service
systemctl enable crond.service // 设为开机启动
恢复命令:
mongorestore命令脚本语法如下:
mongorestore -h hostname:port -d dbname path
- --host :port, -h :port:
MongoDB所在服务器地址,默认为: localhost:27017
- --db , -d :
需要恢复的数据库实例,例如:test,当然这个名称也可以和备份时候的不一样,比如test2
- --drop:
恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
- path:
mongorestore 最后的一个参数,设置备份数据所在位置,例如:c:\data\dump\test。
你不能同时指定 path 和 --dir 选项,--dir也可以设置备份目录。
- --dir:
指定备份的目录
你不能同时指定 path 和 --dir 选项。