mirror of
https://github.com/librenms/librenms-agent.git
synced 2024-05-09 09:54:52 +00:00
* Revert changes made in #355 that broke the script. * Revert partial changes made in #356 By just removing the quotes in line 81 i could make the script work again * osupdate yum revert Realized i had a centos to test * Fix curl error `curl: (3) URL using bad/illegal format or missing URL` Not sure how to properly fix it but moving the hardcode flags to the variable so its not empty did fix it. The curl error caused to push down all values 1 line which made them mismatch in librenms. * Update osupdate * Update phpfpmsp Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
100 lines
3.0 KiB
Bash
Executable File
100 lines
3.0 KiB
Bash
Executable File
#!/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'
|
|
CMD_DNF='-q check-update'
|
|
BIN_APT='/usr/bin/env apt-get'
|
|
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
|