일반 사용자로 로그인하고 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
.