我正在使用crontab自动启动程序,使用cronatb中的以下命令
@reboot sudo python /home/Desktop/Appllication.py
是否可以通过在上面的命令中附加内容来编写所有日志(错误和其他内容),以便cron将所有错误/任何相关事件写入日志?
更新: 当使用print命令单独运行时,代码在python空闲终端中打印值。如何将打印在终端上的数据写入日志文件。例如,如果我的代码就像print" food morning" ,如何将其写入日志文件而不是在终端上打印。
测试代码:
import time
while(1):
print "testing"
time.sleep(5)
答案 0 :(得分:5)
如果/home/Desktop/Application.py
将错误日志打印到STDOUT,您可以简单地重定向脚本的输出
python /home/Desktop/Application.py >> /home/my_application_log.txt
Redirect all output to file是一个非常好的SO线程。您可以使用测试代码作为输出生成器来尝试代码片段。
此外,python附带了一个出色的日志记录模块。如果您想要整合强大的日志记录系统,我强烈建议您查看它:python logging
答案 1 :(得分:1)
你实际上是在那里包括一个sudo。 Sudo需要密码,您必须在sudoers中添加配置项才能运行该脚本无密码。您的另一个选择是将其添加到根cron。使用@ Haleemur的重定向命令将输出重定向到日志。我实际上建议使用以下内容,以防它失败并输出到STDERR
@reboot python /home/Desktop/Application.py >> /home/Desktop/log_file 2>&1
更新:
尝试从终端运行以下命令
python /home/Desktop/Application.py >> /home/Desktop/log_file 2>&1
如果它在命令行中有效,则没有理由它不能在cron中工作。