为什么 cron 作业不编译 python 文件?

Cron 不编译我的 .py 文件,我无法从 Cron 收到电子邮件以了解 Cron 为何不起作用。~/t/test.sh但是,如果我只是在终端中运行命令,一切正常。


cron中的代码:


SHELL=/bin/bash

MAILTO=mymail@gmail.com

30 0-23 1-31 1-12 0-6 ~/t/test.sh


我想运行一个test.sh包含以下代码的脚本:


#!/bin/bash

cd /home/alex/t && python3.8 ./test.py


中的代码test.py:


from datetime import datetime

current_time = datetime.now()

f = open("text.txt", 'w+')

f.write("Hello world! Now is {0}\n".format(current_time))

f.close()

sudo crontab-e我通过andcrontab-e命令启动了 Cron 。我把 Cron 放在第一行MAILTO=mymail@gmail.com。我安装了yum install mailx. 我尝试将命令添加>/dev/null 2>&1到 Cron,即编写 * * * * * ~/t/test.sh >/dev/null 2>&1 Nothing help I Use Ubuntu 18.04 Python3.8.2 以下是grep CRON /var/log/syslog命令日志显示的内容:


Apr 30 15:35:01 av CRON[2130]: (alex) CMD (~/t/test.sh)


Apr 30 15:35:01 av CRON[2129]: (alex) MAIL (mailer 68 bytes of output put get status 0x004b from MTA#012)


有没有人遇到过这个问题?你能帮我吗?


吃鸡游戏
浏览 86回答 2
2回答

浮云间

你的 test.sh 应该是这样的:(需要完整路径)#!/bin/bash /"location where python is installed"/python/bin/python /home/alex/t/test.py

萧十郎

代码中最薄弱的环节是调用 Python 3.8 解释器时没有完整路径。您使用完整的绝对路径调用 bash,cd 到绝对路径,并通过您 cd 编辑到的目录的路径访问您的脚本。只有 Python 假设 PATH 环境变量中存在一些目录。尝试通过其位置的完整路径访问 Python 3.8。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python