linux下定时按条件备份mongodb指定的集合.docx

linux下定时按条件备份mongodb指定的集合.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux下定时按条件备份 mongodb 指定的集合 1、 说明: 在不使用副本集模式即时备份的情况下,还可以使用Mongdb 中自带的两个可以进行备份和恢复的工具,分别是 mongodump 和 mongorestore、mongoexport 和mongoimport; 但是这两种备份并没有定时的功能,假如我们需要每天固定一个时间备份数据的话, 需要使用linux中的 shell脚本并结合 linux系统的定时任务 crontab; 2、 示例脚本代码,脚本逻辑如下: 、获取系统时间,得到备份时的查询条件,开始和结束时间; 、根据开始和结束条件备份数据到指定的临时文件夹 dumptest 中; 、判断当前日期是不是每月的第一或第二天,如果是第一天,需要把备份的前一天的数据放回到上个月的备份存储文件中;如果是当月第二天,需要新建一个本月的备份数据存储文件; 、把 dumptest 中每日备份的临时文件追加到相应的数据存储文件中。 dumptest1.sh文件内容如下(本示例在 192.168.0.160上操作): #获取系统时间并转换成毫秒数 currentsec=`date +%S` #从定时任务到这里获取系统时间要消耗一秒,因此减掉lastsec=$((currentsec-1)) current=`date +%Y-%m-%d %H:%M:`$lastsec timeStamp=`date -d $current +%s` #当前时间的毫秒数currentTimeStamp=$((timeStamp*1000)) #一天前这个时候的毫秒数 yestodayTimeStamp=$((currentTimeStamp-24*60*60*1000)); #获取当前是哪一天 currentDay=`date +%d` #获取当前月currentMonth=`date +%Y%m` echo $currentMonth #上个月月份 lastMonth=`date -d last month +%Y%m` #判断每日备份的临时文件目录是否存在if [ -e /home/admin/dumptest ]; then rm -rf dumptest echo $currentdeletedumptest and dump start,currentTimeStam$pcurrentTimeStamplastTimeStamp $yestodayTimeStamp /home/admin/testlog.log else echo $current only dump start,currentTimeStamp$currentTimeStamp currentTimeStamp $yestodayTimeStamp /home/admin/testlog.log fi #备份指定集合到临时目录 /home/admin/mongodb305/mongodb305/bin/mongodump --port 47017 -u admin -p admin -d admin -c alarm -q {recTime:{$gte:$yestodayTimeStamp,$lt:$currentTimeStamp}} -o /home/admin/dumptest; /home/admin/mongodb305/mongodb305/bin/mongodump --port47017 -u admin -p admin -d admin -c filtering_alarm -q {recTime:{$gte:$yestodayTimeStamp,$lt:$currentTimeStamp}-}o /home/admin/dumptest; /home/admin/mongodb305/mongodb305/bin/mongodump --port47017 -u admin -p admin -d admin -c combine_alarm -q {recTime:{$gte:$yestodayTimeStamp,$lt:$currentTimeStamp-}o} /home/admin/dumptest; /home/admin/mongodb305/mongodb305/bin/mongodump --port47017 -u admin -p admin -d admin -c processed_alarm -q {recTime:{$gte:$yestodayTimeStamp,$lt:$currentTimeStamp-}o} /home/admin/dumptest; #如果是当月第一天,那么文件还需要放到上一个月文件目录

文档评论(0)

始终如一 + 关注
官方认证
内容提供者

始终如一输出优质文档!

认证主体苏州市致远互联网科技有限公司
IP属地江苏
统一社会信用代码/组织机构代码
91320582MA27GAWJ0R

1亿VIP精品文档

相关文档