【问题标题】:How to check if cronjob ran in ubuntu?如何检查 cronjob 是否在 ubuntu 中运行?
【发布时间】:2018-12-09 07:37:55
【问题描述】:

我对@9​​87654321@ 和cron 完全陌生。

我想运行一些脚本:

我编辑并保存了crontab 文件:

37 13 30 6 * /media/xxx/xxx/bin/python /home/xxx/PycharmProjects/testcron.py

testcron.py代码:

print('Hellow World')
input('Test Success')

我认为如果cronjob 运行,这会告诉我。

但是在我设置的时间没有弹出窗口。

有人能告诉我如何检查它是否运行吗?我是不是配置错了?

【问题讨论】:

    标签: python python-3.x cron ubuntu-16.04


    【解决方案1】:

    如果你还没有在你的系统上做任何事情,请尝试查看

    /var/log/syslog
    

    使用 grep 过滤/搜索:

    grep CRON /var/log/syslog
    

    您还可以将 cron 作业的输出通过管道传输到特定位置

    37 13 30 6 * /media/xxx/xxx/bin/python /home/xxx/PycharmProjects/testcron.p >> /var/log/job.log 2>&1
    

    【讨论】:

    • 谢谢。 :) cron 作业运行,输出如下:>Jun 30 13:17:01 CRON[19777]: (root) CMD (cd / && run-parts --report /etc/cron.hourly) Jun 30 13: 37:01 CRON[20874]: CMD (/media/xxx/xxx/bin/python /home/xxx/PycharmProjects/testcron.py) Jun 30 13:37:01 CRON[20873]: (CRON) info (No MTA已安装,丢弃输出)。没有安装 MTA?
    • Linux 将使用邮件系统向用户发送通知。 MTA = 邮件传输代理。据我所知,Ubuntu 默认没有一个。所以要解决这个问题,你可以安装一个。例如发出命令 ""sudo apt-get install postfix"(有各种 MTA)但是,如果您不想安装 MTA,那么上面概述的第二个选项应该为您解决这个问题。只需将输出通过管道传输到已知的位置。
    【解决方案2】:

    我总是在我的 cron 作业脚本的末尾包含 date >> ~/cronjobname.txt。每次运行时,它将继续将日期和时间附加到该文本文件中。这样做的另一个好处是,如果有人出于任何原因(测试、调试)手动运行它,您也将拥有该时间戳。

    【讨论】:

      【解决方案3】:

      在 Python 中,您可以创建一个如下所示的testcron.py 文件:

      f = open("cool_test", "w")
      f.write("")
      f.close()
      

      如果您运行python3 testcron.py,您将看到在与testcron.py 相同的目录中生成了一个cool_test 文件。

      现在,您只需从 cronjob 调用 testcron.py,就可以通过确保生成了 cool_file 来验证该过程是否有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-29
        • 2018-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-26
        • 2018-04-12
        相关资源
        最近更新 更多