chore: initial import from KNEL/PFVCluster@041d311 [#769]
Split per O&M lane work order. Full history: KNEL/PFVCluster. shellcheck debt fixed in librenms-agent (quoting, arithmetic, backticks); fixes upstream ntp-server.sh bug: input_wakeups reported PACKETSENDFAILURES instead of INPUTWAKEUPS. mysql.sh (PHP-in-.sh) exempt per house rule. https://projects.knownelement.com/issues/769#note-4152
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
#!/usr/bin/env bash
|
||||
################################################################
|
||||
# copy this script to /etc/snmp/ and make it executable: #
|
||||
# chmod +x /etc/snmp/os-updates.sh #
|
||||
# ------------------------------------------------------------ #
|
||||
# edit your snmpd.conf and include: #
|
||||
# extend osupdate /opt/os-updates.sh #
|
||||
#--------------------------------------------------------------#
|
||||
# restart snmpd and activate the app for desired host #
|
||||
#--------------------------------------------------------------#
|
||||
# please make sure you have the path/binaries below #
|
||||
################################################################
|
||||
BIN_WC='/usr/bin/wc'
|
||||
BIN_GREP='/bin/grep'
|
||||
CMD_GREP='-c'
|
||||
CMD_WC='-l'
|
||||
BIN_ZYPPER='/usr/bin/zypper'
|
||||
CMD_ZYPPER='-q lu'
|
||||
BIN_YUM='/usr/bin/yum'
|
||||
CMD_YUM='-q check-update'
|
||||
BIN_DNF='/usr/bin/dnf'
|
||||
CMD_DNF='-q check-update'
|
||||
BIN_APT='/usr/bin/apt-get'
|
||||
CMD_APT='-qq -s upgrade'
|
||||
BIN_PACMAN='/usr/bin/pacman'
|
||||
CMD_PACMAN='-Sup'
|
||||
|
||||
################################################################
|
||||
# Don't change anything unless you know what are you doing #
|
||||
################################################################
|
||||
if [ -f "$BIN_ZYPPER" ]; then
|
||||
# OpenSUSE
|
||||
# shellcheck disable=SC2086 # CMD_* are intentionally-split option strings
|
||||
UPDATES=$("$BIN_ZYPPER" $CMD_ZYPPER | "$BIN_WC" $CMD_WC)
|
||||
if [ "$UPDATES" -ge 2 ]; then
|
||||
echo $((UPDATES-2));
|
||||
else
|
||||
echo "0";
|
||||
fi
|
||||
elif [ -f "$BIN_DNF" ]; then
|
||||
# Fedora
|
||||
# shellcheck disable=SC2086 # CMD_* are intentionally-split option strings
|
||||
UPDATES=$("$BIN_DNF" $CMD_DNF | "$BIN_WC" $CMD_WC)
|
||||
if [ "$UPDATES" -ge 1 ]; then
|
||||
echo $((UPDATES-1));
|
||||
else
|
||||
echo "0";
|
||||
fi
|
||||
elif [ -f "$BIN_PACMAN" ]; then
|
||||
# Arch
|
||||
# shellcheck disable=SC2086 # CMD_* are intentionally-split option strings
|
||||
UPDATES=$("$BIN_PACMAN" $CMD_PACMAN | "$BIN_WC" $CMD_WC)
|
||||
if [ "$UPDATES" -ge 1 ]; then
|
||||
echo $((UPDATES-1));
|
||||
else
|
||||
echo "0";
|
||||
fi
|
||||
elif [ -f "$BIN_YUM" ]; then
|
||||
# CentOS / Redhat
|
||||
# shellcheck disable=SC2086 # CMD_* are intentionally-split option strings
|
||||
UPDATES=$("$BIN_YUM" $CMD_YUM | "$BIN_WC" $CMD_WC)
|
||||
if [ "$UPDATES" -ge 1 ]; then
|
||||
echo $((UPDATES-1));
|
||||
else
|
||||
echo "0";
|
||||
fi
|
||||
elif [ -f "$BIN_APT" ]; then
|
||||
# Debian / Devuan / Ubuntu
|
||||
# shellcheck disable=SC2086 # CMD_* are intentionally-split option strings
|
||||
UPDATES=$("$BIN_APT" $CMD_APT | "$BIN_GREP" $CMD_GREP 'Inst')
|
||||
if [ "$UPDATES" -ge 1 ]; then
|
||||
echo "$UPDATES";
|
||||
else
|
||||
echo "0";
|
||||
fi
|
||||
else
|
||||
echo "0";
|
||||
fi
|
||||
Reference in New Issue
Block a user