check_port_versions - NRPE pkg_version check
check_port_versions is a nagios plugin I wrote, which checks the number of outdated ports installed on a FreeBSD system, compared to what is in /usr/ports
. If the number exceeds the configured limits, WARNING or CRITICAL is returned. The plugin runs pkg_info -o
and thus only needs the ports INDEX-x file to be up to date.
Download the plugin
The plugin can be downloaded to the correct place (and made executable) with the following commands:
sudo fetch -o /usr/local/libexec/nagios/check_port_versions http://www.gibfest.dk/check_port_versions sudo chmod +x /usr/local/libexec/nagios/check_port_versions
Feel free to check the source code to see what it does, it is very simple and well commented.
Configuring NRPE
Add the following line to /usr/local/etc/nrpe.cfg
:
command[check_port_versions]=/usr/local/libexec/nagios/check_port_versions
Remember to restart NRPE after changing the config:
sudo /usr/local/etc/rc.d/nrpe2 restart
Updating ports
I update ports daily from /etc/crontab
with the following portsnap
commands:
#update ports 0 12 * * * root /usr/sbin/portsnap cron && /usr/sbin/portsnap -I update
Note: The above /etc/crontab
line will download the latest snapsnot and update the ports index files. The ports themselves will not be extracted. As explained in the portsnap manpage, it is a bad idea to automatically update /etc/ports - bad things will happen if you accidently update while installing something. This means that you should run portsnap update
before installing/upgrading any ports.