我有一个从pipenv环境运行的Python脚本。
我想用cron每分钟运行一次,但是我没有成功,我能找到的解决方案对我不起作用。
第一次尝试:
* * * * * cd /home/santiago/flaskpostgres/writeText && pipenv run python3 main.py
但我什么也没得到。
我试着寻找一个解决方案,在几个地方推荐了一个bash文件,所以我把这行改为
* * * * * bash /home/santiago/hello.sh
并编写了一个名为hello.sh的bash文件,其中包含
#! usr/bin/bash
cd /home/santiago/flaskpostgres/writeText
pipenv run python3 main.py
我还用
修改了hello.sh的权限chmod +x hello.sh
但也没有。
bash文件本身可以工作,我已经单独测试过了,但是cron似乎不能运行它。
当我使用 一行进行测试时,cron确实可以工作。
* * * * * echo "hello" >> /tmp/test.txt
这个工作没有问题,只是这个python文件,我无法工作
如果有帮助,位于flaskpostgres/writeText/main.py的python文件的内容如下:
from datetime import datetime
with open('sample.txt', 'a') as file_object:
# Append 'hello' at the end of file
file_object.write(f"{datetime.now()} n")
# Close the file
file_object.close()
这是一个虚拟的python文件,真正的我想调度它有点复杂,有几个副作用,所以我不能每次我想测试cron时都运行它。
服务器正在运行Ubuntu 20.04.3
正如评论所提到的,这确实是一个PATH的东西。
我更新了bash文件的路径,使其与shell交互时使用的路径相同,并且它工作