mongodb全量备份,简单的实现方式
2016-06-30 16:38
691 查看
主要是通过shell脚本调用mongodb命令实现,编写sh的脚本,然后结合linux crontab 定时调用
脚本分为备份脚本和清理脚本
3、如下是关于自动备份的脚本
#!/bin/bash
sourcepath='/home/mongodb/mongodb-linux-x86_64-3.0.5'/bin
targetpath='/home/mongo_bak'
nowtime=$(date "+%Y%m%d%H:%M:%S" | cut -d ":" -f 1)
dbname='glgd'
logdatetime=$(date "+%Y%m%d%H:%M:%S")
start()
{
echo "[${logdatetime}]===========bak start=================" >> mongodb_bak_clear.log
${sourcepath}/mongodump --host 127.0.0.1 --port 27017 -d ${dbname} --out ${targetpath}/${nowtime}
}
execute()
{
start
if [ $? -eq 0 ]
then
echo "bak successfully!" >> mongodb_bak_clear.log
else
echo "bak failure!" >> mongodb_bak_clear.log
fi
}
if [ ! -d "${targetpath}/${nowtime}/" ]
then
mkdir ${targetpath}/${nowtime}
fi
execute
echo "[${logdatetime}]===========bak end --> bak to the path: ${targetpath}/${nowtime} ==============" >> mongodb_bak_clear.log
2、清理脚本
#!/bin/bash
targetpath='/home/mongo_bak'
dbname='glgd'
nowtime=$(date +%Y%m%d%H --date="-5 hour")
logdatetime=$(date "+%Y%m%d %H:%M:%S")
echo "[${logdatetime}]===clear start===" >> mongodb_bak_clear.log
if [ -d "${targetpath}/${nowtime}/" ]
then
rm -rf "${targetpath}/${nowtime}/"
echo "===success:delete ${targetpath}/${nowtime}/ completed!=====" >> mongodb_bak_clear.log
else
echo "===fail:${targetpath}/${nowtime}/ does not exists!=====" >> mongodb_bak_clear.log
fi
echo "[${logdatetime}]===clear end ! ===" >> mongodb_bak_clear.log
3、编写linux crontab 定时调用上述两个脚本
脚本分为备份脚本和清理脚本
3、如下是关于自动备份的脚本
#!/bin/bash
sourcepath='/home/mongodb/mongodb-linux-x86_64-3.0.5'/bin
targetpath='/home/mongo_bak'
nowtime=$(date "+%Y%m%d%H:%M:%S" | cut -d ":" -f 1)
dbname='glgd'
logdatetime=$(date "+%Y%m%d%H:%M:%S")
start()
{
echo "[${logdatetime}]===========bak start=================" >> mongodb_bak_clear.log
${sourcepath}/mongodump --host 127.0.0.1 --port 27017 -d ${dbname} --out ${targetpath}/${nowtime}
}
execute()
{
start
if [ $? -eq 0 ]
then
echo "bak successfully!" >> mongodb_bak_clear.log
else
echo "bak failure!" >> mongodb_bak_clear.log
fi
}
if [ ! -d "${targetpath}/${nowtime}/" ]
then
mkdir ${targetpath}/${nowtime}
fi
execute
echo "[${logdatetime}]===========bak end --> bak to the path: ${targetpath}/${nowtime} ==============" >> mongodb_bak_clear.log
2、清理脚本
#!/bin/bash
targetpath='/home/mongo_bak'
dbname='glgd'
nowtime=$(date +%Y%m%d%H --date="-5 hour")
logdatetime=$(date "+%Y%m%d %H:%M:%S")
echo "[${logdatetime}]===clear start===" >> mongodb_bak_clear.log
if [ -d "${targetpath}/${nowtime}/" ]
then
rm -rf "${targetpath}/${nowtime}/"
echo "===success:delete ${targetpath}/${nowtime}/ completed!=====" >> mongodb_bak_clear.log
else
echo "===fail:${targetpath}/${nowtime}/ does not exists!=====" >> mongodb_bak_clear.log
fi
echo "[${logdatetime}]===clear end ! ===" >> mongodb_bak_clear.log
3、编写linux crontab 定时调用上述两个脚本
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 如何在 Fedora 上安装 MongoDB 服务器
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- 如何在 Ubuntu 上安装 MongoDB
- 信息安全聚合 Sec-News 的重构之路
- perl操作MongoDB报错undefined symbol: HeUTF8解决方法
- C#中使用1.7版本驱动操作MongoDB简单例子
- 使用zabbix监控mongodb的方法
- Node.js的MongoDB驱动Mongoose基本使用教程
- MongoDB系列教程(四):设置用户访问权限
- node.js连接mongoDB数据库 快速搭建自己的web服务
- php实现的mongodb操作类实例
- 解决mongodb在ubuntu下启动失败,提示couldn‘t remove fs lock errno:9 Bad file descriptor的错误
- 在PostgreSQL的基础上创建一个MongoDB的副本的教程
- 关于mongoose连接mongodb重复访问报错的解决办法
- java操作mongodb示例分享
- php对mongodb的扩展(初出茅庐)
- 作为PHP程序员应该了解MongoDB的五件事
- 基于MySQL到MongoDB简易对照表的详解