I am stuck on this local script and could use some fresh eyes on this code. PING IS NOT AN OPTION'
Server when it's borked will ping,
but be unresponsive, so I ask the Webserver what software it's using with
which returns "Microsoft-IIS/7.5" and works even if the server is unresponsive through usual means.
This runs under my cron every minute.
There's only 1 problem, server has been up/down for awhile and I NEVER get an email.
is an option, but I have zero experience with how to handle the response from the server. or
Whatever method I use to check for responsiveness, I have to get an email as the desired email address.
local: GNU bash, version 4.1.10(1)-release (i586-suse-linux-gnu)
Remote: Windows Server 2008 R2 (64bit) with IIS.
Well, it's obvious why you never got E-mail 'cause you are actually checking the exit status of echo command which is giving 0 and the first if block gets executed.
Plus I do not understand why you used extra done and fi. Anyways, below is the code I wouls used for the same purpose (I have not tested it though ). See if this works for you:
"echo always returns zero" is the rule I was looking for, when I couldn't even think of it!
I have implemented your suggested code, but /home/jj/Documents/cirrhus9/Accounts/Norveld/3WeekTest/norveld.test had an apache entry. A typo probably prevented the email from being sent.
The extra "fi" was probably a bad hack at some ! logic snippet I had since removed... I dunno, I tend to "hack now, debug during-run" (complete with "set -x" statement.)
Since this post, I reviewed Chapter 6 of "Linux Shell Script Programming" by Todd Meadors - Copyright 2003) where it illustrated a clue...
on Page 215
I will change some detail in your code and watch the inbox!
Thanks for the code and have a Prosperous New Year.
Edit:
Changed temp=$(curl -Is http://xxx.xxx.xx.xx | \grep -E '^Server' | cut -c9-) for 7 passes and no email. (I used the wrong IP)...
The correction idea in post #2 contains a basic scripting error:
Quote:
if [ $temp='Microsoft-IIS/7.5' ] ; then
There are no spaces either side of the equals sign. This is not a syntax error BUT the "if" will always return "true" regardless of the value of $temp. Also get into he habit of putting string variables in quotes.
Try:
However, this will still only work if the value of $temp is the exact matching string. The sample posted does not give this fact away.
These 2 Users Gave Thanks to methyl For This Post:
Well I tested the script neither before nor after the modifications!! It's just the long time C programming and shell scripting which drove me to the conclusion!!
I haven't really tested what apache (or probably IIS since you are using Windows 2008 R2) web server returning to the curl query. I just read your post and and modified the your script just enough to give you an idea!!!
Hmm. The Microsoft output contains a carriage-return character which messes up your string comparison (carriage-return = ctrl/M = ^M = \r in some programs but not I'm afraid in raw Shell). The "\r" is just a display but not the actual character.
To get rid of the carriage-return, insert this "tr" in your pipeline at the appropriate place (after "curl"). The "tr" program does recognise "\r" as meaning carriage-return.
Yes the space either side of the equals sign does make an important difference. As does the double quotes round the string variable. The syntax has to be exact for the "if" statement to work properly.
Hello,
I am not efficient in script, so need some help to create a small script.
I have file, which have list of all IPs. All those IPs can be connected from a gateway server with "sudo ssh 10.63.xx.xx". We do not have reverse lookup for IPs, so I want script to login to each server, return... (1 Reply)
Hello,
I have a requirement to check the tcp network connectivity between server it's running on and the list of host's and ports combination.
i have written the below code but it doesn't work, but when i execute the nc command outside the script it works fine.
please help me where i am... (8 Replies)
Hello EveryOne,
I am new to *ix. some could help to write a script.
Problem :- Have to ssh to so many client and check port or filesystem usage, so thinking to automate using script.
What i Need:- when i run script on my Launchpad server, it should
Should ask and SSH to user provided... (3 Replies)
Hi Rockers,
I hope u r dng good one. I have a one question is in unix with informatica . I need a unix script to check whether particular file exists in the folder , If it means we have a informatica server , so we can start the informatica server by accessing that file. Every week we have... (0 Replies)
Hello,
Little new to unix scripting. I need to create a script that will do the following.
Check in a directory for a file that will be present between 19:00 and 23:00. If the file is present a e-mail then needs to be sent to myself confirming. I did write something basic...as below...
... (3 Replies)
Hi everybody,
Is there a way to do a stat of files on a ftp server? I have a database which is populated by the contents of these files. I want to setup a crontab to check if there has been an update to these files. If the file has been updated I will download it and then update my database.
... (2 Replies)
I want to write a unix shell script that will check if a process (say debu) is running in the server or not. If no , then send a mail to the corresponding person to start the process??? (2 Replies)
Hi,
I am trying to write a script, which queries a db to get the names of processes, stores it in a file and then checks if that process is running on a remote server. However I am not getting it right, could anyone help me out.
#!/bin/sh
echo "select Address from Device where Cust =... (5 Replies)