スクリプトから crontab の編集と更新

cronのユーザー別設定ファイルである crontab は 通常,"crontab -e" でエディタを起動してインタラクティブに 更新するわけだが, スクリプトなどから自動的にエントリを追加するにはどうするのが 正しいのだろうか?

とりあえず,crontabコマンドを利用して 以下のようにすればうまくいくはずである. crontabエントリに不備がある場合はエラーも返ってくるし.

crontab -l > /tmp/crontab.temp
echo "5 * * * * /home/username/somescript.sh" >> /tmp/crontab.temp
if crontab -u username /tmp/crontab.temp
then
    echo "crontab install is done successfully."
else
    echo "crontab install is failed."
fi
rm /tmp/crontab.temp

GNU/Linux環境だったら,/etc/crontab にエントリを付け加えるだけで cronの動作に反映されるみたいだ.


5 * * * *  username   /home/username/somescript.sh

直接エディタで crontab ファイルを書き換えて kill -HUP `cat /var/run/cron.pid` でもうまく行きそうな気もするんだけど,確認はせず.