問題
新しいbatchをcron設定ファイルの最後に追加したが、crontabの読み込み時にエラーが起きてしまった..!
$ crontab cron.mainuser
"/tmp/crontab.sometemp":51: premature EOF
errors in crontab file, can't install.
原因
$ diff cron.mainuser.original cron.mainuser
48a49,51
>
> # say helloWorld
> 00 7 * * * /bin/bash /bash/batch/helloWorld.sh >> /usr/local/var/log/keiba-P5/batch/cron.log 2>&1
\ No newline at end of file
ファイルの最後に改行コードがないから!
なぜ改行コードが必要なのか??
- UNIX系システムでは、改行コードがファイルの行を分ける区切りとして設定されている。
- cronファイルの最後の行に改行コードがないと、cronデーモンはまだファイルが続いていると判断するが、今回は次のエントリがないため予期せぬエラー(premature EOF)になった。
解決策
hotfix: 最後の行に改行を入れてから再読み込みしたところ、無事読み込みが完了しました!
あとでbranchの更新をしておくのを忘れずにしないと..