Ubuntu 12.04システムで毎分実行されるクローンジョブがあります。
$sudo crontab -e
* * * * * mylogin /pathto/file.sh > /log/filelog
を実行すると、file.sh
bashスクリプトは操作を実行し、次のことをエコーします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.