我有一个运行Python脚本的crontab:
1 3 * * * /usr/bin/python2.7 /home/reporting/python_scripts/Vertica/get_daily_dpi.py >> /home/reporting/python_scripts/Vertica/get_daily_dpi.py.log 2>&1
我添加了>>
来向文件写入错误消息。
脚本连接到数据库,提取一些数据,对其进行转换并将其加载到另一个数据库中。当我通过命令行执行脚本时,脚本运行正常。从任何目录,我都可以运行:
/usr/bin/python2.7 /home/reporting/python_scripts/Vertica/get_daily_dpi.py
但是当crontab尝试运行脚本时,会出现以下错误:
Traceback (most recent call last):
File "/home/reporting/python_scripts/Vertica/get_daily_dpi.py", line 8, in <module>
vc.get_data_from_vertica(cnxn)
File "/home/reporting/python_scripts/Vertica/vertica_data_connector.py", line 97, in get_data_from_vertica
row = cur.fetchone()
vertica_db_client.ProgrammingError: No previous call produced results to fetch
因此,当我从crontab运行它时,查询似乎没有返回结果,但是当我从命令行运行它时,它运行得很好。
为什么会发生这种想法?