#!/bin/sh
# 01 00 * * * /web/bak/script/mongodbbakup.sh  >/dev/null 2>&1
DB_NAME="dmex"
DB_USER="root"
DB_PASS="yLBvpy8U3V"
BIN_DIR="/web/bin/mongodb/bin"
BACK_DIR="/web/bak/data/mongodb"
DATE="`date  +%Y%m%d`"
keepdays=2
cd $BIN_DIR
mongodata=`MongoDB='./mongo 127.0.0.1:27017/'${DB_NAME}' -u'${DB_USER}' -p'${DB_PASS}''
$MongoDB <<EOF
show collections
EOF`
mongodata1=`echo ${mongodata##*version: 3.6.4}`
collections=`echo ${mongodata1%%bye*}`

for RM in `echo $collections`
do
data=`echo $RM | awk -F " " '{print $1}'`
./mongoexport  -h 127.0.0.1 -u root -p $DB_PASS  -d $DB_NAME -c $data -o $BACK_DIR/$DATE/$data.dat 
done

oldDate=$(date -d "-${keepdays} days" "+%Y%m%d")
cd $BACK_DIR

for datafile in `ls`
do
    if [ ! -e $datafile ];
    then
        continue
    fi
    find . -type f -name "*20*".tar.gz  -mtime +$keepdays -exec ionice -c3 rm -rf {} \;
done

tar -zcf ${DATE}.tar.gz ${DATE} && rm -rf ${DATE}

