在 cron 中引用 ini 文件失败

Referencing ini file fails in cron

我有一个查询数据库的 python 脚本。我 运行 从终端 python3 myscript.py

我在我的 crontab 文件中为它添加了一个 cron 任务 */30 9-17 * * 1-5 python3 /path/to/my/python/script\ directory\ space/myscript.py

该脚本在同一目录中导入一个函数,该函数解析位于同一目录中 database.ini 中的数据库的登录信息。 database.ini 是:

[postgresql]
host=my-db-host-1-link.11.thedatabase.com
database=dbname
user=username
password=password
port=10898

但目前 cron 输出到我的邮件文件夹中的文件:

Section postgresql not found in the database.ini file

该部分清楚地存在于 database.ini 文件中,所以我在这里缺少什么?

不要在它所在的目录中 运行ning "python3 myscript.py",尝试从其他目录(如主目录)运行ning 它。您很可能会遇到同样的问题。

注意 cron 的当前工作目录在不同的系统上是不同的。因此,最安全的方法是显式切换到脚本所在的目录,然后 运行 那里的命令:

cd /path/to/my/python/script\ directory\ space/ && python3 myscript.py

试试这个:

进口os

...

更改 --> 文件名=database.ini

for --------> 文件名=os.path.dirname(__file__)+'/database.ini'