Crontab 脚本仅向数据库写入 NULL

Crontab 脚本仅向数据库写入 NULL

我每天都会用 cronjob 启动一个脚本:

0 1 * * * /bin/bash /home/performanceRatio.sh

脚本:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

python3 /home/get_weather_data_crn.py && 
python3 /home/pv.py

脚本正在运行,但仅向 mysql 数据库写入 NULL:

| 2021-02-03 13:00:00 |    48.17 |     11.14 |     NULL |    NULL |     NULL |     NULL | 20          | 1         | CRN    |
| 2021-02-03 14:00:00 |    48.17 |     11.14 |     NULL |    NULL |     NULL |     NULL | 20          | 1         | CRN    |
| 2021-02-03 15:00:00 |    48.17 |     11.14 |     NULL |    NULL |     NULL |     NULL | 20          | 1         | CRN    |
| 2021-02-03 16:00:00 |    48.17 |     11.14 |     NULL |    NULL |     NULL |     NULL | 20          | 1         | CRN

它正在从 CAMS(一种气象服务)获取数据。手动启动脚本时,它正常工作。数据库连接似乎正常工作,只是在使用 Cron 运行时没有按预期写入天气值。其他值已写入。

使用:Ubuntu 20.04

它被写入数据库:

engine = create_engine('mysql+pymysql://{}:{}@{}/{}'.format(user, passwd, host, database))
df.to_sql(con=engine, name=name, if_exists='append', index = True, chunksize=1000)

答案1

这似乎是我的路径的问题。我像这样编辑了 crontab -e,它按每分钟的计划运行(所以我想它也会在凌晨 1 点运行):

0 1 * * * cd /home && /bin/bash /home/performanceRatio.sh

相关内容