一、通用日志查看命令
1. 查看 systemd 服务日志(最常用)
# 实时跟踪 crond 服务日志
journalctl -u crond -f
# 查看 crond 最近 5 分钟日志
journalctl -u crond --since "5 minutes ago"
# 查看指定时间范围日志
journalctl -u crond --since "2025-12-12 15:30:00" --until "2025-12-12 15:40:00"
# 显示日志中包含 "PAM" 或 "error" 的行(忽略大小写)
journalctl -u crond | grep -i "pam\|error\|denied"
适用于:systemd 管理的服务(如 crond、sshd、nginx 等)
-u指定 unit,-f类似tail -f
2. 查看传统 syslog 日志(部分系统仍使用)
# 查看 /var/log/cron(RHEL/CentOS 专用 cron 日志)
cat /var/log/cron
tail -f /var/log/cron
grep "PAM" /var/log/cron
# 查看系统通用日志
cat /var/log/messages
grep "crond" /var/log/messages
# 查看安全相关日志
cat /var/log/secure
grep "PAM" /var/log/secure
注意:在使用 systemd-journald 的系统中,
/var/log/cron可能不存在或为空,优先用journalctl
二、PAM 相关日志排查
1. 启用 PAM 调试(临时)
编辑 /etc/pam.d/crond,在模块后加 debug 参数(需模块支持):
auth required pam_unix.so debug
然后重启 crond,日志会输出更详细信息(通常在 /var/log/secure 或 journal 中)。
生产环境慎用,可能泄露敏感信息。
2. 搜索所有 PAM 错误
# 在 journal 中搜索
journalctl | grep -i "pam.*error\|pam_parse"
# 在传统日志中搜索
grep -i "pam" /var/log/secure
grep -i "pam" /var/log/messages
三、cron 任务执行日志
1. 确认 cron 是否执行了任务
# 查看 crond 启动的 CMD 记录
journalctl -u crond | grep "CMD"
# 示例输出:
# CROND[12345]: (root) CMD (/opt/nubosh/vmsec-host/bin/health_monitor.sh ...)
2. 检查用户级 cron 日志(如有)
# 查看 root 用户的 cron 任务
crontab -l -u root
# 查看其他用户的 cron(需权限)
crontab -l -u username
注:任务是否“成功执行”还需检查脚本自身日志(如
/opt/nubosh/.../*.log)
四、系统级日志工具对比
| 命令 | 适用系统 | 特点 |
|---|---|---|
journalctl |
systemd 系统(CentOS 7+/RHEL 7+/Ubuntu 16.04+) | 结构化日志,支持时间/服务过滤 |
cat /var/log/messages |
SysVinit 或兼容系统 | 通用系统日志 |
cat /var/log/secure |
RHEL/CentOS 系列 | 记录认证、sudo、SSH、PAM 等安全事件 |
cat /var/log/cron |
RHEL/CentOS | 专用于 cron 任务记录(若 rsyslog 配置启用) |
dmesg |
所有 Linux | 内核环形缓冲日志,用于硬件/驱动问题 |
五、实用组合命令(推荐收藏)
# 1. 实时监控 cron 的 PAM 错误
journalctl -u crond -f | grep -i "pam\|error"
# 2. 查看最近 10 条 cron 相关日志
journalctl -u crond -n 10
# 3. 导出 cron 日志到文件供分析
journalctl -u crond --since today > /tmp/crond.log
# 4. 同时查看多个关键词(PAM、denied、fail)
journalctl -u crond | grep -E -i "pam|denied|fail|error"
# 5. 查看某进程 ID 的日志(从错误日志中提取 PID 后使用)
journalctl _PID=738995
六、国产操作系统注意事项
在 麒麟、凝思、统信 UOS、中科方德 等国产 Linux 中:
- 默认使用
systemd,优先用journalctl /var/log/secure通常存在,记录 PAM 认证日志- 部分系统禁用
rsyslog,导致/var/log/cron为空 → 必须依赖journalctl - 安全代理软件(如
nubosh)可能自建日志目录,例如:ls /opt/nubosh/vmsec-host/logs/
总结:排查 cron + PAM 问题的日志命令清单
# 1. 主日志(首选)
journalctl -u crond -f
# 2. 安全日志(辅助)
grep -i "pam" /var/log/secure
# 3. 传统 cron 日志(如有)
tail -f /var/log/cron
# 4. 精准过滤错误
journalctl -u crond --since "5 min ago" | grep -i "pam.*error\|permission denied"
# 5. 验证任务是否触发
journalctl -u crond | grep "CMD.*health_monitor"
掌握这些命令,可快速定位 cron 不执行、PAM 报错、权限拒绝等常见问题。
浙公网安备 33010602011771号