web-dev-qa-db-ja.com

Python3でCronJobが16.04で動作しない

Cronjob -e with below-を追加しました-

* * * * * /usr/bin/python3  /home/user/test.py

しかし、cronジョブは毎回失敗しています。スクリプトを正常に実行しながらテストでき、正常に動作します。

Cronは毎分実行する必要があり、エコーでテストし、出力をファイルにリダイレクトしており、完全に正常に動作します。別のインスタンスでユーザーとルートの両方を試した後、動作しませんでした。私はsyslogをチェックしましたが、ここに私が見ることができるものがあります-

May 20 06:30:01 ubuntu CRON[2145]: (user) CMD (/usr/bin/python3  /home/user/test.py)
May 20 06:30:01 ubuntu CRON[2144]: (CRON) info (No MTA installed, discarding output)
May 20 06:31:01 ubuntu CRON[2148]: (user) CMD (/usr/bin/python3  /home/user/test.py)
May 20 06:31:02 ubuntu CRON[2147]: (CRON) info (No MTA installed, discarding output)
May 20 06:31:29 ubuntu crontab[2150]: (user) BEGIN EDIT (user)
May 20 06:31:37 ubuntu crontab[2150]: (user) REPLACE (user)
May 20 06:31:37 ubuntu crontab[2150]: (user) END EDIT (user)
May 20 06:31:46 ubuntu crontab[2162]: (root) BEGIN EDIT (root)
May 20 06:31:54 ubuntu crontab[2162]: (root) REPLACE (root)
May 20 06:31:54 ubuntu crontab[2162]: (root) END EDIT (root)
May 20 06:32:01 ubuntu cron[862]: (root) RELOAD (crontabs/root)
May 20 06:32:01 ubuntu cron[862]: (user) RELOAD (crontabs/user)
May 20 06:32:01 ubuntu CRON[2177]: (user) CMD (/usr/bin/python3  /home/user/test.py)
May 20 06:32:01 ubuntu CRON[2178]: (root) CMD (/usr/bin/python3  /home/user/test.py)
May 20 06:32:01 ubuntu CRON[2175]: (CRON) info (No MTA installed, discarding output)
May 20 06:32:01 ubuntu CRON[2176]: (CRON) info (No MTA installed, discarding output)
May 20 06:33:01 ubuntu CRON[2183]: (user) CMD (/usr/bin/python3  /home/user/test.py)
May 20 06:33:01 ubuntu CRON[2184]: (root) CMD (/usr/bin/python3  /home/user/test.py)
May 20 06:33:01 ubuntu CRON[2182]: (CRON) info (No MTA installed, discarding output)
May 20 06:33:01 ubuntu CRON[2181]: (CRON) info (No MTA installed, discarding output)

ここでこのMTAの意味を理解できません。これはバグであるため、Readはフォーラムmailxのインストールが必要です。 16.04には直接のmailxインストールサポートはありません。古いバージョンがサポートされている可能性があります。

ここであなたの助けを高く評価しています。ご意見をお聞かせください。

おかげで、

3
CCIE_LINUX

皆さんありがとう、

インストールして修正しました

Sudo apt-get install mailutils

ログによってメールが生成されている必要なログが表示されます。

5月20日08:02:01 ubuntu CRON [4687]:(ユーザー)CMD(/home/path/test.py)5月20日08:02:01 ubuntu postfix/pickup [4397]:CB907603B5:uid = 1000 from = May 20 08:02:01 ubuntu postfix/cleanup [4477]:CB907603B5:message-id = <20170520150201.CB907603B5@ubuntu>

しかし、スクリプトが実行されていることはわかりませんが、パスが正しく、スクリプト全体を入力するだけで問題なく実行できます。

0
CCIE_LINUX

MTAはメール転送エージェントです。入るとき

crontab -e

行を追加する

MAILTO=""

それが役立つかどうかはわかりません。

とにかく、cronで実行すると、標準出力への出力はすべて電子メールで送信されます。

0
nobody