<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:refactormycode.com,2007:users384</id>
  <link type="application/atom+xml" href="http://refactormycode.com/users/384" rel="self"/>
  <title>motoplux</title>
  <updated>Sat Nov 24 12:18:57 +0000 2007</updated>
  <entry>
    <id>tag:refactormycode.com,2007:Code162</id>
    <published>2007-11-24T12:18:57+00:00</published>
    <updated>2007-12-14T09:06:19+00:00</updated>
    <title>[Bash] Host checker</title>
    <content type="html">&lt;p&gt;A simple bash script that send a mail if a set Host is down, simple by pinging it in a time interval.&lt;/p&gt;

&lt;pre&gt;#!/bin/bash
# Host checker 0.6
# original idea by no0tic
# modified by motoplux

#Hosts list
HOST[1]=192.168.1.1;
HOSTname[1]=link1;
HOST[2]=192.168.0.1;
HOSTname[2]=link2;
HOST[3]=192.168.0.5;
HOSTname[3]=link3;
HOST[4]=192.168.0.100;
HOSTname[4]=link4;

# number of hosts
NHOST=4;

# email Subject
SUBJECT=&amp;quot;Segnalazione problema Host&amp;quot;
# email To
EMAIL=&amp;quot;miamail@quelloched'&#232;&amp;quot;

for i in $(seq 1 $NHOST); do
	fail[$i]=0;
done	

while [ 1 ]; do
	#do 1 ping to localhost	
	ping -c 1 localhost &amp;gt; /dev/null ;
	if [[ &amp;quot;$?&amp;quot; -eq 0 ]]
	then
		for i in $(seq 1 $NHOST); do
			#do 1 ping to host		
			ping -c 1 ${HOST[$i]} &amp;gt; /dev/null ;
	   		if ! [[ &amp;quot;$?&amp;quot; -eq 0 ]]
				then 
					if [[ &amp;quot;${fail[$i]}&amp;quot; -eq 0 ]] 
						then 			
							#play alarm.wav;
							#display alarm in terminal
							echo &amp;quot;Problemi all'host ${HOST[$i]} alias ${HOSTname[$i]}&amp;quot;;
							# send an email using mail
							echo &amp;quot;Problemi all'host ${HOST[$i]} alias ${HOSTname[$i]}&amp;quot; | mail -s &amp;quot;$SUBJECT&amp;quot; &amp;quot;$EMAIL&amp;quot;
							fail[$i]=1;
					fi
				else
					fail[$i]=0;
			fi
  					
		done			
		
	   #time in seconds before repeating ping		  
	   #sleep 3;
	else
		echo &amp;quot;Problemi di host locale&amp;quot;;
		exit -1;
	fi
done&lt;/pre&gt;</content>
    <author>
      <name>motoplux</name>
      <email>motoplux@gmail.com</email>
    </author>
    <link type="text/html" href="http://refactormycode.com/codes/162-host-checker" rel="alternate"/>
  </entry>
</feed>
