cronの状態

ぱっと見る限り問題なさそう

$ crontab -l
0 1 * * 1-5 execute.sh
35 11 * * 1-5 execute.sh

crontabで編集したものとファイルを比べる

ファイルの末尾に改行がなかった

$ sudo cp /var/spool/cron/hoge ~/hoge-before
$ crontab -e
:wq
$ sudo cp /var/spool/cron/hoge ~/hoge-after
$ diff ~/hoge-before ~/hoge-after

原因

改行か%がないとその行は実行されない

man 5 crontab

The "sixth" field (the rest of the line) specifies the command to be run. The entire command portion of the line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the cronfile. Percent-signs (%) in the command, unless escaped with backslash (), will be changed into newline characters, and all data after the first % will be sent to the command as standard input.

意訳
6番目のフィールド(行の残りの部分)は、実行するコマンドを指定します。 行のコマンド部分全体(改行または%文字まで)は、/bin/shまたはcronfileのSHELL変数で指定されたシェルによって実行されます。 バックスラッシュ(\)でエスケープしない限り、コマンドのパーセント記号(%)は改行文字に変更され、最初の%以降のすべてのデータは標準入力としてコマンドに送られます。

解決

将来忘れそうなので、未来の自分でも気づける方法として、最終行にコメントを付与してみた。

 0 1 * * 1-5 execute.sh
 35 11 * * 1-5 execute.sh
 # Comment for the newline of crontab termination character. See man 5 crontab.
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.