Cronジョブが実行されていませんか?


24

次のようなcrontabファイルがあります。

* * * * * /home/abliskovs/update/update.sh

ただし、syslogでジョブが実行されたことの証拠を確認すると、ジョブが実行されたことを示すものは何もありません。実行中かどうかを確認するにはどうすればよいですか?

crontab -l 次を出力します。

* * * * * /home/abliskovs/update/update.sh


OK、私はそれをやった。
アレックスブリスコフスキー

たぶんばかげた質問かもしれませんが、それは前に私に起こったので、とにかく尋ねます。cronデーモンが実際に実行されていることを確認してください!:P 2番目の推測は権限です。cronjobを実行しているユーザーが実行できることを確認してください。
マティアスアンバーグ

回答:


21

>> / tmp / testlog.logをcrontabエントリの最後に追加します(出力をファイルにリダイレクトするには、調査または実行中かどうかを確認できます。さらに、2>&1にはエラーコンソールからの出力が含まれます)

0 * * * * /home/abliskovs/update/update.sh 2>&1 /tmp/testlog.log

また、以下を確認してください。

  • cronjobsを正しい方法で追加してください。自分のアカウント内でcrontab -eを使用した場合、スクリプトはユーザーで実行されます(したがって、crontabエントリのフィールドは1つ少なくなります-実行するユーザーは既知のとおりです)。上記のコードを単に/etc/cron.dにコピーした場合、ユーザーを指定しなかったため(または「bash」という名前のユーザーが見つからなかったため)失敗します。
  • スクリプトファイルが実行可能であることを確認してください。実行可能でない場合、実行されません。
  • cronジョブをリロードしますsudo service reload、またはcronサービスを再起動します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

3

スクリプトファイルが実行可能であることを確認してください{chmod 755}それ以外の場合は実行されません


2
ファイルを実行可能にするには、次を実行することもできますchmod +x filename
Stefano Palazzo

0

シェルスクリプトにはupdate.shおそらくエラーが含まれています。たとえば、コマンドが見つからないために実行できないコマンドもあります。この場合、PATH変数にコマンドへのパスを追加するか、コマンドの前に直接追加することが役立つ場合があります。また、MAILTOの電子メールアドレスを指定することもできます。Cronjobsを実行した結果の電子メールは、このアドレスに送信されます

PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain 

また、エラーのあるローカルメールボックスとmailsyslogファイルをチェックすることもできます/var/log/syslogcronjobが機能しない理由については、この関連する質問も参照してください。


0

私は同じ問題を経験しましたが、その原因は、crontabに許可がないためにcrontabが実行されていなかったことです。ファイルを変更し、/ tmpt / output.logに入れました

*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output

これがあなたのために働くかどうか私に知らせてください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.