上一次在类Unix系统中运行cron工作的细节?

kan*_*rbk 45 linux cron logging

我想获得最后一次运行cron作业的细节.如果作业由于某些内部问题而中断,我想重新运行cron作业.

注意:我没有超级用户权限.

Ste*_*man 67

您可以使用以下命令查看以前执行的cron作业的日期,时间,用户和命令:

grep CRON /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

这将显示所有 cron作业.如果您只想查看某个用户运行的作业,您可以使用以下内容:

grep CRON.*\(root\) /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

请注意,cron会在作业开始时记录,因此您可能希望让冗长的作业保留自己的完成日志; 如果系统在工作中途中断,它仍然会在日志中!

编辑:如果您没有root访问权限,则必须保留自己的作业日志.这可以通过将以下内容添加到作业命令的末尾来完成:

&& date > /home/user/last_completed
Run Code Online (Sandbox Code Playgroud)

该文件/home/user/last_completed将始终包含作业完成的最后日期和时间.如果要将完成日期附加到文件>>,>则可以使用而不是.

您也可以通过将命令放在一个小的bash或sh脚本中并让cron执行该文件来实现相同的目的.

#!/bin/bash
[command]
date > /home/user/last_completed
Run Code Online (Sandbox Code Playgroud)

这个的crontab将是:

* * * * * bash /path/to/script.bash
Run Code Online (Sandbox Code Playgroud)

  • 此答案是否适用于以root用户身份运行的cron作业以及作为本地用户运行的作业? (2认同)
  • 我的CentOS上没有`syslog`路径,而是直接在`/ var/log/cron`文件中 (2认同)

Vij*_*nth 12

/var/log/cron包含cron作业日志.但是你需要root权限才能看到.

  • 我在路径*/var/log/*上看不到任何名称为*cron*的文件或目录 (2认同)
  • 我认为答案应该明确说明它们与什么分布相关!!! (2认同)

小智 6

CentOs, sudo grep CRON /var/log/cron