このcrontabジョブが実行されないのはなぜですか?

このcrontabジョブが実行されないのはなぜですか?

Ubuntu 12.04システムで毎分実行されるクローンジョブがあります。

$sudo crontab -e
* * * * * mylogin /pathto/file.sh > /log/filelog

を実行すると、file.shbashスクリプトは操作を実行し、次のことをエコーし​​ますruns

$ ./file.sh 
runs

cron タブのログを確認すると、ジョブが実行中であることが表示されます。

Jul 10 12:41:01 localhost CRON[1811]: (root) CMD (mylogin /pathto/file.sh > /log/filelog)
Jul 10 12:41:01 localhost CRON[1810]: (CRON) info (No MTA installed, discarding output)
Jul 10 12:42:01 localhost CRON[1813]: (root) CMD (mylogin /pathto/file.sh > /log/filelog)

ただし、スクリプトが実行されていません。私の役割を果たせず、runs反響もありませんでした/log/filelog

$cat /log/filelog  #shows nothing

この問題をデバッグするには、どのような他の手順を実行する必要がありますか?

答え1

myloginファイルのユーザー名を指定します/etc/crontab。コマンドを使用するとsudo crontab -e実際には編集しているため、/var/spool/cron/crontabs/rootこのようなファイルにユーザー名を指定しないでください/etc/crontab

ユーザーとしてコマンドを実行する必要がある場合は、その行をmylogin入力するか/etc/crontab(そしてroot権限で編集)、myloginユーザーのcrontabに入れる必要があります。

からman 5 crontab

EXAMPLE SYSTEM CRON FILE
    The following lists the content of a regular system-wide crontab  file.
    Unlinke  a user's crontab, this file has the username field, as used by
    /etc/crontab.

関連情報