【问题标题】:Redirect print python output to a file, when started by a cron job当由 cron 作业启动时,将打印 python 输出重定向到文件
【发布时间】:2017-04-27 14:38:36
【问题描述】:

Cron 行:

@reboot /usr/bin/python /home/pi/main.py & >> /home/pi/log.txt 2>&1
@reboot whoami >> log2.txt

两个脚本都开始了!
两个文件都已创建!

在 log2.txt 中代表用户 pi。 但是 log.txt 保持为空。当我通过控制台启动 python 脚本时,python 脚本的输出会显示在控制台上。

怎么了,输出没有写入文件?

我也试过root的cronjob,结果一样

【问题讨论】:

    标签: python linux cron output


    【解决方案1】:

    改为。

    /usr/local/python /home/pi/main.py 2>&1 >> /home/pi/log.txt

    【讨论】:

    • 我明天试试,但我需要python脚本后面的“&”,以便脚本在后台运行:@reboot /usr/local/python /home/pi/main.py &2>&1 >> /home/pi/log.txt ?
    • 启动servicecron 不是正确的方法。请记住,cron 会重复执行此操作。
    【解决方案2】:
    def log(who, type, debug_level, msg, ip = ""):
    if (debug_level <= DEBUG):
        with open('/home/pi/log.txt','a+') as f:
            if (ip != ""):            
                f.write(strftime("%Y-%m-%d %H:%M:%S", gmtime()) + " - " + who + " - " + ip + ": " + type + msg + '\n')
            f.write(strftime("%Y-%m-%d %H:%M:%S", gmtime()) + " - " + who + " - " + type + msg + '\n')
    

    我将直接写入日志函数中的文件。

    【讨论】:

      猜你喜欢
      • 2014-09-17
      • 1970-01-01
      • 2016-06-26
      • 2013-02-05
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 2012-06-22
      相关资源
      最近更新 更多