I have the following script which I am using to curl against a file which as few URLs-
Code:
#!/bin/sh
RESULT=0
# read all input from the specified file
exec <"$1"
while true
do
read SERVICE
if [ "$SERVICE" = "" ]
then
# no more services
exit $RESULT
fi
read URL
if [ "$URL" = "" ]
then
# error in service list file
echo "ERROR: no URL for service $SERVICE" >&2
exit 2
fi
echo "Testing $SERVICE: "
# adjust the options to suit your needs
curl -I $URL
if [ $? -eq 0 ]
then
echo "Success"
else
echo "Fail"
RESULT=1
fi
done
From the curl command I get a text in the html page which says ALIVE, I want to alert(email me) if the text does not contain the word ALIVE.
if [ $# -ne 2 ] ; then
echo "usage: $0 <word> <website>"
fi
curl $2 | grep_output="$(grep $1 $2)"
LOOP=1
while [ $LOOP -eq 1 ]; do
if [ -z "$grep_output" ]; then
let LOOP = 1
else
echo "WARNING!" | mail -s (subject) -c (your e-mail address)
let LOOP=0
fi
done
This should work for what you're describing, but try it first, I'm somewhat new, and not quite sure if this will work myself
However, if this does work, then you can search for any word you want, not just "ALIVE"
Last edited by Puddles187; 04-10-2011 at 09:39 AM..
Reason: Added functionality
Puddles, your code is not gonna work for several reasons:
Code:
curl $2 | grep_output="$(grep $1 $2)"
You're piping the output of curl into grep_output, which is not a command, and shell won't know what to do with it.
Then you end up in an infinite loop if grep_output is empty.
Code:
LOOP=1
while [ $LOOP -eq 1 ]; do
if [ -z "$grep_output" ]; then
let LOOP = 1
How's this?
Code:
#!/bin/sh
while read SERVICE URL ; do
[[ "$URL" = "" ]] && echo "ERROR: no URL for service $SERVICE" >&2 && exit 2
echo "Testing $SERVICE: "
# adjust the options to suit your needs
curl -I $URL | grep ALIVE
if [ $? -eq 0 ] ;then
echo "ALIVE found"
else
echo "Nobody alive" | mail -s subject me@somedomain.dom
fi
done < $1
#!/bin/sh
OP=0
exec <"/fs1/ainuser/ain/user-1/list"
while true
do
read APP
if [ "$APP" = "" ]
then
exit $OP
fi
read URL
if [ "$URL" = "" ]
then
echo "ERROR no URL defined for $APP" >&2
exit 2
fi
sleep 3
echo "Checking $APP: "
curl $URL |grep -q -i alive
x=$?
if [ ${x} -eq 0 ]
then
echo "App is alive : `date`"
else
echo "$APP is down in env-1" | mail -s "$APP is down in env-1" testalert@email.com
fi
done
Now I want to test the viability of the URL atleast 6 times with 3 seconds intervals and if it fails 4 times out of 6 then send the email.
I am really struggling on this one.. please help!!
Thanks,
Jack.
---------- Post updated at 04:07 PM ---------- Previous update was at 02:32 PM ----------
I'm new to utilities like socat and netcat and I'm not clear if they will do what I need.
I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes.
I'm using Cygwin bash on Windows 10.
My... (3 Replies)
Hello all,
I am facing a weird issue while executing a code below -
#!/bin/bash
cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset
sh UKBA_publish.sh UKBA 28082015 3
if
then
echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below.
#masterscript.sh
./callingscript.sh
echo $fileExist
#callingscript.sh
echo "The script is called"... (2 Replies)
I am using blow script :--
#!/bin/bash
FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not
if
then
# echo "process found"
exit 0;
else
echo "process not found"
exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Hi guys
I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file.
#!/bin/sh
echo " $2 $3 $4 $5 $6 $7
isql -w400 -U$2 -S$5 -P$3 << xxx
use $4
go
print"**Changes to the table... (0 Replies)