以普通用户身份登录,尝试安排 cron 作业在 RHEL8 上每分钟运行一次。 Python 脚本在终端作为 ./python.py 执行时运行良好,但在 crontab 中作为作业运行时出现错误。下面是绝对路径,通过“which python3”和“realpath -e python.py”获得。授予 python.py chmod 777 权限。
crontab -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
该脚本可能依赖于在交互式 shell 中设置的 shell 环境变量,但不在环境中设置cron
。我敢打赌,base_data_location() 会调用os.environ.get(<some variable>)
,并且在您的上下文中没有定义它cron
。