我有一个python脚本需要在linux中收集命令行实用程序的输出。我曾使用下面的子进程方法来读取输出:
proc = subprocess.Popen(["cmd","arg"], stdout=subprocess.PIPE, shell=True)
(raw_domain, err) = proc.communicate()
当我从bash手动执行脚本时,它正常工作并返回命令输出,但是当我将此脚本执行添加到crontab时,subprocess.popen没有返回任何输出。
Crontab表达式:
* * * * root python /apoorv/cleanup_null_domain.py
我验证了空白'使用日志返回,我很确定。
想要提一下,我也使用了os.popen方法。相同的结果:(
答案 0 :(得分:1)
你正在代码中捕获stdout和stderr,所以它显然不会输出任何内容。打印值,或者更好的是,将它们写入日志文件。
答案 1 :(得分:1)
在第一行编辑你的脚本
sprout 1 [set shape "hedgerow" set color green set heading 0]
或
#!/usr/bin/env python
并使其可执行
#!/usr/bin/python
然后在crontab中
chmod +x /apoorv/cleanup_null_domain.py