Crontab调用Python脚本失败求助:定时任务未执行
解决crontab无法执行Python脚本的问题
以下是几个关键排查和修复步骤:
使用绝对路径指定脚本和Python解释器
crontab的默认工作目录并非你的用户主目录,即使脚本在主目录,也要写完整绝对路径。先通过以下命令获取路径:- 查看python3的绝对路径:
which python3 - 查看crontest.py的绝对路径:
pwd(在脚本所在目录执行)
修改定时任务为:
* * * * * /usr/bin/python3 /home/你的用户名/crontest.py- 查看python3的绝对路径:
修复脚本中的相对路径问题
脚本里的test.txt是相对路径,crontab执行时会在它的默认工作目录(通常是/)创建这个文件,而不是你的主目录。修改脚本为绝对路径:with open('/home/你的用户名/test.txt', 'a') as f: f.write('Testing!\n') # 加换行符方便查看每一次执行记录添加日志重定向排查错误
把脚本的输出和错误信息重定向到日志文件,方便定位问题:* * * * * /usr/bin/python3 /home/你的用户名/crontest.py >> /home/你的用户名/crontest.log 2>&1之后查看日志文件
crontest.log,就能看到是否有报错(比如权限不足、路径错误等)。检查crontab服务状态
确认crontab服务正在运行:systemctl status cron # Debian/Ubuntu系统 # 或者 systemctl status crond # RHEL/CentOS系统如果服务未运行,启动它:
sudo systemctl start cron sudo systemctl enable cron # 设置开机自启
内容的提问来源于stack exchange,提问作者jgore077
相关产品推荐
相关产品推荐

