环境

系统平台:银河麒麟 (鲲鹏)
版本: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

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐