常见报错排查¶
这个页面收集日常命令行和运维中最常见的错误。每个问题都尽量给出“先查什么、再怎么处理”的路径。
Permission denied¶
常见原因:
- 当前用户没有文件或目录权限。
- 文件没有执行权限。
- 目录缺少进入权限。
- SELinux、AppArmor 或安全中心策略限制。
排查命令:
whoami
id
ls -l /path/to/file
ls -ld /path/to/dir
处理建议:
# 给脚本增加执行权限
chmod +x script.sh
# 使用 sudo 执行需要管理员权限的命令
sudo command
不要一上来就执行 chmod -R 777。这会扩大权限风险。
延伸案例: Linux Permission denied 排查。
command not found¶
常见原因:
- 命令没有安装。
- 命令所在目录不在
PATH。 - 使用了错误的软件包名。
排查命令:
which command
command -v command
echo "$PATH"
处理建议:
# Debian/Ubuntu/UOS 兼容环境
sudo apt update
sudo apt install <package>
# RPM/YUM 兼容环境
sudo yum install <package>
Address already in use¶
常见原因:
- 端口已经被其他进程占用。
- 服务重复启动。
- 上一次进程没有退出。
排查命令:
ss -tulnp | grep ':8080'
lsof -i :8080
Windows PowerShell:
Get-NetTCPConnection -LocalPort 8080
处理建议:
- 确认占用端口的进程是否属于当前服务。
- 优先使用服务管理命令停止,不确定时不要直接强杀。
延伸案例: 端口被占用排查。
No space left on device¶
常见原因:
- 磁盘空间满。
- inode 用完。
- 日志或临时文件暴涨。
排查命令:
df -h
df -i
du -sh /* 2>/dev/null
find / -type f -size +500M 2>/dev/null
处理建议:
- 优先清理可确认的临时文件、旧日志、旧备份。
- 删除日志前先确认是否需要保留排障证据。
- 删除文件后空间未释放时,检查是否有进程仍占用已删除文件。
lsof | grep deleted
延伸案例: 磁盘空间满排查。
Network is unreachable¶
常见原因:
- 网卡未配置 IP。
- 默认路由缺失。
- DNS 配置错误。
- 防火墙或安全策略拦截。
排查命令:
ip addr
ip route
ping 8.8.8.8
ping example.com
cat /etc/resolv.conf
延伸案例:
systemctl service failed¶
排查命令:
systemctl status <service>
journalctl -u <service> -n 100 --no-pager
systemctl --failed
处理建议:
- 先看启动失败日志,不要反复重启。
- 检查配置文件语法。
- 检查端口、权限、路径、依赖服务。
延伸案例: systemd 服务启动失败排查。