环境

系统平台:银河麒麟 (鲲鹏)
版本:4.5.10

症状

操作系统root用户无法触发自身创建的定时任务(cron)

问题原因

root用户密码过期,导致PAM(可插拔认证模块)认证失败,无法执行定时任务

解决方案

具体排查流程如下:

  1. 配置测试定时任务,每分钟写入到目标路径文件/u01/test_echo.txt,查看对应路径,无文件生成。
    在这里插入图片描述
  2. 查看操作系统日志文件,提示认证失败。

tail -30f /var/log/messages
在这里插入图片描述

  1. 检查定时任务日志文件,cron 服务尝试以 root 用户身份执行定时任务,PAM(可插拔认证模块)检查 root 账户时发现认证令牌已失效。

tail -30f /var/log/cron
在这里插入图片描述

  1. 查看Linux 系统的安全认证日志文件,提示root用户密码过期。

tail -30f /var/log/secure
在这里插入图片描述

  1. 检查用户有效期,当前已过期,已确认问题原因,由root用户过期导致定时任务执行失败。

chage -l root
在这里插入图片描述

  1. 修改root密码,是否设置永不过期需要根据实际情况决定。

修改root用户密码:
sudo passwd root
设置密码永不过期:
chage -M -1 root

  1. 再次检查root用户有效期,密码在有效期内。

chage -l root
在这里插入图片描述

  1. 再次测试定时任务,成功执行,无相关报错。

操作系统日志截图(/var/log/messages):
在这里插入图片描述
安全认证日志截图(/var/log/secure):
在这里插入图片描述
定时任务日志截图(/var/log/cron):
在这里插入图片描述

相关文档

报错编码

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐