linux:cronでcommand not found

cronで「/bin/sh: 行数: ユーザ名 command not found」というエラーが出たら、*が多いか、ユーザ別cronでユーザ名を書いてしまっている。

1つコマンドがずれているために起こるエラーである。

あとcronでありがちな失敗としてはcrondを再起動していない

# crondを再起動
/etc/init.d/crond restart

エラーメールが飛んできているのに気が付かない、などがある。
su [cronを実行するユーザ]
#メール確認
mailx

linux:crontabのヘッダー

いつもcronの時間設定の書き方を忘れるので、コメントヘッダーを付けることにした。
これで5分おき、1時間おきの設定も迷わないはず。

#minute hour  mday month   wday who  command
#
*/5     *   *    *    *    user    /home/user/script.sh

centOS:yum-cronの設定

パッケージ更新のダウンロードまでは自動でやっておいて欲しいのでyum-cronをインストールした。
そのメモ。

# yum install yum-cron
インストールされた内容は
# rpm -ql yum-cron
/etc/cron.daily/yum.cron
/etc/cron.weekly/yum.cron
/etc/rc.d/init.d/yum-cron
/etc/sysconfig/yum-cron
/etc/yum/yum-daily.yum
/usr/share/doc/yum-cron-0.6
/usr/share/doc/yum-cron-0.6/COPYING
/usr/share/doc/yum-cron-0.6/README

設定ファイルは/etc/sysconfig/yum-cron。
初期状態だとパッケージ更新まで自動で行うようになっているので、設定ファイルを変更する。httpdのように更新を反映するのにrestartが必要なパッケージが放置されないように、当分は更新チェック、ダウンロードまで自動。アップデートは手動で行うつもり。
/etc/sysconfig/yum-cron
# Don’t install, just check (valid: yes|no)
CHECK_ONLY=yes
# Don’t install, just check and download (valid: yes|no)
# Implies CHECK_ONLY=yes (gotta check first to see what to download)
DOWNLOAD_ONLY=yes

設定したらyum-cronの再起動する。
# /etc/init.d/yum-cron restart
# yum check-update
これでrootにメールが来るようになる。

最後にyum-updatesdを止める。
# /etc/init.d/yum-updatesd stop
# /sbin/chkconfig yum-updatesd off