我有一个cron工作设置为每日执行(在我自己的ubuntu,只是为了试用),如下所示:
0 0 * * * /path/exec.sh
Run Code Online (Sandbox Code Playgroud)
它已设置为每日执行.我经常在早上8点左右打开机器.我想知道
- 我的cron工作什么时候运行,如果它已经运行了?
- 我还想看看我的cron作业是否正在运行?
有没有办法找出如果一个cron作业目前正在运行?
Cwi*_*ssy 18
检查cron是否实际上正在运行任何东西(适用于ubuntu)
pstree -ap `pidof cron`
Run Code Online (Sandbox Code Playgroud)
你会得到的
2775,cron # your pid (2775) will be different to mine :-)
Run Code Online (Sandbox Code Playgroud)
或者一个树输出,其中包含cron正在运行的所有子进程(如果你没有足够的权限,它可能不会命名它们),而且Hamoriz说日志在/ var/log/syslog中,所以
grep CRON /var/log/syslog
Run Code Online (Sandbox Code Playgroud)
将为cron提供日志
我还想看看我的 cron 作业目前是否正在运行?
ps aux |grep "path/exec.sh"
Run Code Online (Sandbox Code Playgroud)
我的 cron 作业什么时候运行?
cron 日志仅在 crond 启动任务时显示,在结束时不记录。您需要将其放在您的任务中或将您的任务嵌入到一个脚本中并控制开始和结束时间。
如果它已经运行了?
cat /path/logs/messages 或 /path/logs/file 当你的系统放置 crond 日志时(这取决于你的发行版设置或你的计算机)
您可以使用以下命令显示所有活动的 cron 作业
crontab -l
Run Code Online (Sandbox Code Playgroud)
要查看 cron 作业历史记录,您可以通过以下方式显示日志:
grep CRON /var/log/syslog
Run Code Online (Sandbox Code Playgroud)
你可以通过以下方式找到 cron 守护进程是否正在运行:
pgrep cron
Run Code Online (Sandbox Code Playgroud)
或有关 cron 状态的所有信息 -
systemctl status cron
Run Code Online (Sandbox Code Playgroud)