ubuntu服务器通过crontab执行python脚本

ubuntu服务器通过crontab执行python脚本

我试图在装有 Ubuntu 的服务器上运行 Python 脚本,但不起作用。我手动测试了该脚本,它工作正常,但我用 3 种方式自动测试了它,但没有任何效果;

  1. 1 * * * * /location/of/script/1.py (具有执行权限且#!/usr/bin/python在文件中)

  2. 1 * * * * python /location/of/script/1.py

  3. 1 * * * * /usr/bin/python /location/of/script/1.py

启用cron日志并“运行它”,它没有给我任何错误。但文件必须备份图像并上传到另一台服务器,但它没有。

答案1

您的测试环境(“手动测试脚本”)和cron环境在很多方面都不同。其中一些差异会导致您的python脚本失败(我希望您指的是#!/usr/bin/pythonCase 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

相关内容