From 6ece019fcf279a0aaf03fff258b8bca116196e1c Mon Sep 17 00:00:00 2001 From: Oliver Fromme Date: Thu, 5 Aug 2010 15:53:33 +0000 Subject: [PATCH] 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 diff --git a/etc/defaults/periodic.conf b/etc/defaults/periodic.conf index b4c777b88fba..8267ac734072 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 000000000000..60e3e8c6fb3a --- /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