CentOS 上排查 FetchLinux 故障的实用流程
一 快速定位思路
- 明确症状:是服务无法启动、下载失败、权限被拒绝、还是网络不通。
- 先查日志后动手:先看服务日志与系统日志,再用网络与权限排查,最后回到应用配置与依赖。
- 复现与最小化:用最小命令复现问题(例如直接 curl 目标源),逐步排除外部因素(DNS、路由、防火墙、磁盘)。
二 日志与运行状态检查
- 查看服务日志与系统日志:
- 使用 journalctl -u fetchlinux.service -e 查看最近的错误输出;必要时用 journalctl -xe 获取更详细上下文。
- 检查系统日志 /var/log/messages、/var/log/syslog 中关键词 fetchlinux。
- 查看内核与启动信息:
- 使用 dmesg | grep -i fetchlinux 排查驱动或内核层报错。
- 确认进程与监听:
- 用 ps -ef | grep fetchlinux、top/htop 观察是否运行与资源占用;
- 用 ss -tulnp | grep fetchlinux 或 netstat -tulnp | grep fetchlinux 检查端口监听与连接状态。
- 服务管理:
- 重启服务:systemctl restart fetchlinux;
- 查看状态:systemctl status fetchlinux;
- 设置开机自启:systemctl enable fetchlinux。
- 若具备调试模式:执行 fetchlinux --debug 获取更详细输出。
三 网络连通性与 DNS 排查
- 链路与路由:
- ping 目标域名或IP 检查基础连通;
- traceroute 目标域名 或 mtr 目标域名 定位丢包与延迟节点。
- 接口与地址:
- ip link 查看网卡状态(UP/DOWN);
- ip addr 或 ifconfig 检查 IP/掩码/广播 配置。
- DNS 解析:
- nslookup 目标域名、dig 目标域名 验证解析是否返回正确 IP;
- 查看 /etc/resolv.conf 确认 DNS 服务器 配置。
- 防火墙与安全组:
- 检查本机规则:iptables -L -n -v;
- 云环境同步检查安全组/NACL是否放行对应端口(如 80/443)。
- 目标连通性验证:
- 用 curl -I http://目标URL 或 curl -v 目标URL 验证 HTTP 状态码 与响应头。
四 权限与配置检查
- 运行身份与文件权限:
- 确认以 root 或 sudo 执行;
- 检查目录与文件:ls -l /path/to/dir;
- 修正所有者和权限:chown -R fetchlinux:fetchlinux /opt/fetchlinux、chmod +x /path/to/executable。
- 服务运行用户:
- 在 /etc/sysconfig/fetchlinux 或相应服务单元中核对 USER/GROUP;
- 修改后重启服务:systemctl restart fetchlinux。
- 配置文件:
- 核对 /etc/fetchlinux/config.conf 或项目目录下的 fetchlinux.conf 的语法与关键项(如 仓库URL、镜像名称、更新频率);
- 修改后重载或重启服务。
- 依赖与二进制:
- 确认依赖已装:ldd /path/to/fetchlinux/application;
- 必要时用 strace 跟踪系统调用定位失败点。
五 资源、更新与恢复
- 资源与磁盘:
- 检查磁盘空间:df -h、du -sh /opt/fetchlinux;
- 检查内存与负载:free -m、top。
- 更新与回滚:
- 更新系统与依赖:yum update;
- 若更新后异常,优先回滚最近变更(配置或版本),再逐步恢复。
- 进入救援/单用户:
- 系统无法进入或关键文件损坏时,使用 救援模式 或 单用户模式 挂载原系统分区进行修复。
- 验证与求助:
- 下载完成后用 sha256sum image-file 校验镜像完整性;
- 保留关键错误日志,携带完整报错、命令输出、网络测试结果向社区或技术支持提交。