0

The backup needs to happen 3 times a day, and only on collections 1 week old or less. Then it needs to delete anything older than a month. This also needs to run 3 times a day. This is what I have so far but I don't think it will do anything close to what I am looking for

#!/bin/bash   

#0 install necessary things
sudo apt-get update
sudo apt-get install unzip
sudo apt-get install libwww-perl libdatetime-perl
sudo apt-get install awscli

#1 extract date

var DATE_DAY= $(date +%Y-%m-%d)

#2 do mongo dump

mongodump  --db test --collection rawData1$(echo $DATE_DAY)

mongodump  --db test --collection rawData2$(echo $DATE_DAY)

mongodump  --db test --collection rawData3$(echo $DATE_DAY)

mongodump  --db test --collection rawData4$(echo $DATE_DAY)

mongodump  --db test --collection rawData5$(echo $DATE_DAY)

#3 zip each one

zip /mongodump/rawData1$(echo $DATE_DAY) rawData1$(echo $DATE_DAY).zip

zip /mongodump/rawData2$(echo $DATE_DAY) rawData2$(echo $DATE_DAY).zip

zip /mongodump/rawData3$(echo $DATE_DAY) rawData3$(echo $DATE_DAY).zip

zip /mongodump/rawData4$(echo $DATE_DAY) rawData4$(echo $DATE_DAY).zip

zip /mongodump/rawData5$(echo $DATE_DAY) rawData5$(echo $DATE_DAY).zip

#4 upload to aws

aws s3 cp /rawData1/ s3://<com.backups>/.zip

aws s3 cp /rawData2/ s3://<com.backups>/.zip

aws s3 cp /rawData3/ s3://<com.backups>/.zip

aws s3 cp /rawData4/ s3://<com.backups>/.zip

aws s3 cp /rawData5/ s3://<com.backups>/.zip

#5 delete the old raw data collections

db.getCollection$(echo $DATE_DAY).drop()

#6 set up in cron tab so this script runs 3 times a day

crontab -e

00   00,08,16 *   *   * /bin/bash/home/myuser/myproject/production/mongoCronScript.sh
c0d3appl3
  • 163
  • 1
  • 1
  • 5
  • You do know you can edit your question, don't you? You didn't have to delete it and re-ask it, thereby removing my help to you. – rojomoke Oct 19 '15 at 13:37
  • @rojomoke I felt the title was not specific enough and would cause confusion to those wishing to help – c0d3appl3 Oct 19 '15 at 13:53
  • you can also edit the title – Alvaro Gutierrez Perez Oct 19 '15 at 14:46
  • Change `var DATE_DAY= $(date +%Y-%m-%d)` into `DATE_DAY=$(date +%Y-%m-%d)` (without keyword var and without a space after the equal-sign). That will help. Changing `$(echo $DATE_DAY)` into `${DATE_DAY}` will not make a difference, but will be savng some subprocesses. You also should consider writing your own vars in lowercase. – Walter A Oct 19 '15 at 14:50
  • @WalterA Thank you :) – c0d3appl3 Oct 19 '15 at 14:57

0 Answers0