#!/bin/bash # ====================================================================== # # Icinga/ Nagios Check # ABOUT # # ---------------------------------------------------------------------- # 2023-10-23 v1.0 <axel.hahn@unibe.ch> initial version # 2023-10-25 v1.1 <axel.hahn@unibe.ch> show disks, show installed versions (WIP) # 2023-12-22 v1.2 <axel.hahn@unibe.ch> show help # 2025-02-10 v1.3 <axel.hahn@unibe.ch> harden sourcing files # ====================================================================== # shellcheck source=/dev/null . "$( dirname "$0" )/inc_pluginfunctions" || exit 1 export self_APPVERSION=1.3 . /etc/icingaclient/client.cfg 2>/dev/null # show versions of these tools. # number 2 or 3 stands for position of version in the output # tools2="curl restic php python" # tools3="rsync" # ---------------------------------------------------------------------- # FUNCTIONS # ---------------------------------------------------------------------- # show help text function showHelp(){ local _self; _self="$( basename "$0" )" cat <<EOF $( ph.showImlHelpHeader ) About ... shows a short summary for the system: * operating system * cpu * ram * diskspace * checked services SYNTAX: $_self [-h] OPTIONS: -h, --help this help EOF } function _section(){ echo ">>>>>>>>>> $*" } # ---------------------------------------------------------------------- # MAIN # ---------------------------------------------------------------------- # --- check param -h while [[ "$#" -gt 0 ]]; do case $1 in -h|--help) showHelp; exit 0;; *) echo "ERROR: Unknown parameter: $1"; showHelp; exit 1; esac; done _iCpu=$( grep -c "processor" /proc/cpuinfo ) _sCpuModel=$(grep "model name" /proc/cpuinfo | sort -u ) _iMem=$( grep "MemTotal:" /proc/meminfo | awk '{ print $2 }' ) _sMem=$( grep "MemTotal:" /proc/meminfo | awk '{ print $2 " " $3}' ) _sSwap=$( grep "SwapTotal:" /proc/meminfo | awk '{ print $2 " " $3}' ) # ----- status line echo -n $( ph.getOS; ph.getOSMajor ) echo -n " / ${_iCpu} cpu" echo -n " / $(ph.toUnit "${_iMem}K" "G" 3) GB ram" echo echo # ----- body text _section "CPU: $_iCpu" echo "${_sCpuModel}" echo _section "Memory" echo "RAM total ${_sMem}" echo "Swap ${_sSwap}" echo _section "Disks" out=$(df -h ) echo "$out" | head -1 for mydev in $( echo "$out" | grep "^/" | cut -f 1 -d " " | sort -u ) do echo "$out" | grep "^$mydev" | head -1 done echo if [ -d "${dir_checks}" ]; then _section "Services" cd "${dir_checks}" ls -1 Service-* | cut -f 2- -d "-" cd - >/dev/null 2>&1 echo fi # hmmmm - too complicated... # _section "Tools" # ( # for mytool in $tools2 # do # ( # $mytool --version 2>/dev/null \ # || $mytool version 2>/dev/null # ) | head -1 | awk '{ print $1 " " $2 }' # done # for mytool in $tools3 # do # ( # $mytool --version 2>/dev/null \ # || $mytool version 2>/dev/null # ) | head -1 | awk '{ print $1 " " $3 }' # done # ) | sort # echo # _section "network" # ip -o a # echo # cat /etc/resolv.conf | grep "^[a-z0-9]" # ----------------------------------------------------------------------