![ubuntu服务器通过crontab执行python脚本](https://linux22.com/image/917216/ubuntu%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%80%9A%E8%BF%87crontab%E6%89%A7%E8%A1%8Cpython%E8%84%9A%E6%9C%AC.png)
我试图在装有 Ubuntu 的服务器上运行 Python 脚本,但不起作用。我手动测试了该脚本,它工作正常,但我用 3 种方式自动测试了它,但没有任何效果;
1 * * * * /location/of/script/1.py
(具有执行权限且#!/usr/bin/python
在文件中)1 * * * * python /location/of/script/1.py
1 * * * * /usr/bin/python /location/of/script/1.py
启用cron
日志并“运行它”,它没有给我任何错误。但文件必须备份图像并上传到另一台服务器,但它没有。
答案1
您的测试环境(“手动测试脚本”)和cron
环境在很多方面都不同。其中一些差异会导致您的python
脚本失败(我希望您指的是#!/usr/bin/python
Case Counts!)。
将其添加到您的crontab
几分钟内,然后将其删除:
* * * * * (echo "=== set ===";set;echo "===env ==="; env | sort;echo "=== alias ===";alias) >cron.environment
另外,在您的测试环境中,执行以下操作:
echo "=== set ===";set;echo "===env ==="; env | sort;echo "=== alias ===";alias) >test.environment
读取/比较每个文件(less {cron,test}.environment;diff {cron,test}.environment
)。
阅读后man 5 crontab
,了解如何改变cron
的环境。
请记住,cron
不是bash
,但是 bash 包装脚本弥补了这一点。
答案2
我通过以下方式解决了这个问题:
01 * * * * cd /home/user/folder && /usr/bin/python 1.py