-
Hahn Axel (hahn) authoredHahn Axel (hahn) authored
about 3.17 KiB
#!/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]"
# ----------------------------------------------------------------------