Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Linux Bash Script And Mongo

I have a bash script to check a MongoDB database and send an email if certain conditions are met.

Mongo give you the --eval option to return a value. But instead to have something like:

ALERT=true|false

I have:

ALERT= MongoDB shell version: 2.6.1

 #!/bin/bash
 echo "WatchDog Jerry"

 ALERT=$(mongo ob --eval 'var now = new Date().getTime(), alert = false; db.sess.find().forEach(function(sess){ var delay = 1 * 60 * 1000; var ts = sess.ts.toNumber(); if((now - ts) > delay) alert = true;});  print(alert);')

 echo "alert: $ALERT"

 if [ "$ALERT" == "true" ]; then
     mail -s "ALARM - WatchDog Jerry" [email protected]  < /root/watchdog/email
 fi

Can someone help me? What I need is to assign the js variable 'alarm' to the bash variable ALARM

like image 555
Marco C Avatar asked Mar 18 '23 17:03

Marco C


1 Answers

add switch --quiet to command line, something like mongo --quiet --eval your-statement to ignore the string you got.

like image 86
Wizard Avatar answered Mar 27 '23 22:03

Wizard