diff --git a/backup.sh b/backup.sh new file mode 100644 index 0000000..6be11c8 --- /dev/null +++ b/backup.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +MONGODB="secondary.mongod.service.mail:27017" +DATAPATH="/mnt/mongobck/NEW_EXPORT" + +NAME="mtools" +DB="lastlogin" + +opt() +{ + case "$1" in + -d) + shift + DATE=$1 + shift + opt $* + ;; + -n) + shift + NAME=$1 + shift + opt $* + ;; + -db) + shift + DB=$1 + shift + opt $* + ;; + -pwd) + shift + DATAPATH=${PWD} + shift + opt $* + ;; + esac +} + +echo "Running... $(date)" + +if [ -n "$1" ] +then + opt $* +fi + +echo "Opts: DB-$DB DATE-$DATE" + +if [ -z "${DATE}" ] +then + DATE=$(date -d "yesterday" +%Y%m%d) +fi + +YDAY=$(date -d "${DATE}" +%Y-%m-%d) +TODAY=$(date -d "${DATE} + 1 day" +%Y-%m-%d) +QUERY="{date: {\$gte: ISODate(\"${YDAY}T00:00:00Z\"), \$lt: ISODate(\"${TODAY}T0 +0:00:00Z\")}}" + +FNAME=$(date -d "${DATE}" +%y%m%d) +CNAME=$(date -d "${DATE}" +%y%m) + +echo "Query: ${QUERY}" + +if [ ! -d "${DATAPATH}/${DB}/${CNAME}" ]; then + mkdir -p ${DATAPATH}/${DB}/${CNAME} +fi + +/usr/bin/docker run \ + --rm \ + -h mtools \ + --name ${NAME} \ + -v ${DATAPATH}:/data \ + mikif70/mongotools:3.4.5 mongoexport \ + --host "${MONGODB}" \ + --db $DB \ + --collection "lastlogin_${CNAME}" \ + --type "csv" \ + --fields "_id,user,protocol,ip,date,insert,country" \ + --query "${QUERY}" \ + --readPreference "secondary" \ + --out "/data/${DB}/${CNAME}/ll_${FNAME}.csv" \ No newline at end of file diff --git a/day_init.js b/day_init.js index 5999611..1314370 100644 --- a/day_init.js +++ b/day_init.js @@ -1,7 +1,8 @@ var db = connect("192.168.0.1:27017/lastlogin"); //var conn = new Mongo("192.168.0.1"); //var db = conn.getDB("lastlogin"); -var dd = function(x) { if(x==0){x++}; var s = x.toString(); if(s.length > 1){return s;} else { return "0"+s;}} +var dd = function(x) { var s = x.toString(); if(s.length > 1){return s;} else { return "0"+s;}} var now = new Date(); -var col = now.getFullYear() + dd(now.getMonth()) + dd(now.getDate()) +var col = now.getFullYear() + dd(now.getMonth()+1) + dd(now.getDate()) +print("creating index: ll_"col.slice(2)); db.getCollection("ll_"+col.slice(2)).createIndexes([{"date": 1},{"country": 1},{"user": 1,"date": -1}]) \ No newline at end of file