| 
									
										
										
										
											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' | 
					
						
							| 
									
										
										
										
											2020-04-21 21:30:37 +04:00
										 |  |  | BIN_PKG='/usr/sbin/pkg' | 
					
						
							|  |  |  | CMD_PKG=' audit -q -F' | 
					
						
							| 
									
										
										
										
											2020-09-23 19:11:08 -05:00
										 |  |  | BIN_APK='/sbin/apk' | 
					
						
							|  |  |  | CMD_APK=' version' | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							| 
									
										
										
										
											2020-04-21 21:30:37 +04:00
										 |  |  | elif command -v pkg &>/dev/null ; then | 
					
						
							|  |  |  |     # FreeBSD | 
					
						
							|  |  |  |     UPDATES=`$BIN_PKG $CMD_PKG | $BIN_WC $CMD_WC` | 
					
						
							|  |  |  |     if [ $UPDATES -ge 1 ]; then | 
					
						
							|  |  |  |         echo $UPDATES; | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |         echo "0"; | 
					
						
							|  |  |  |     fi | 
					
						
							| 
									
										
										
										
											2020-09-23 19:11:08 -05:00
										 |  |  | elif command -v apk &>/dev/null ; then | 
					
						
							|  |  |  |     # Alpine | 
					
						
							|  |  |  |     UPDATES=`$BIN_APK $CMD_APK | $BIN_WC $CMD_WC` | 
					
						
							|  |  |  |     if [ $UPDATES -ge 2 ]; then | 
					
						
							|  |  |  |         echo $(($UPDATES-1)); | 
					
						
							|  |  |  |     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 |