<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<link rel="stylesheet" href="default.css" media="all" title="Default Styles">
</head>
<body>
<a name="top" id="top"></a>
<hr>

<table summary="Navigation header" width="90%" border="0" align="center">

	<tr><th colspan="3" align="center">MLUG Bash Scripting Workshop 25/04/08</th></tr>
	<tr>
		<td width="20%" align="left"><a accesskey="p" href="15-logentries.html">Prev</a></td>
		<th width="60%" align="center"><a href="00-index.html" accesskey="i" >Index</a></a></th>
		<td width="20%" align="right"><a accesskey="n" href="17-flowcontol.html">Next</a></td>
	</tr>
</table>
<hr>

<h1>Autoshtdn: the complete script</h1>

<p>Below is the complete autoshtdn script. you can also get a copy <a href="scripts/other_scripts/autoshtdn" name="link to autoshtdn">here</a>.</p>

<pre>

#!/bin/bash
#################################################################################
# /etc/cron.15min/autoshutdn RM20070202 
# 
# I run this script every 15 minutes on 192.168.1.4 (box) which is a server
# for printer/scanner shares, backups, and recording/viewing of dvb-t 
# programs. It checks to see if two work stations are up on the lan and then
# if there are any dvb recording (at) jobs pending. If rick and leila are 
# shutdown and there are no jobs in /var/spool/atjobs on box then "shutdown -h now"
# is run. Else the script will be run repeatedly as as a cron job as long as the 
# three conditions are not met.
#
# With Slackware, in order to run every 15 minutes you'll need to create a directory
# /etc/cron.15min, copy this script into /etc/cron.15min and then add the following
# lines to /var/spoolcron/crontabs/root:
#
#		 # Run 15 minute cron jobs 24 X 7:
#		 0,15,30,45 * * * * /etc/cron.15min/autoshtdn
#
# You could probably put the executable script anywhere as long as the path in the
# second line above points to the correct location.
#
#################################################################################
  
# Create some variables
IP1=192.168.1.2 # rick
IP2=192.168.1.3 # leila
QUDIR=/var/spool/atjobs # on box

# start a new log by redirecting with >
echo -e "Autoshtdn up, new log starts `date`" > /var/log/autoshutdn

# Test if Rick is up.
# Ping exits with a "1" if it does not recieve a reply from target.
ping -c1 $IP1 > /dev/null 2>&1

	if [ $? -eq 0 ];then
		TEST1=2
	else
		TEST1=1
	fi

# Test if Leila is up.
# Ping exits with a "1" if it does not recieve a reply from target.
ping -c1 $IP2 > /dev/null 2>&1

	if [ $? -eq 0 ] ; then
		TEST2=2
	else
		TEST2=1
	fi

# Test to see if there are any timeshifting jobs in /var/spool/atjobs
# and assign value to the value.
if [ -e /var/spool/atjobs/* ] ; then
  TEST3=2
else
  TEST3=1
fi          

# Now if we have "1", "1", "1", we will shut down the server.
# Log entries will also be "echoed" to /var/log/autoshutdown.
if [ $TEST1 -eq 1 -a $TEST2 -eq 1 -a $TEST3 -eq 1 ] ; then
	echo -e "\nran autoshutdn script `date +%d-%b-%R`" >> /var/log/autoshutdn
	echo -e "rick=$TEST1, leila=$TEST2, box=$TEST3, shutting down now." >> /var/log/autoshutdn
	shutdown -h now
else
	echo -e "\nran autoshutdn script `date `" >> /var/log/autoshutdn
	echo -e "rick=$TEST1, leila=$TEST2, box=$TEST3, no shutdown now" >> /var/log/autoshutdn
fi

# End of script

</pre>



<hr>
<div align="center"><a accesskey="T" href="#top">Top</a></div>
</body>





