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
add switch --quiet
to command line, something like mongo --quiet --eval your-statement
to ignore the string you got.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With