我有一个cron作业设置为每日执行(在我自己的ubuntu上,仅供试用),如下:
0 0 * * * /path/exec.sh
它已设置为每日执行。我经常在早上8点左右打开机器。我想找出
- 我的cron工作什么时候运行,如果它已经运行了?
- 我还想看看我的cron作业是否正在运行?
有没有办法找出一个cron作业目前是否正在运行?
答案 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}
会告诉您作业何时开始以及是否仍在运行(订单将告诉您是否仍在运行)。