故障诊断:cron任务没有执行

时间:2019-08-20 17:58:09  来源:igfitidea点击:

如何调试cron计划任务?
如何排除cron故障?

什么是cron

Cron是类Unix操作系统中的一个实用程序,它是一个基于时间的作业调度程序。
为了维护Cron,我们需要使用crontab。

其中,任务是指脚本/命令。
当我们在crontab中定义要执行的任何任务(脚本/命令/进程)时,该任务称为cron任务。

Cron与“at”调度程序不同。
at只能使用一次。
而在Cron中,任务是根据定义的日期、日期、时间和月份执行的。

Crontab语法

m h dom mon dow 命令

在上面的语法中

  1. m=分钟

  2. h=小时

  3. dom=月份日期

  4. dow=星期几(如星期日、星期一、星期二等)

  5. Command=要从cronjob运行的命令或者脚本。

cronjob的故障排除步骤

我们列出了一些常见的cronjobs故障排除方法。

Linux cron计划任务没有执行

这是许多Linux系统管理员通常看到的常见问题。
可能的原因是

(a)命令未找到:系统管理员要执行的系统中没有命令。检查命令是否在系统中可用。环境变量设置的路径是否有该命令

(b)脚本未运行的可能原因是:

  1. 没有执行权限。

  2. 脚本的所有者或者组不对。

  3. 脚本中使用的命令在系统中不可用。

  4. 脚本有错误,代码打错字了

密码过期

对于将运行cronjob的用户,密码可能已过期。
要进行故障排除,请检查root用户和其他用户的密码过期。

chage -l username

用户帐户处于非活动状态

非活动用户帐户是cronjob突然停止工作或者不工作的另一个原因。

检查密码过期的命令:

chage -l username

磁盘使用率或者inode已100%满

当磁盘已满且没有可用空间时,将不允许运行脚本或者命令。

当分区的inode为100%时,脚本或者命令可能不会从cronjob运行。

检查磁盘空间和inode使用情况:

df -thi