python - 如何在 Ubuntu / Apache 中使用 cronjob 运行 python 脚本
问题描述
我正在尝试在我的 Apache2/Ubuntu 20.04 服务器中设置一个 cronjob。
我要执行的python文件如下:
def main():
print('TEST')
function()
def function():
file1 = open("home/username/project/cron_test.txt","a")
str1 = 'Test2 \n'
file1.write(str1)
file1.close()
if __name__ == '__main__':
main()
我已将我的 cronjob 定义如下:
* * * * * /home/username/project/venv/bin/python3 /home/username/project/cron_test.py
当我在 putty 中运行命令时,它工作得非常好,我得到了我想要的输出。但是,当我将它放在 crontab 中时,python 脚本不会运行。
任何想法我做错了什么?我尝试了各种不同的方法,例如 cd 进入项目文件夹然后运行它,以及在 python venv 和代码之间放置一个 -f ,但我没有更接近。
帮助表示赞赏。
此致,
帕特里克
解决方案
也许尝试将您的脚本转换为可执行的 python 脚本,
- 将您的 cronjob 更改为
* * * * * /home/username/project/cron_test.py
- 使您的脚本可执行,即在终端运行
chmod +x cron_test.py
- 将以下内容添加到脚本文件的顶部:(
#!/usr/bin/python3
或 python 二进制文件所在的任何位置)
推荐阅读
- assembly - 远跳转到 32 位保护模式入口点导致 QEMU 不断重启
- reactjs - 使用带有 styled-components native 的 google 字体
- cakephp - Cakephp 3 蛋糕烘焙中的表前缀
- winapi - 未加载用户配置文件时,CryptProtectData 失败并出现错误“找不到文件”
- python - 为 python 安装 OpenEXR 失败
- javascript - Javascript 代码在第二次点击 html 按钮之前不会触发?
- c++ - 如何在 React 中使用原生 node.js 插件
- c# - 在自适应卡中单击按钮后的文本提示不会调用下一步
- r - 如何制作一个遵循时间序列但对来自不同因素的条形图使用不同颜色的条形图
- python - 使用 Pandas 在不重叠的全天时间窗口上计算统计功能