次のようなcrontabファイルがあります。
* * * * * /home/abliskovs/update/update.sh
ただし、syslogでジョブが実行されたことの証拠を確認すると、実行されたことを示すものは何もありません。実行中かどうかを確認するにはどうすればよいですか?
crontab -l
は次を出力します。
* * * * * /home/abliskovs/update/update.sh
>>/tmp/testlog.logをcrontabエントリの最後に追加します(ファイルに出力をリダイレクトするには、実行中かどうかを調査または確認し、さらに2>&1にエラーコンソールからの出力を含めます)
0 * * * * /home/abliskovs/update/update.sh 2>&1 /tmp/testlog.log
Sudo /etc/init.d/cron restart
ファイルを実行可能にするいくつかの方法
chmod +x /home/abliskovs/update/update.sh
chmod -R 0755 /home/abliskovs/update/update.sh
chmod a+x /home/abliskovs/update/update.sh
スクリプトファイルが実行可能であることを確認してください{chmod 755}それ以外の場合は実行されません
シェルスクリプトupdate.sh
には、おそらくエラーが含まれています。たとえば、コマンドが見つからないために実行できないコマンドもあります。この場合、PATH変数にコマンドにパスを追加するか、コマンドの前に直接追加するのが役立つ場合があります。また、MAILTOの電子メールアドレスを指定することもできます。Cronjobsの実行結果の電子メールはこのアドレスに送信されます
PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain
また、mail
でローカルメールボックスをチェックし、/var/log/syslog
のsyslogファイルでエラーをチェックすることもできます。この関連質問も参照してください cronjobsは動作しない可能性があります 。
私は同じ問題を経験しましたが、その原因は、crontabに許可がないためにcrontabが実行されていなかったことです。ファイルを変更して/tmpt/output.logに入れました
*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output
これがあなたのために働くかどうか私に知らせてください。