Hi - I found a script on the web to check vmfs volumes on ESX servers and create an html file for the output. Sometimes the script works fine, but sometimes it seems to break at the "vdf -h -P" line. More often than not, when I run it myself it works - but when run from chron it usually fails. If you have any ideas on what I've done wrong, thanks in advance.
Here's the script:
######## vmfs_check.sh ##########
#!/bin/bash
LOGLOC="/var/log/"
LOG="${LOGLOC}vdf.html"
MYDATE=$(date +%d-%b-%Y)
VMFSYELLOW=85
VMFSRED=90
cat /dev/null > "${LOG}"
echo "<html>" >> "${LOG}"
echo "<head>" >> "${LOG}"
echo "<style>" >> "${LOG}"
echo "body {margin: 10px; width: 600px; font-family:arial; font-size: 11px;}" >> "${LOG}"
echo "div#footer {font-size: 9px;}" >> "${LOG}"
echo "</style>" >> "${LOG}"
echo "</head>" >> "${LOG}"
echo "<body>" >> "${LOG}"
echo "<table cellspacing="0" cellpadding="2" border="1"; style='border-collapse:collapse; background-color: white; color: black'>" >> "${LOG}"
echo "<tr><th colspan='5'; align='left'; style='background-color: rgb(179,179,179); color: black'>" >> "${LOG}"
echo "VMFS Disk Usage - $MYDATE</th></tr>" >> "${LOG}"
echo "" >> "${LOG}"
echo "<tr>" >> "${LOG}"
echo "<td width=200><b>VMFS Volume</b></td><td><b>Disk Size</b></td><td><b>Used</b></td><td><b>Available</b></td><td><b>Percentage</b></td>" >> "${LOG}"
echo "</tr>" >> "${LOG}"
vdf -h -P | grep -E '^/vmfs/volumes/' | awk '{ print $2 " " $3 " " $4 " " $5 " " $6 " " $7 }' | while read output ; do
DISKSIZE=$(echo $output | awk '{ print $1 }' )
DISKUSED=$(echo $output | awk '{ print $2 }' )
DISKAVAILABLE=$(echo $output | awk '{ print $3 }' )
PERCENTINUSE=$(echo $output | awk '{ print $4 }' )
VOLNAME=$(echo $output | awk '{ print $5 " " $6}' )
CUTPERC=$(echo $PERCENTINUSE | cut -d'%' -f1 )
WARNING="white"
if [ $CUTPERC -ge $VMFSYELLOW ] ; then
WARNING="yellow"
fi
if [ $CUTPERC -ge $VMFSRED ] ; then
WARNING="red"
fi
echo "<tr><td style='background-color: ${WARNING}'>$VOLNAME</td>" >> "${LOG}"
echo "<td bgcolor='${WARNING}'>$DISKSIZE</td>" >> "${LOG}"
echo "<td bgcolor='${WARNING}'>$DISKUSED</td>" >> "${LOG}"
echo "<td bgcolor='${WARNING}'>$DISKAVAILABLE</td>" >> "${LOG}"
echo "<td bgcolor='${WARNING}'>$PERCENTINUSE</td></tr>" >> "${LOG}"
done
echo "</table>" >> "${LOG}"
echo "<div id='footer'> </div>" >> "${LOG}"
echo "</body>" >> "${LOG}"
echo "</html>" >> "${LOG}"
###########################
Here's the output I get when things break:
<html>
<head>
<style>
body {margin: 10px; width: 600px; font-family:arial; font-size: 11px;}
div#footer {font-size: 9px;}
</style>
</head>
<body>
<table cellspacing=0 cellpadding=2 border=1; style='border-collapse:collapse; background-color: white; color: black'>
<tr><th colspan='5'; align='left'; style='background-color: rgb(179,179,179); color: black'>
VMFS Disk Usage - 13-May-2009</th></tr>
<tr>
<td width=200><b>VMFS Volume</b></td><td><b>Disk Size</b></td><td><b>Used</b></td><td><b>Available</b></td><td><b>Percentage</b></td>
</tr>
</table>
<div id='footer'> </div>
</body>
</html>
###############################
Here's the output I get when all goes well:
<html>
<head>
<style>
body {margin: 10px; width: 600px; font-family:arial; font-size: 11px;}
div#footer {font-size: 9px;}
</style>
</head>
<body>
<table cellspacing=0 cellpadding=2 border=1; style='border-collapse:collapse; background-color: white; color: black'>
<tr><th colspan='5'; align='left'; style='background-color: rgb(179,179,179); color: black'>
VMFS Disk Usage - 14-May-2009</th></tr>
<tr>
<td width=200><b>VMFS Volume</b></td><td><b>Disk Size</b></td><td><b>Used</b></td><td><b>Available</b></td><td><b>Percentage</b></td>
</tr>
<tr><td style=background-color: white>/vmfs/volumes/storage1 (1)</td>
<td bgcolor='white'>60G</td>
<td bgcolor='white'>11G</td>
<td bgcolor='white'>48G</td>
<td bgcolor='white'>19%</td></tr>
<tr><td style=background-color: red>/vmfs/volumes/AXOLH VMFS1</td>
<td bgcolor='red'>399G</td>
<td bgcolor='red'>362G</td>
<td bgcolor='red'>37G</td>
<td bgcolor='red'>90%</td></tr>
<tr><td style=background-color: yellow>/vmfs/volumes/AXOLH VMFS3</td>
<td bgcolor='yellow'>399G</td>
<td bgcolor='yellow'>345G</td>
<td bgcolor='yellow'>54G</td>
<td bgcolor='yellow'>86%</td></tr>
<tr><td style=background-color: white>/vmfs/volumes/AXOLH VMFS2</td>
<td bgcolor='white'>399G</td>
<td bgcolor='white'>332G</td>
<td bgcolor='white'>67G</td>
<td bgcolor='white'>83%</td></tr>
<tr><td style=background-color: white>/vmfs/volumes/AXOLH VMFS0</td>
<td bgcolor='white'>249G</td>
<td bgcolor='white'>72G</td>
<td bgcolor='white'>177G</td>
<td bgcolor='white'>29%</td></tr>
<tr><td style=background-color: white>/vmfs/volumes/AXOLH VMFS4</td>
<td bgcolor='white'>399G</td>
<td bgcolor='white'>339G</td>
<td bgcolor='white'>60G</td>
<td bgcolor='white'>84%</td></tr>
<tr><td style=background-color: yellow>/vmfs/volumes/AXOLH VMFS5</td>
<td bgcolor='yellow'>399G</td>
<td bgcolor='yellow'>344G</td>
<td bgcolor='yellow'>55G</td>
<td bgcolor='yellow'>86%</td></tr>
<tr><td style=background-color: white>/vmfs/volumes/AXOBU1 -</td>
<td bgcolor='white'>1.8T</td>
<td bgcolor='white'>372G</td>
<td bgcolor='white'>1.5T</td>
<td bgcolor='white'>20%</td></tr>
<tr><td style=background-color: white>/vmfs/volumes/AXOIT1 -</td>
<td bgcolor='white'>59G</td>
<td bgcolor='white'>42G</td>
<td bgcolor='white'>17G</td>
<td bgcolor='white'>70%</td></tr>
</table>
<div id=footer> </div>
</body>
</html>
thanks again