使用crontab写日志

时间:2014-12-27 22:47:33

标签: python linux logging debian crontab

我正在使用crontab自动启动程序,使用cronatb中的以下命令

@reboot sudo python /home/Desktop/Appllication.py

是否可以通过在上面的命令中附加内容来编写所有日志(错误和其他内容),以便cron将所有错误/任何相关事件写入日志?

更新: 当使用print命令单独运行时,代码在python空闲终端中打印值。如何将打印在终端上的数据写入日志文件。例如,如果我的代码就像print" food morning" ,如何将其写入日志文件而不是在终端上打印。

测试代码:

import time
while(1):
    print "testing"
    time.sleep(5)

2 个答案:

答案 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中工作。