使用crontab写日志

bob*_*ool 2 python linux logging debian crontab

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

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

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

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

测试代码:

import time
while(1):
    print "testing"
    time.sleep(5)
Run Code Online (Sandbox Code Playgroud)

Dig*_*sec 6

您实际上在其中包含了 sudo 。Sudo 需要密码,您必须在 sudoers 中添加配置项才能无密码运行该脚本。您的另一个选择是将其添加到根 cron 中。使用@Haleemur 的重定向命令将输出重定向到日志。我实际上建议也使用以下内容,以防万一它失败并输出到 STDERR

@reboot python /home/Desktop/Application.py >> /home/Desktop/log_file 2>&1
Run Code Online (Sandbox Code Playgroud)

更新:

尝试从终端运行以下命令

python /home/Desktop/Application.py >> /home/Desktop/log_file 2>&1
Run Code Online (Sandbox Code Playgroud)

如果它在命令行中工作,那么它没有理由在 cron 中工作。


Hal*_*Ali 5

如果/home/Desktop/Application.py将错误日志打印到STDOUT,您可以像这样简单地重定向脚本的输出

python /home/Desktop/Application.py >> /home/my_application_log.txt
Run Code Online (Sandbox Code Playgroud)

通过几个有用的链接扩展答案.

将所有输出重定向到文件是一个非常好的SO线程.您可以使用测试代码作为输出生成器来尝试代码片段.

此外,python还带有一个出色的日志记录模块.如果你想要一个强大的日志记录系统,我强烈建议你研究一下:python logging