0

そこで、0 バイトを超えるファイルが検出されるたびにシステム コマンドを実行する非常に小さな Python スクリプトを作成しました。実行する cronjob をスケジュールしようとしましたが、何らかの理由で機能しません。何が間違っていますか??

Python スクリプト (/usr/local/bin/urlEmail.py):

#!/usr/bin/env python
import os

changes = os.stat("/usr/local/bin/changes.txt")
if changes.st_size > 0:
    os.system('ssmtp email@email.com < changes.txt')

(現在、changes.txt は静的で、テスト用にいくつかのテキストが含まれています)

root ユーザーの crontable -e に追加:

*/1 * * * * urlEmail.py

/var/log/syslog を見ると、次のように表示されます。

Jun 13 07:09:01 Server CRON[20901]: (root) CMD (urlEmail.py)
Jun 13 07:09:02 Server sSMTP[20902]: Sent mail for root@email.com  (221 domain.domain.com closing connection) uid=0 username=root outbytes=577

また、「urlEmail.py」を実行するだけで、期待どおりのメールが届きますが、ログ メッセージは次のとおりです。

Jun 13 07:17:07 Server sSMTP[20952]: Sent mail for root@email.com (221 domain.domain.com closing connection) uid=0 username=root outbytes=352

2 つのログ メッセージ間で変更された唯一の点は、'urlEmail.py' を自分で実行した場合の outbytes 値が異なることです。

cron が (1 分に 1 回) 実行されると、メールがまったく届きません。

4

0 に答える 0