已经花了一个多小时来做这个简单的事情,但完全失败了 :/
找不到为什么 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