periodic

FreeBSD の periodic はとてもわかりづらいと思う。
1. /etc/crontab に書かれた

1 9 * * * periodic daily

により periodic 起動。
/etc/defaults/periodic.conf 読み込む。
その設定に従い /etc/periodic.conf と /etc/periodic.conf.local (普通は存在しない)を読み込む。
引数が絶対パスでないので /etc/periodic/daily と変数 periodic_conf_files で設定されたディレクトリ、すなわち /usr/local/etc/periodic/daily, /usr/X11R6/etc/periodic/daily 以下が実行されることになる。
2. /etc/periodic/daily 以下実行
3. /etc/periodic/daily/999.local により /etc/daily.local 実行
4. /usr/local/etc/periodic 以下、/usr/X11R6/etc/periodic 以下実行
実は periodic もシェルスクリプト
スクリプトの出力は periodic.conf の変数 daily_output で制御できる。これは periodic の中で

    case "$output" in
    /*) pipe="cat >>$output";;
    "") pipe=cat;;
    *)  pipe="mail -s '$host ${arg##*/} run output' $output";;
    esac

とし、

コマンド | eval $pipe

などとカッコイイことをしている。


昔はシンプルだったようだ。
crontab Revision 1.1
http://www.jp.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/etc/crontab?rev=1.1&content-type=text/plain