diagnose.sh 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #!/bin/bash
  2. # ========================================
  3. # DHCP & DNS 管理器 - 诊断脚本
  4. # ========================================
  5. echo "🔍 DHCP & DNS 管理器 - 诊断工具"
  6. echo "=================================="
  7. echo ""
  8. # 1. 查看服务状态
  9. echo "📊 服务状态:"
  10. systemctl status dhcp-dns-manager --no-pager
  11. echo ""
  12. # 2. 查看详细日志
  13. echo "📋 最近日志(最后 50 行):"
  14. journalctl -u dhcp-dns-manager -n 50 --no-pager
  15. echo ""
  16. # 3. 检查配置文件
  17. echo "⚙️ 配置文件检查:"
  18. CONFIG_FILE="/opt/dhcp-dns-manager/configs/config.json"
  19. if [ -f "$CONFIG_FILE" ]; then
  20. echo "✓ 配置文件存在: $CONFIG_FILE"
  21. echo "内容:"
  22. cat "$CONFIG_FILE"
  23. else
  24. echo "❌ 配置文件不存在!"
  25. fi
  26. echo ""
  27. # 4. 检查可执行文件
  28. echo "🔨 可执行文件检查:"
  29. EXEC_FILE="/opt/dhcp-dns-manager/dhcp-dns-manager"
  30. if [ -f "$EXEC_FILE" ]; then
  31. echo "✓ 可执行文件存在: $EXEC_FILE"
  32. ls -lh "$EXEC_FILE"
  33. # 测试运行
  34. echo ""
  35. echo "测试运行(3 秒后自动退出)..."
  36. timeout 3 "$EXEC_FILE" -config "$CONFIG_FILE" 2>&1 || true
  37. else
  38. echo "❌ 可执行文件不存在!"
  39. fi
  40. echo ""
  41. # 5. 检查端口占用
  42. echo "🔌 端口占用检查:"
  43. echo "DNS (53/udp):"
  44. sudo netstat -ulpn 2>/dev/null | grep :53 || echo " 未占用"
  45. echo "DHCP (67/udp):"
  46. sudo netstat -ulpn 2>/dev/null | grep :67 || echo " 未占用"
  47. echo "Web (8080/tcp):"
  48. sudo netstat -tlnp 2>/dev/null | grep :8080 || echo " 未占用"
  49. echo ""
  50. # 6. 检查数据库目录
  51. echo "💾 数据目录检查:"
  52. DATA_DIR="/opt/dhcp-dns-manager/data"
  53. if [ -d "$DATA_DIR" ]; then
  54. echo "✓ 数据目录存在: $DATA_DIR"
  55. ls -la "$DATA_DIR"
  56. else
  57. echo "❌ 数据目录不存在!"
  58. fi
  59. echo ""
  60. # 7. 检查权限
  61. echo "🔐 权限检查:"
  62. echo "安装目录:"
  63. ls -la /opt/dhcp-dns-manager/ | head -10
  64. echo ""
  65. # 8. 检查 systemd 服务文件
  66. echo "📄 systemd 服务文件:"
  67. cat /etc/systemd/system/dhcp-dns-manager.service
  68. echo ""
  69. echo "=================================="
  70. echo "诊断完成!"
  71. echo ""
  72. echo "💡 常见解决方案:"
  73. echo "1. 端口被占用 → 修改 configs/config.json 中的端口"
  74. echo "2. 权限不足 → sudo systemctl restart dhcp-dns-manager"
  75. echo "3. 配置错误 → 检查 configs/config.json 格式"
  76. echo "4. 重新编译 → cd /vol1/@apphome/trim.openclaw/data/workspace/dhcp-dns-manager && sudo ./install.sh"
  77. echo ""