業務時間中にcronを1時間ごとにタスクを実行させる方法は?


3

私は平日の営業時間中に1時間に2回スクリプトを実行しようとしていますが、cronの設定には次のようなものがあります。

\# m     h       dom     mon     dow     command

8,48    8-17    *       *       1-5      python ~/documents/scripts/script.py

ただし、何も実行されません。私はこれについてバリエーションを試みましたが、何も起こらないようです。スクリプトを手動で実行すると正常に機能します。

私の唯一の他のcronスクリプトは時計仕掛けのように動作します:

45      5       *       *       *       python ~/documents/scripts/rdiff.py

これは、毎朝05:45に私のシステムの外部ディスクへのバックアップを取ります。

私は何が欠けていますか?


cronログ(/var/log/cron.logなど)またはsyslogに何かありますか?さらに、ダッシュの代わりにコンマで区切って、各時間と曜日を書いてみましたか?
Toine42

cron.logはありませんでした。syslogには、次のような多数のメッセージがありました。5月25日15:17:01ボックスCRON [5582]:(root)CMD(cd / && run-parts --report /etc/cron.hourly)および5月25日07:54:25 box anacron [3594]:正常終了(1ジョブ実行)(これをどのようにフォーマットするかわからない)crontabをあなたが提案した方法でフォーマットしようとします。そして何が起こるかを見てください。
メミウス

スクリプトは環境変数を使用しますか?こちらをご覧ください
カミルマシオロウスキ

環境変数なし:8,48 12,13,14,15,16,17 * * 5,6,7 echo ding>〜/ crontasklogg.txtに変更しましたが、変更はありません。何も起こりません。ファイルに痕跡はありません。
メミウス

問題はcrontabエントリではなく、Pythonスクリプト自体にあると思われます。のコンテンツを投稿できますscript.pyか?
ラーセンド

回答:


2

あなたのcrontabの時間仕様は正しいです、私はこれでそれを確認しました:

1,41 0-17 * * 1-5 /bin/echo 'running'

2番目のcrontabエントリは正常に実行pythonされるため、デフォルト環境で見つかります(一般的に、実行可能ファイルにフルパスを使用する方が安全です)。

スクリプト自体は端末で正常に実行されますが、cronから起動されたときは正常に実行されないため、問題は通常の対話型セッションとcronが提供する対話型セッションの環境の違いにあるとのみ結論付けることができます。

この行に沿った回答(いくつかのSEサイトで多数)は、さらに調査するのに役立ちます:https : //serverfault.com/questions/337631/crontab-execution-doesnt-have-the-same-environment-variables-as-executing -ユーザー

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