1
0
mirror of https://github.com/librenms/librenms-agent.git synced 2024-05-09 09:54:52 +00:00
Files
librenms-librenms-agent/snmp/osupdate

100 lines
3.0 KiB
Plaintext
Raw Normal View History

2016-09-10 19:08:03 +03:00
#!/usr/bin/env bash
################################################################
# copy this script to /etc/snmp/ and make it executable: #
# chmod +x /etc/snmp/osupdate #
# ------------------------------------------------------------ #
# edit your snmpd.conf and include: #
# extend osupdate /etc/snmp/osupdate #
#--------------------------------------------------------------#
# restart snmpd and activate the app for desired host #
#--------------------------------------------------------------#
# please make sure you have the path/binaries below #
################################################################
BIN_WC='/usr/bin/env wc'
BIN_GREP='/usr/bin/env grep'
CMD_GREP='-c'
CMD_WC='-l'
BIN_ZYPPER='/usr/bin/env zypper'
CMD_ZYPPER='-q lu'
BIN_YUM='/usr/bin/env yum'
CMD_YUM='-q check-update'
BIN_DNF='/usr/bin/env dnf'
2016-12-07 22:11:48 -05:00
CMD_DNF='-q check-update'
BIN_APT='/usr/bin/env apt-get'
2016-10-03 21:27:56 +03:00
CMD_APT='-qq -s upgrade'
BIN_PACMAN='/usr/bin/env pacman'
CMD_PACMAN='-Sup'
BIN_PKG='/usr/sbin/pkg'
CMD_PKG=' audit -q -F'
BIN_APK='/sbin/apk'
CMD_APK=' version'
################################################################
# Don't change anything unless you know what are you doing #
################################################################
if command -v zypper &>/dev/null ; then
# OpenSUSE
# shellcheck disable=SC2086
UPDATES=$($BIN_ZYPPER $CMD_ZYPPER | $BIN_WC $CMD_WC)
if [ "$UPDATES" -ge 2 ]; then
echo $(($UPDATES-2));
else
echo "0";
fi
elif command -v dnf &>/dev/null ; then
# Fedora
# shellcheck disable=SC2086
UPDATES=$($BIN_DNF $CMD_DNF | $BIN_WC $CMD_WC)
if [ "$UPDATES" -ge 1 ]; then
echo $(($UPDATES-1));
else
echo "0";
fi
elif command -v pacman &>/dev/null ; then
# Arch
UPDATES=$($BIN_PACMAN $CMD_PACMAN | $BIN_WC $CMD_WC)
if [ "$UPDATES" -ge 1 ]; then
echo $(($UPDATES-1));
else
echo "0";
fi
elif command -v yum &>/dev/null ; then
# CentOS / Redhat
# shellcheck disable=SC2086
UPDATES=$($BIN_YUM $CMD_YUM | $BIN_WC $CMD_WC)
if [ "$UPDATES" -ge 1 ]; then
echo $(($UPDATES-1));
else
echo "0";
fi
elif command -v apt-get &>/dev/null ; then
# Debian / Devuan / Ubuntu
# shellcheck disable=SC2086
UPDATES=$($BIN_APT $CMD_APT | $BIN_GREP $CMD_GREP 'Inst')
if [ "$UPDATES" -ge 1 ]; then
echo "$UPDATES";
else
echo "0";
fi
elif command -v pkg &>/dev/null ; then
# FreeBSD
# shellcheck disable=SC2086
UPDATES=$($BIN_PKG $CMD_PKG | $BIN_WC $CMD_WC)
if [ "$UPDATES" -ge 1 ]; then
echo "$UPDATES";
else
echo "0";
fi
elif command -v apk &>/dev/null ; then
# Alpine
# shellcheck disable=SC2086
UPDATES=$($BIN_APK $CMD_APK | $BIN_WC $CMD_WC)
if [ "$UPDATES" -ge 2 ]; then
echo $(($UPDATES-1));
else
echo "0";
fi
else
echo "0";
fi