2016-09-10 19:08:03 +03:00
|
|
|
#!/usr/bin/env bash
|
2016-07-29 20:22:35 +03:00
|
|
|
################################################################
|
2016-09-25 16:28:37 +03:00
|
|
|
# copy this script to /etc/snmp/ and make it executable: #
|
2018-10-17 12:28:39 -04:00
|
|
|
# chmod +x /etc/snmp/osupdate #
|
2016-09-25 16:28:37 +03:00
|
|
|
# ------------------------------------------------------------ #
|
|
|
|
# edit your snmpd.conf and include: #
|
2018-10-17 12:28:39 -04:00
|
|
|
# extend osupdate /etc/snmp/osupdate #
|
2016-09-25 16:28:37 +03:00
|
|
|
#--------------------------------------------------------------#
|
2016-07-29 20:22:35 +03:00
|
|
|
# restart snmpd and activate the app for desired host #
|
2016-09-25 16:28:37 +03:00
|
|
|
#--------------------------------------------------------------#
|
|
|
|
# please make sure you have the path/binaries below #
|
2018-10-17 12:28:39 -04:00
|
|
|
################################################################
|
|
|
|
BIN_WC='/usr/bin/env wc'
|
|
|
|
BIN_GREP='/usr/bin/env grep'
|
2017-06-28 22:36:26 +02:00
|
|
|
CMD_GREP='-c'
|
2016-07-29 20:22:35 +03:00
|
|
|
CMD_WC='-l'
|
2018-10-17 12:28:39 -04:00
|
|
|
BIN_ZYPPER='/usr/bin/env zypper'
|
2017-10-10 08:02:05 +13:00
|
|
|
CMD_ZYPPER='-q lu'
|
2018-10-17 12:28:39 -04:00
|
|
|
BIN_YUM='/usr/bin/env yum'
|
2016-08-09 12:50:23 -05:00
|
|
|
CMD_YUM='-q check-update'
|
2018-10-17 12:28:39 -04:00
|
|
|
BIN_DNF='/usr/bin/env dnf'
|
2016-12-07 22:11:48 -05:00
|
|
|
CMD_DNF='-q check-update'
|
2018-10-17 12:28:39 -04:00
|
|
|
BIN_APT='/usr/bin/env apt-get'
|
2016-10-03 21:27:56 +03:00
|
|
|
CMD_APT='-qq -s upgrade'
|
2018-10-17 12:28:39 -04:00
|
|
|
BIN_PACMAN='/usr/bin/env pacman'
|
2016-08-09 12:50:23 -05:00
|
|
|
CMD_PACMAN='-Sup'
|
2016-07-29 20:22:35 +03:00
|
|
|
|
2016-09-25 16:28:37 +03:00
|
|
|
################################################################
|
|
|
|
# Don't change anything unless you know what are you doing #
|
|
|
|
################################################################
|
2018-10-25 07:17:42 -04:00
|
|
|
if command -v zypper &>/dev/null ; then
|
2017-10-10 08:02:05 +13:00
|
|
|
# OpenSUSE
|
|
|
|
UPDATES=`$BIN_ZYPPER $CMD_ZYPPER | $BIN_WC $CMD_WC`
|
2018-03-23 11:24:02 -05:00
|
|
|
if [ $UPDATES -ge 2 ]; then
|
2017-10-10 08:02:05 +13:00
|
|
|
echo $(($UPDATES-2));
|
|
|
|
else
|
|
|
|
echo "0";
|
|
|
|
fi
|
2018-10-25 07:17:42 -04:00
|
|
|
elif command -v dnf &>/dev/null ; then
|
2017-10-10 08:02:05 +13:00
|
|
|
# Fedora
|
|
|
|
UPDATES=`$BIN_DNF $CMD_DNF | $BIN_WC $CMD_WC`
|
2018-03-23 11:24:02 -05:00
|
|
|
if [ $UPDATES -ge 1 ]; then
|
2017-10-10 08:02:05 +13:00
|
|
|
echo $(($UPDATES-1));
|
|
|
|
else
|
|
|
|
echo "0";
|
|
|
|
fi
|
2018-10-25 07:17:42 -04:00
|
|
|
elif command -v pacman &>/dev/null ; then
|
2017-10-10 08:02:05 +13:00
|
|
|
# Arch
|
|
|
|
UPDATES=`$BIN_PACMAN $CMD_PACMAN | $BIN_WC $CMD_WC`
|
2018-03-23 11:24:02 -05:00
|
|
|
if [ $UPDATES -ge 1 ]; then
|
2017-10-10 08:02:05 +13:00
|
|
|
echo $(($UPDATES-1));
|
|
|
|
else
|
|
|
|
echo "0";
|
|
|
|
fi
|
2018-10-25 07:17:42 -04:00
|
|
|
elif command -v yum &>/dev/null ; then
|
2017-10-10 08:02:05 +13:00
|
|
|
# CentOS / Redhat
|
|
|
|
UPDATES=`$BIN_YUM $CMD_YUM | $BIN_WC $CMD_WC`
|
2018-03-23 11:24:02 -05:00
|
|
|
if [ $UPDATES -ge 1 ]; then
|
2017-10-10 08:02:05 +13:00
|
|
|
echo $(($UPDATES-1));
|
|
|
|
else
|
|
|
|
echo "0";
|
|
|
|
fi
|
2018-10-25 07:17:42 -04:00
|
|
|
elif command -v apt-get &>/dev/null ; then
|
2017-10-10 08:02:05 +13:00
|
|
|
# Debian / Devuan / Ubuntu
|
|
|
|
UPDATES=`$BIN_APT $CMD_APT | $BIN_GREP $CMD_GREP 'Inst'`
|
2018-03-23 11:24:02 -05:00
|
|
|
if [ $UPDATES -ge 1 ]; then
|
2017-10-10 08:02:05 +13:00
|
|
|
echo $UPDATES;
|
|
|
|
else
|
|
|
|
echo "0";
|
|
|
|
fi
|
2016-07-29 20:22:35 +03:00
|
|
|
else
|
2017-10-10 08:02:05 +13:00
|
|
|
echo "0";
|
2016-07-29 20:22:35 +03:00
|
|
|
fi
|