MongoDB备份脚本
#!/bin/bash
MONGO_PATH=/opt/mongodb
MONGO_USER=root
MONGO_PWD=123456
MONGO_BACKDIR=/opt/bak
MONGO_DAYS=4
MONGO_TYPE=3
MONGO_DBNAME='ucpplus,ucp,ucp#124'
pgrep mongod &>/dev/null || exit
BAK_DIR=$MONGO_BACKDIR/MONGObackup
if [ ! -d "$BAK_DIR" ]; then
mkdir "$BAK_DIR"
fi
DATE=`date +'%Y-%m-%d-%H%M%S'`
mkdir $BAK_DIR/$DATE
if [ $MONGO_TYPE == 1 ]; then
$MONGO_PATH/bin/mongodump -o $BAK_DIR/$DATE && cd $BAK_DIR/$DATE && tar --remove-files -zcvf $BAK_DIR/$DATE/all_$DATE.tar.gz -C $BAK_DIR/$DATE ./*
elif [ $MONGO_TYPE == 2 ]; then
for j in $MONGO_DBNAME
do
MONGO_DBNAME_SINGLE=`echo $j | awk -F',' '{print $1}'`
MONGO_USER_SINGLE=`echo $j | awk -F',' '{print $2}'`
MONGO_PWD_SINGLE=`echo $j | awk -F',' '{print $3}'`
$MONGO_PATH/bin/mongodump -u$MONGO_USER_SINGLE -p$MONGO_PWD_SINGLE -d $MONGO_DBNAME_SINGLE -o $BAK_DIR/$DATE && cd $BAK_DIR/$DATE && tar --remove-files -zcvf $BAK_DIR/$DATE/$MONGO_DBNAME_SINGLE.tar.gz -C $BAK_DIR/$DATE $MONGO_DBNAME_SINGLE
done
elif [ $MONGO_TYPE == 3 ]; then
$MONGO_PATH/bin/mongodump -u$MONGO_USER -p$MONGO_PWD -o $BAK_DIR/$DATE && cd $BAK_DIR/$DATE && tar --remove-files -zcvf $BAK_DIR/$DATE/all_$DATE.tar.gz -C $BAK_DIR/$DATE ./*
fi
num=`ls -1 $BAK_DIR 2>/dev/null | wc -l`
if [ $num -gt $MONGO_DAYS ]
then
echo "delete old files "
DEL_DAYS=`expr $num - $MONGO_DAYS`
for i in `ls -1t $BAK_DIR| tail -$DEL_DAYS`
do
echo "rm -rf $BAK_DIR/$i"
rm -rf $BAK_DIR/$i
done
fi