当前位置: 首页 > 知识库问答 >
问题:

Cron作业无法读取以前的Cron日志

仲柏
2023-03-14

为了检测cron作业中可能发生的故障,我设置了另一个cron作业来检查crontab发出的上一个日志:

def check_last_cron():
    with open('/home/pi/Desktop/cron_output.log') as f:
        txt = f.read()
        f.close()
        if 'Traceback' in txt:
            print('Traceback detected')
            send_to_phone(txt)
        else:
            print('no Traceback detected')

手动运行时,一切正常:

  • 剧本是这样写的

Crontab:

*/5 * * * * python3 /home/pi/Desktop/initialize.py > /home/pi/Desktop/cron_output.log 2>&1
*/5 * * * * python3 /home/pi/Desktop/checker.py > /home/pi/Desktop/log.log 2>&1

但当使用crontab运行时,日志读取为空。我错过了什么?

共有3个答案

秦涵涤
2023-03-14

每次重新启动cron作业时,以前的cron日志似乎都会被擦除。

添加另一个cron作业来检查第一个日志是否正常工作,但只能通过以下时间偏移来执行:

*/5 * * * * python3 /home/pi/Desktop/initialize.py > /home/pi/Desktop/cron_output.log 2>&1
1-59/5 * * * * python3 /home/pi/Desktop/checker.py > /home/pi/Desktop/log.log 2>&1

该1-59/5正在执行检查程序。每5分钟一次,初始化前一分钟。如本文所述

国跃
2023-03-14

我不知道你为什么要同时运行这两个脚本检查器。py文件应该在初始化之后运行。py

试试这个-

*/5 * * * * python3 /home/pi/Desktop/initialize.py > /home/pi/Desktop/cron_output.log 2>&1

*/6 * * * * python3 /home/pi/Desktop/checker.py > /home/pi/Desktop/log.log 2>&1

另外:-你目前在log.log文件中得到了什么?没有检测到回溯。?

白信鸿
2023-03-14

我一点也不确定,但也许你可以尝试以下两件事:

  • 不需要使用两个cron作业,只需执行以下操作:
    */5 * * * * python3 /home/pi/Desktop/initialize.py > /home/pi/Desktop/cron_output.log 2>&1 && python3 /home/pi/Desktop/checker.py > /home/pi/Desktop/log.log 2>&1

这样它就会在第一个命令之后执行

  • 也许将sudo添加到第二个命令中,它可能没有读取日志的权限(似乎不太可能,但谁知道呢)
    sudo python3 /home/pi/Desktop/checker.py > /home/pi/Desktop/log.log 2>&1
 类似资料:
  • 我在kubernetes中运行cron作业,作业成功完成,我将输出记录到日志文件中(路径:存储/日志),但由于容器已完成,我无法访问该文件。 是否有无论如何我可以让我的日志文件内容显示在kubectl日志命令或其他替代?

  • 我设置了一个cron任务来调用这个漂亮的脚本。在groovy脚本中,我使用“ch.qos.logback”来记录日志。 如果我手动运行脚本,日志工作正常,但是当通过cron作业运行时,没有输出到日志文件。 有人见过类似的问题吗?谢谢你!

  • 问题内容: 在Linux中,是否可以在前台(或交互模式)运行cron作业?(我有一个定期运行的程序来接受用户输入并进行一些处理。因此,我想将其安排为可以在前台运行的Cron作业)。 问题答案: 在您的用户的上尝试一下: 它将在执行脚本的同时(每小时)打开一次,并在脚本退出后退出。当然,您应该修改零件以适合您的需求。

  • 我希望每天早上9点完成一项任务。我得到了一些有趣的结果。目前我的工作是这样的: 这是怎么回事?这是正确的表达吗?

  • 我想为我的应用程序安排cron作业来完成特定的任务。我如何在这个需求中安排? 要求:cron数据。js应每周一至周五每小时运行一次,时间为上午9:30至下午3:30。