New script to report file systems
authorArjen Baart <arjen@andromeda.nl>
Tue, 3 Nov 2020 07:19:59 +0000 (08:19 +0100)
committerArjen Baart <arjen@andromeda.nl>
Tue, 3 Nov 2020 07:19:59 +0000 (08:19 +0100)
scripts/gnucomo_report
scripts/report_filesystems [new file with mode: 0755]
scripts/report_repository.py [changed mode: 0644->0755]
scripts/systemload

index bfc1ee0..9157c8d 100755 (executable)
@@ -1,14 +1,24 @@
-#!/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`
@@ -19,28 +29,26 @@ if test $OS = "Linux"; then
       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
diff --git a/scripts/report_filesystems b/scripts/report_filesystems
new file mode 100755 (executable)
index 0000000..630d3a7
--- /dev/null
@@ -0,0 +1,51 @@
+#!/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>"
old mode 100644 (file)
new mode 100755 (executable)
index ae39f15..3ec2e71
@@ -1,3 +1,4 @@
+#!/usr/bin/python3
 #
 # Gnucomo repository report.
 #
@@ -99,12 +100,12 @@ def rsplit2(src, sep):
 # 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])
 
@@ -116,8 +117,8 @@ previous = ""
 # 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
@@ -133,4 +134,4 @@ for name in packages:
 latest_packages.append(previous)
 
 for p in latest_packages:
-   print p
+   print (p)
index dba2ca4..8a5fef6 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 #
 # Gnucomo system load report.
 #