wcdz 发表于 2018-10-24 13:43:49

mongodb3备份脚本

#!/bin/bash  #backup MongoDB
  #mongodump命令路径
  DUMP=/export/mongodb/bin/mongodump
  #临时备份目录
  OUT_DIR=/home/mongodb_bak/mongodb_bak_now
  #备份存放路径
  TAR_DIR=/home/mongodb_bak/mongodb_baklist
  #获取当前系统时间
  DATE=`date +%Y%m_%d`
  #mongo主机名
  HOST=`ifconfig eth1|grep -w inet|awk -F ':' '{print $2}'|awk '{print $1}'`
  #备份数据库
  DB=test
  #数据库账号
  DB_USER=root
  #数据库密码
  DB_PASS=xx
  #DAYS=15代表删除15天前的备份,即只保留近15天的备份
  DAYS=7
  #最终保存的数据库备份文件
  TAR_BAK="mongodbbak$DATE.tar.gz"
  #判断备份命令文件、备份目录是否存在
  if [ ! -f "$DUMP" ];then
  echo "mongodump the command does not exist, check the correct path."
  exit 0
  elif [ ! -d "$OUT_DIR" ];then
  echo "Create tmp backup dir"
  mkdir -p $OUT_DIR
  elif [ ! -d "$TAR_DIR" ];then
  echo "Create Backup dir"
  mkdir -p $TAR_DIR
  els
  echo "Start Backup"
  fi
  cd $OUT_DIR
  rm -rf $OUT_DIR/*
  mkdir -p $OUT_DIR/$DATE
  #备份单个数据库
  #$DUMP -h $HOST -u $DB_USER -p $DB_PASS --authenticationDatabase admin -d $DB -o $OUT_DIR/$DATE
  dbs="$(/bin/sh /home/shell/test.sh|sed '1,2d'|grep -v "local"|awk '{ print $1 }')"
  #######|xargs -n4
  for n in $dbs
  do
  $DUMP -h $HOST -u $DB_USER -p $DB_PASS --authenticationDatabase admin -d $n -o $OUT_DIR/$DATE
  done
  #备份全部数据库
  #$DUMP -h $HOST -u $DB_USER -p $DB_PASS --authenticationDatabase "admin" -o $OUT_DIR/$DATE
  #压缩为.tar.gz格式
  tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
  #删除15天前的备份文件
  [ -d "$TAR_DIR" ] && find $TAR_DIR/ -mtime +$DAYS -exec rm -rf {} \;
  [ -d "$OUT_DIR" ] && find $OUT_DIR/ -mtime +$DAYS -exec rm -rf {} \;

页: [1]
查看完整版本: mongodb3备份脚本