-#!/bin/sh
+#!/bin/bash
#
# Gnucomo system state report
#
# Obtain various system parameters and mail
# the output to the gnucomo server.
-PATH=$PATH:/usr/local/bin
+PATH=$PATH:/srv/local/bin:/usr/local/bin
+HOST=`hostname --fqdn`
+
+# Where to mail gnucomo reports to
GNUCOMO_ADDRESS=gnucomo@`dnsdomainname`
+GNUCOMO_ADDRESS=gnucomo@andromeda.nl
+# For direct delivery on this machine
+DELIVER="gcm_input -h $HOST"
+# For deliver through email
+#DELIVER="mail -s 'Gnucomo report' $GNUCOMO_ADDRESS"
+
OS=`uname`
+
if test $OS = "Linux"; then
if PACKAGER=`which rpm`
PACKAGER='package-debian'
fi
- if [ "x$PACKAGER" == x ]
+ if [[ "x$PACKAGER" == x ]]
then
echo "Packages not available"
fi
- $PACKAGER | mail -s 'Gnucomo package report' $GNUCOMO_ADDRESS
- sleep 10
- df -lPk -x tmpfs | mail -s 'Gnucomo filesystem report' $GNUCOMO_ADDRESS
- sleep 10
- df -lPi -x tmpfs | mail -s 'Gnucomo filesystem report' $GNUCOMO_ADDRESS
+ $PACKAGER | eval $DELIVER
+ sleep 1
+ report_filesystems | eval $DELIVER
elif test $OS = "SunOS"; then
PACKAGER='package-solaris'
- $PACKAGER | mail -s 'Gnucomo package report' $GNUCOMO_ADDRESS
- sleep 10
- df -lk -F ufs | mail -s 'Gnucomo filesystem report' $GNUCOMO_ADDRESS
+ $PACKAGER | eval $DELIVER
+ sleep 1
+ df -lk -F ufs | eval $DELIVER
fi
sleep 10
-systemload | mail -s 'Gnucomo load report' $GNUCOMO_ADDRESS
-sleep 10
-gnucomo_hardware | mail -s 'Gnuicomo hardware report' $GNUCOMO_ADDRESS
+systemload | eval $DELIVER
+#sleep 10
+#gnucomo_hardware | mail -s 'Gnucomo hardware report' $GNUCOMO_ADDRESS
--- /dev/null
+#!/bin/bash
+#
+# Gnucomo filesystems report.
+#
+# Create a parameter report with the usage of all file systems.
+#
+
+
+OS=`uname`
+if test $OS = 'Linux' ; then
+ HOST=`hostname --fqdn`
+elif test $OS = 'SunOS' ; then
+ HOST=`hostname`
+fi
+
+TIME=`date`
+
+echo "<?xml version='1.0'?>"
+echo "<gcmt:message xmlns:gcmt='http://gnucomo.org/transport/'>"
+echo " <gcmt:header>"
+echo " <gcmt:messagetype>XML</gcmt:messagetype>"
+echo " <gcmt:hostname>$HOST</gcmt:hostname>"
+echo " <gcmt:time>$TIME</gcmt:time>"
+echo " </gcmt:header>"
+echo " <gcmt:data>"
+
+echo " <gcmt:parameters gcmt:class='filesystem'>"
+
+df -lPk -x devtmpfs -x tmpfs|tail --lines=+2 | while read DEVICE BLOCKS USED AVAILABLE CAPACITY MOUNTPOINT
+do
+ echo "<gcmt:parameter name='$MOUNTPOINT'>"
+ echo " <gcmt:property name='device'>$DEVICE</gcmt:property>"
+ echo " <gcmt:property name='size'>$BLOCKS</gcmt:property>"
+ echo " <gcmt:property name='used'>$USED</gcmt:property>"
+ echo " <gcmt:property name='available'>$AVAILABLE</gcmt:property>"
+ echo "</gcmt:parameter>"
+done
+
+df -lPi -x devtmpfs -x tmpfs|tail --lines=+2 | while read DEVICE INODES IUSED IFREE CAPACITY MOUNTPOINT
+do
+ echo "<gcmt:parameter name='$MOUNTPOINT'>"
+ echo " <gcmt:property name='device'>$DEVICE</gcmt:property>"
+ echo " <gcmt:property name='Inodes'>$INODES</gcmt:property>"
+ echo " <gcmt:property name='Iused'>$IUSED</gcmt:property>"
+ echo " <gcmt:property name='Ifree'>$IFREE</gcmt:property>"
+ echo "</gcmt:parameter>"
+done
+
+echo " </gcmt:parameters>"
+echo " </gcmt:data>"
+echo "</gcmt:message>"
+#!/usr/bin/python3
#
# Gnucomo repository report.
#
# Make sure we have the repository directory as argument.
if len(sys.argv) != 2:
- print "Usage: ", sys.argv[0], " <directory>"
+ print ("Usage: ", sys.argv[0], " <directory>")
sys.exit(1)
packages = []
for name in glob.glob(os.path.join(sys.argv[1],"*.rpm")):
- pack = rsplit2(os.path.basename(name),".")
+ pack = os.path.basename(name).rsplit(".",2)
if pack[0] != "":
packages.append(pack[0])
# Select the latest package in case of duplicates.
for name in packages:
- p1 = rsplit2(previous,"-")
- p2 = rsplit2(name,"-")
+ p1 = previous.rsplit("-",2)
+ p2 = name.rsplit("-", 2)
if p1[0] == p2[0]:
if compare_versions(p1[1], p2[1]) < 0:
#print "Skipping old package ", previous
latest_packages.append(previous)
for p in latest_packages:
- print p
+ print (p)
-#!/bin/sh
+#!/bin/bash
#
# Gnucomo system load report.
#