一般ユーザーとしてログインし、RHEL8で毎分実行するようにcronジョブをスケジュールします。 Pythonスクリプトは端末で./python.pyとして実行すると正しく実行されますが、crontabでジョブとして実行するとエラーが発生します。以下は、「which python3」と「realpath -e python.py」で得られた絶対パスです。 python.py chmod 777 権限を付与します。
クローンタップ-e
* * * * * /usr/bin/python3 /home/user/test_1/test/python.py >> /home/user/test_1/test/cron.log 2>&1
間違い:
Traceback (most recent call last):
File "/home/user/test_1/test/python.py", line 127, in <module>
log_location = config.log_file_location()
File "/home/user/test_1/test/config.py", line 62, in log_file_location
baseLoc = self.base_data_location()
File "/home/user/test_1/test/config.py", line 56, in base_data_location
baseDirPath = self.cb_config.get('base_data_dir', '/tmp')
AttributeError: 'NoneType' object has no attribute 'get'
Exception reading config: No section: 'test_connection'
Exception reading config: No section: 'product_info'
Exception reading config: No section: 'event_ids
答え1
スクリプトは、対話型シェルに設定されているシェル環境変数によって異なりますが、環境ではそうではありませんcron
。 base_data_location()が呼び出されましたが、os.environ.get(<some variable>)
あなたのコンテキストで定義されていませんcron
。