#!/bin/bash STALE_DIR="${HOME}/var/stale/" get_names() { /usr/sbin/bcfg2-reports clients "$@" --fields=name | sed '/^Name *$/d;s/ *$//' } get_stale() { get_names --stale } get_all() { get_names } get_bad() { get_names -d } get_clean() { get_names -c } get_extra() { /usr/sbin/bcfg2-reports clients --fields=extra,name | sed '1d;s/ *$//' | \ while read extra name ; do if [ "$extra" != "0" ]; then echo $name fi done } get_stale_once() { get_stale | while read host; do STALE_FILE="${STALE_DIR}/${host}" test -f "${STALE_FILE}" || ( touch "${STALE_FILE}" echo $host ) done comm -23 <(ls -1 ${STALE_DIR}/ | sort) <(get_all | sort) | while read file; do STALE_FILE="${STALE_DIR}/${file}" test -f "${STALE_FILE}" && rm -f "${STALE_FILE}" done } cron() { stale=$(get_stale_once) if [ -n "$stale" ]; then /usr/sbin/sendmail -t <