如何查看当前运行的cron作业?

时间:2016-04-27 07:20:24

标签: linux cron

我有一个cron作业设置为每日执行(在我自己的ubuntu上,仅供试用),如下:

0 0 * * * /path/exec.sh

它已设置为每日执行。我经常在早上8点左右打开机器。我想找出   - 我的cron工作什么时候运行,如果它已经运行了?
  - 我还想看看我的cron作业是否正在运行?

有没有办法找出一个cron作业目前是否正在运行?

5 个答案:

答案 0 :(得分:10)

检查cron是否实际上正在运行任何东西(适用于ubuntu)

pstree -ap `pidof cron`

你会得到

2775,cron # your pid (2775) will be different to mine :-)

或包含cron正在运行的所有子进程的树输出(如果您没有足够的权限,它可能不会命名它们) 正如Hamoriz所说,日志在/ var / log / syslog中

grep CRON /var/log/syslog

只会为cron

提供日志

答案 1 :(得分:0)

我认为你只能检查你的进程或监视/ var / log / cron

更新:在ubuntu上,日志在/ var / log / syslog

答案 2 :(得分:0)

我还想看看我的cron作业是否正在运行

ps aux |grep "path/exec.sh"

我的cron工作什么时候开始运行?

Cron日志仅在crond启动任务时显示,而在结束时不显示。你需要把它放在你的任务上,或者把你的任务嵌入到一个scritp中,控制时间是开始和结束。

如果它已经运行了吗?

当你的系统放入crond的日志时,

cat / path / logs / messages或/ path / logs / file(这取决于你的发行版设置或你的计算机)

答案 3 :(得分:0)

在Centos上,cron日志在/var/log/cron*下生成

如果不是,那么您可以按照以下步骤启用它:

vi /etc/rsyslog.conf

在文件中,您将找到以下行:

#cron.*                     -/var/log/cron

取消注释该行(删除#)并保存rsyslog..conf文件。 接下来,您将必须重新启动rsyslog守护程序:

service rsyslog restart

答案 4 :(得分:-1)

如果您只是想知道您的cronjob当前是否正在运行以及它何时开始运行,那么我会找到以下最简单的方法:

0 0 * * * touch /path/cron.start;  /path/exec.sh; touch /path/cron.end

这将创建一个带有时间戳的文件/path/cron.start,时间戳是开始时间。作业完成后,文件/path/cron.end将具有cron完成时的时间戳。因此,简单的ls -lrt /path/cron.{start,end}会告诉您作业何时开始以及是否仍在运行(订单将告诉您是否仍在运行)。