From d1b61616fa6d6851624ea2056a25e8aea473e388 Mon Sep 17 00:00:00 2001 From: olli Date: Thu, 5 Aug 2010 15:53:33 +0000 Subject: Add a daily script to the periodic framework that reports changes to the package database, i.e. any packages that have been added, updated or deleted in the past 24 hours. The format is intentionally simple and concise. That information is particularly useful on servers that are maintained by multiple administrators. When someone adds, updates or deletes a package, the others will see it in the daily periodic output. This script is disabled by default. PR: conf/113913 Submitted by: olli Approved by: des (mentor) MFC after: 3 weeks --- etc/defaults/periodic.conf | 3 +++ etc/periodic/daily/490.status-pkg-changes | 43 +++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100755 etc/periodic/daily/490.status-pkg-changes (limited to 'etc') diff --git a/etc/defaults/periodic.conf b/etc/defaults/periodic.conf index b4c777b..8267ac7 100644 --- a/etc/defaults/periodic.conf +++ b/etc/defaults/periodic.conf @@ -136,6 +136,9 @@ daily_status_named_usedns="YES" # DNS lookups are ok # 480.status-ntpd daily_status_ntpd_enable="NO" # Check NTP status +# 490.status-pkg-changes +daily_status_pkg_changes_enable="NO" # Show package changes + # 500.queuerun daily_queuerun_enable="YES" # Run mail queue daily_submit_queuerun="YES" # Also submit queue diff --git a/etc/periodic/daily/490.status-pkg-changes b/etc/periodic/daily/490.status-pkg-changes new file mode 100755 index 0000000..60e3e8c --- /dev/null +++ b/etc/periodic/daily/490.status-pkg-changes @@ -0,0 +1,43 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# If there is a global system configuration file, suck it in. +# +if [ -r /etc/defaults/periodic.conf ]; then + . /etc/defaults/periodic.conf + source_periodic_confs +fi + +case "$daily_status_pkg_changes_enable" in + [Yy][Ee][Ss]) + if [ ! -f /usr/sbin/pkg_info ]; then + echo '$daily_status_pkg_changes_enable is enabled but' \ + "/usr/sbin/pkg_info doesn't exist" + rc=2 + else + bak=/var/backups + rc=0 + + if [ -f $bak/pkg_info.bak ]; then + mv -f $bak/pkg_info.bak $bak/pkg_info.bak2 + fi + /usr/sbin/pkg_info > $bak/pkg_info.bak + + cmp -sz $bak/pkg_info.bak $bak/pkg_info.bak2 + if [ $? -eq 1 ]; then + echo "" + echo "Changes in installed packages:" + diff -U 0 $bak/pkg_info.bak2 $bak/pkg_info.bak \ + | grep '^[-+][^-+]' | sort -k 1.2 + fi + fi + ;; + + *) + rc=0 + ;; +esac + +exit $rc -- cgit v1.1