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)
您实际上在其中包含了 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 中工作。
如果/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