Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1764620
  • 博文数量: 150
  • 博客积分: 660
  • 博客等级: 上士
  • 技术积分: 2480
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-08 11:39
文章分类

全部博文(150)

文章存档

2019年(4)

2018年(36)

2017年(53)

2016年(7)

2015年(3)

2014年(3)

2013年(27)

2012年(2)

2011年(1)

2006年(1)

2005年(13)

分类: NOSQL

2017-07-20 16:02:40


点击(此处)折叠或打开

  1. #!/bin/bash
  2. set -e
  3. BACKUP_DIR="/goluk/backup/mongo"
  4. MONGO_HOST="db03"
  5. MONGO_DB="trip"
  6. MONGO_DUMP_CMD="mongodump "
  7. NUM=0
  8. MONGO_EXCLUDE="trip_track"
  9. BACK_FILE="$BACKUP_DIR/$MONGO_DB-$(date +%Y%m%d-%H%M).gz"
  10. CMD="$BACKUP_DIR/$MONGO_DB-$(date +%Y%m%d-%H%M).CMD"
  11. ALERTING="lihui@goluk.com"
  12. error_trap() {

  13.   echo " [LINE:$1] Error." |mail -s "mongodb backup failed" $ALERTING
  14.   rm -fr $BACK_FILE $CMD
  15. }
  16. get_max_track_table() {
  17.   id2=`mongo <<EOF
  18.   use trip
  19.   rs.slaveOk()
  20.   db.trip_track_table.find({},{"id" : 1 , "_id" : 0}).sort({"id" : -1}).limit(1)
  21. EOF`
  22. echo $id2
  23. }
  24. set_exclude() {

  25.   NUM=`echo $id2 |awk -F':| ' '{print $18}'`
  26.   NUM2=`expr $NUM - 1 `
  27.   MONGO_EXCLUDE="--excludeCollection=trip_track --excludeCollection=trip_track_{0..$NUM2}"
  28.   echo $MONGO_EXCLUDE
  29. }


  30. main() {
  31.   trap 'error_trap $LINENO' ERR
  32.   get_max_track_table
  33.   set_exclude
  34.   echo "$MONGO_DUMP_CMD -h $MONGO_HOST:27017 -d $MONGO_DB $MONGO_EXCLUDE --gzip --archive=$BACK_FILE" >$CMD
  35.   sh < $CMD
  36.   rm -f $CMD
  37. }
  38. main

阅读(2052) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~