On 20.07.2013, at 18:34, Michael Grimm <trash...@odo.in-berlin.de> wrote:
> On 20.07.2013, at 14:53, Matthew Seaman <m.sea...@infracaninophile.co.uk> > wrote: >> On 20/07/2013 12:09, Michael Grimm wrote: > >>> I did migrate to pkgng some month ago, and ever since I am curious >>> how to monitor changes in installed packages within jails. I am >>> looking for a functionality/port that works like 490.status- >>> pkg-changes for my host. >>> >>> Question: is there any functionality within the periodic system or a >>> port that I might have missed to find? >> >> You can't just run 490.status-pkg-changes directly in your jail? > > Yes, I can ;-) > > But! I do have a lot of service jails running at my host, thus I would like > to omit modifying every jail's /etc/periodic.conf adding: > > | daily_status_pkg_changes_enable="YES" # Show package changes > | pkg_info="pkg info" # Use this program > > >> Try this patch: > > Thanks for that approach, namely adding "pkg -j jailname info" for every jail > running. Due to my amount of jails I might need to add some looping over "jls > -N" output instead of adding a lot of $daily_status_pkg_changes_flags. > > I was hoping that I could omit programming that functionality myself, but I > might need to do so. I ended up in adding: ------------------------------- snip ---------------------------- --- /usr/src/etc/periodic/daily/490.status-pkg-changes 2013-04-03 17:59:35.894705550 +0200 +++ /etc/periodic/daily/490.status-pkg-changes 2013-07-23 20:19:27.833641916 +0200 @@ -32,6 +32,24 @@ diff -U 0 $bak/pkg_info.bak2 $bak/pkg_info.bak \ | grep '^[-+][^-+]' | sort -k 1.2 fi + +# added jail(s) support +# + for jname in `jls -N | grep -v JID | awk '{print $1}'`; do + if [ -f $bak/pkg_info_${jname}.bak ]; then + mv -f $bak/pkg_info_${jname}.bak $bak/pkg_info_${jname}.bak2 + fi + jexec ${jname} ${pkg_info:-/usr/sbin/pkg_info} > $bak/pkg_info_${jname}.bak + + cmp -sz $bak/pkg_info_${jname}.bak $bak/pkg_info_${jname}.bak2 + if [ $? -eq 1 ]; then + echo "" + echo "Changes in installed packages (jail ${jname}):" + diff -U 0 $bak/pkg_info_${jname}.bak2 $bak/pkg_info_${jname}.bak \ + | grep '^[-+][^-+]' | sort -k 1.2 + fi + done + fi ;; ------------------------------- snip ---------------------------- Not perfect, really, but working at my side. Michael _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"