我如何才能看到 运行 个 Cronjobs?

How Can I physically see running Cronjobs?

我有在预定时间执行 PHP 文件的 cronjobs。这些纸条可能需要一个多小时才能完成。我希望能够物理监控脚本。我有日志,当然,还有很多处理错误的方法,但有时我只是想看看发生了什么。

之前我在 Windows 上执行此操作,我会安排一个任务,该任务将在 shell 中启动,该任务将在任务 运行.

中保持打开状态

我可以在 Linux 上做这个吗?使用SSH?也许像在 cron 中使用 screen 一样?我正在使用 Linux.

的 AWS 版本

谢谢。

最简单(虽然有点脏)的方法是在 crontab 中设置一个环境变量:

* * * * * THIS_IS_A_CRON=1 /path/to/script

然后,查看它们是否 运行 在您的机器上:

ps auxe | grep THIS_IS_A_CRON

这将列出所有使用 THIS_IS_A_CRON 环境变量

启动的进程(如果有的话)

如果您所追求的只是 window,您可以在 运行 时看到脚本的输出,这与拥有:

并没有什么不同
* * * * * /path/to/script 2>&1 >> /random/output/file.txt

并打开 tail 文件的终端:

tail -100f /random/output/file.txt

您可以将 cronjob 的输出通过管道传输到日志文件,并且可以使用 unix 工具(tail、watch 等)查看所有输出,例如以下将 STDERR 和 STDOUT 重定向到日志文件:-

/usr/bin/really_long_script.sh > /tmp/script.log 2>&1

tail -f /tmp/script.log

如果脚本正在生成您想监视的输出,让它记录下来并在日志上使用 tail -f。

为此使用屏幕太过分了。