cronは/etc/crontab
やユーザーが定義したcrontabで指定されたコマンド
を定期的に実行するためのコマンドです。Debian 1.3では
/etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly
を使います。
cronはブートスクリプトから開始しますが、cronのパスがおかしいようです:
/usr/bin:/binn:/sbin:/bin:/usr/sbin:/usr/bin
これはcronのバグです。これはterminating 0なし(without terminating 0)
ではじめに上書きされた/usr/bin:/bin
があるinitパスです!このバグは
全てのシステムにあるわけではありません。
crontabでPATH定義をすることができます。Debian 1.3を使っているなら
/etc/crontab
のはじめに以下の行があります:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
このため、crondプログラムのパスはユーザープログラムで使われることは
決してありません。/etc/cron.*
ディレクトリの全スクリプトは
デフォルトでこのパスを参照します。プログラムがroot以外で実行された時でも
このパスが使用されます。
atは特定の時間に一度だけプログラムを実行するのに使われます。
atdはinitパスを使います。しかしユーザープログラムは常にshコマンドを使った ユーザー環境で実行されます。そこで通常のシェル上書き(usual shell overwrites) が行われます。 bashの章を参照して下さい。