Linux 日志 / 服务查看命令笔记
systemd 服务状态
systemctl status nginx # 查看服务状态
systemctl status nginx -l # 完整输出(不截断)
systemctl list-units --type=service --state=running # 所有运行中的服务
journalctl(systemd 日志)
journalctl -u nginx # 某服务全部日志
journalctl -u nginx -f # 实时追踪日志
journalctl -u nginx -n 100 # 最后 100 行
journalctl -u nginx --since "1 hour ago" # 最近 1 小时
journalctl -u nginx --since "2024-01-01 00:00:00" --until "2024-01-02 00:00:00"
journalctl -u nginx -p err # 只看 error 级别
journalctl -u nginx --no-pager # 不分页,直接输出
journalctl --disk-usage # 日志占用磁盘大小
优先级(-p 参数):emerg alert crit err warning notice info debug
tail / cat(文件日志)
tail -f /var/log/nginx/error.log # 实时追踪
tail -n 200 /var/log/nginx/error.log # 最后 200 行
tail -f /var/log/nginx/error.log | grep "error" # 实时过滤
cat /var/log/nginx/error.log # 全部输出
grep 过滤
grep "ERROR" /var/log/app.log # 过滤关键词
grep -i "error" /var/log/app.log # 忽略大小写
grep -n "error" /var/log/app.log # 显示行号
grep -A 5 "ERROR" /var/log/app.log # 匹配行 + 后 5 行
grep -B 5 "ERROR" /var/log/app.log # 匹配行 + 前 5 行
grep -C 5 "ERROR" /var/log/app.log # 前后各 5 行
grep -r "error" /var/log/nginx/ # 递归搜索目录
常用日志路径
| 服务 | 日志路径 |
|---|---|
| 系统日志 | /var/log/syslog 或 /var/log/messages |
| 认证日志 | /var/log/auth.log 或 /var/log/secure |
| Nginx | /var/log/nginx/access.log /var/log/nginx/error.log |
| Apache | /var/log/httpd/access_log /var/log/httpd/error_log |
| MySQL | /var/log/mysql/error.log |
| Docker 容器 | docker logs <容器名> |
Docker 服务日志
docker logs nginx # 全部日志
docker logs nginx -f # 实时追踪
docker logs nginx --tail 100 # 最后 100 行
docker logs nginx --since 1h # 最近 1 小时
docker logs nginx 2>&1 | grep "error" # 含 stderr 一起过滤
进程 / 端口快查
ps aux | grep nginx # 查看进程
ss -tlnp | grep 80 # 查看端口占用
lsof -i :80 # 查看端口对应进程
组合技
# 实时看日志并高亮 error
journalctl -u nginx -f | grep --color "error\|warn"
# 统计日志中各错误出现次数
grep "ERROR" /var/log/app.log | sort | uniq -c | sort -rn
# 按时间段查文件日志(配合 awk)
awk '/2024-01-01 10:00/,/2024-01-01 11:00/' /var/log/app.log
评论区