Crontab 没有运行 python 脚本,没有错误,没有任何问题

Crontab 没有运行 python 脚本,没有错误,没有任何问题

已经花了一个多小时来做这个简单的事情,但完全失败了 :/

找不到为什么 Python 在 crontab 上无法运行,而在命令行中却可以完美运行...

脚本是(bash):

#!/bin/bash

touch before_zzz_text.txt # to check if cron works at all 
ls > "before_zzz_text.txt" # just to check if I'm in the correct directory

/root/anaconda3/bin/python -V > pv.txt # this is empty! or a white char

touch after_zzz_text.txt # this works new file every minute

这样我知道它在 cron 中运行(文件 .txt 每分钟创建一次 - 就像 cron 每分钟运行一次一样)。

但是 pv.txt 是空的...所以看起来 bash 脚本不起作用?

最后,我想在 bash 脚本中运行更复杂的脚本,但我试图挖掘它为什么不起作用,因此为了简化它现在是“/root/anaconda3/bin/python -V'

答案1

经过一番讨论(参见上面的评论),似乎基本问题是将python其版本文本写入stderr,而不是预期的stdout,其中没有写入任何内容,因此文件为空。

通常,在诊断crontab问题时,最好将错误和输出记录到相同或不同的文件中。通过在调用行2>&1的末尾添加python,版本文本出现在pv.txt

/root/anaconda3/bin/python -V > pv.txt 2>&1

相关内容