# seaOps **Repository Path**: sea009/sea-ops ## Basic Information - **Project Name**: seaOps - **Description**: linux运维脚本 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-23 - **Last Updated**: 2026-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux运维脚本包 一个功能强大的Linux运维脚本包,提供系统监控、性能分析、故障诊断等功能,帮助运维工程师快速定位和解决系统问题。 ## 功能特性 ### 核心功能 - **系统状态监控** - 一键查看服务器整体状态 - **CPU性能分析** - 深入分析CPU使用情况和性能瓶颈 - **内存分析** - 全面监控内存使用,检测内存泄漏 - **磁盘IO分析** - 监控磁盘使用和IO性能 - **网络监控** - 实时监控网络连接和流量 - **进程管理** - 查看和管理系统进程 - **服务管理** - 管理系统服务状态 ### 故障诊断 - **CPU占用高原因诊断** - 自动分析CPU占用高的原因 - **内存占用高原因诊断** - 检测内存泄漏和内存占用高的原因 - **网络堵塞原因诊断** - 分析网络连接异常和堵塞原因 - **一键全面诊断** - 综合诊断系统所有潜在问题 ## 目录结构 ``` linuxops/ ├── bin/ # 主脚本目录 │ ├── main.sh # 主入口脚本 │ ├── system_status.sh # 系统状态监控 │ ├── cpu_analyze.sh # CPU分析 │ ├── memory_analyze.sh # 内存分析 │ ├── disk_analyze.sh # 磁盘分析 │ ├── network_monitor.sh # 网络监控 │ ├── process_manage.sh # 进程管理 │ ├── log_analyze.sh # 日志分析 │ ├── service_manage.sh # 服务管理 │ └── diagnose.sh # 故障诊断 ├── lib/ # 公共函数库 │ ├── common.sh # 公共函数 │ ├── colors.sh # 颜色定义 │ └── format.sh # 格式化输出 ├── config/ # 配置文件目录 │ └── config.conf # 主配置文件 ├── output/ # 输出目录 │ ├── reports/ # 报告文件 │ └── logs/ # 日志文件 ├── install.sh # 安装脚本 └── README.md # 使用文档 ``` ## 安装 ### 前置要求 - Linux操作系统(CentOS、Ubuntu、Debian等) - Bash 4.0+ - 常用系统命令:awk、sed、grep、sort、ps、free、df、top等 ### 安装步骤 1. 下载脚本包 ```bash git clone https://github.com/yourusername/linuxops.git cd linuxops ``` 2. 运行安装脚本 ```bash sudo bash install.sh ``` 3. 验证安装 ```bash linuxops --help ``` ### 卸载 ```bash sudo bash install.sh uninstall ``` ## 使用方法 ### 交互模式 直接运行命令进入交互式菜单: ```bash linuxops ``` ### 命令行模式 直接执行特定功能: ```bash # 系统状态监控 linuxops --status # CPU性能分析 linuxops --cpu # 内存分析 linuxops --memory # 磁盘IO分析 linuxops --disk # 网络监控 linuxops --network # 进程管理 linuxops --process # 服务管理 linuxops --service # 日志分析 linuxops --log # 安全检查 linuxops --security # 故障诊断 linuxops --diagnose # 系统信息收集 linuxops --collect ``` ### 查看帮助 ```bash linuxops --help ``` ## 功能详解 ### 1. 系统状态监控 一键查看服务器整体状态,包括: - 系统基本信息(主机名、操作系统、内核版本等) - CPU使用率和负载 - 内存使用情况 - 磁盘使用情况 - 网络连接状态 - 进程统计 ### 2. CPU性能分析 深入分析CPU性能: - CPU基本信息(型号、核心数、频率等) - CPU使用率详细分解(用户态、系统态、IO等待等) - 系统负载分析 - 各核心使用率 - 上下文切换统计 - 中断统计 - CPU占用Top进程 - 实时CPU监控 - CPU性能诊断 ### 3. 内存分析 全面监控内存使用: - 内存基本信息 - 内存使用率 - 内存详细分解(缓冲区、缓存等) - 共享内存分析 - 内核Slab内存分析 - 内存占用Top进程 - 实时内存监控 - 内存泄漏检测 - OOM风险分析 ### 4. 网络监控 实时监控网络状态: - 网络接口信息 - 网络连接统计 - 异常连接检测(TIME_WAIT、CLOSE_WAIT等) - 监听端口 - 网络流量统计 - 网络连接详情 - 连接来源IP统计 - 实时网络监控 - 网络性能诊断 ### 5. 故障诊断 快速诊断系统问题: #### CPU占用高诊断 - 分析CPU使用率组成 - 识别CPU占用Top进程 - 诊断用户态/系统态/IO等待占用高的原因 - 检查系统负载 - 检查上下文切换 - 提供解决方案建议 #### 内存占用高诊断 - 分析内存使用率 - 识别内存占用Top进程 - 检测内存泄漏 - 检查Swap使用 - 分析缓存占用 - OOM风险评估 - 提供解决方案建议 #### 网络堵塞诊断 - 分析网络连接状态 - 检测异常连接(TIME_WAIT、CLOSE_WAIT) - 检查网络错误 - 分析TCP重传 - 提供解决方案建议 #### 一键全面诊断 - 执行所有诊断检查 - 生成完整诊断报告 - 按优先级列出问题 ## 配置文件 配置文件位置:`/opt/linuxops/config/config.conf` 主要配置项: ```bash # 日志级别 LOG_LEVEL=INFO # 报告输出目录 REPORT_DIR=/opt/linuxops/output/reports # 日志输出目录 LOG_DIR=/opt/linuxops/output/logs # CPU使用率告警阈值 (%) CPU_ALERT_THRESHOLD=80 # 内存使用率告警阈值 (%) MEMORY_ALERT_THRESHOLD=80 # 磁盘使用率告警阈值 (%) DISK_ALERT_THRESHOLD=80 # 系统负载告警阈值 LOAD_ALERT_THRESHOLD=2 # 网络连接告警阈值 TIME_WAIT_THRESHOLD=1000 CLOSE_WAIT_THRESHOLD=100 ``` ## 输出文件 ### 报告文件 报告文件保存在:`/opt/linuxops/output/reports/` 报告命名格式:`{功能名}_{时间戳}.txt` 示例: - `system_status_20240123_103045.txt` - `cpu_analyze_20240123_103045.txt` - `memory_analyze_20240123_103045.txt` ### 日志文件 日志文件保存在:`/opt/linuxops/output/logs/` 日志命名格式:`linuxops_{日期}.log` 示例:`linuxops_20240123.log` ## 常见问题 ### 1. 命令不存在 如果运行`linuxops`命令提示不存在,请检查: 1. 是否使用root权限安装 2. 软链接是否创建成功:`ls -l /usr/local/bin/linuxops` 3. 路径是否在PATH中:`echo $PATH` ### 2. 权限不足 某些功能需要root权限,请使用sudo运行: ```bash sudo linuxops ``` ### 3. 依赖命令缺失 如果提示缺少依赖命令,请安装: ```bash # CentOS/RHEL sudo yum install -y coreutils net-tools iproute bc # Ubuntu/Debian sudo apt-get install -y coreutils net-tools iproute2 bc ``` ### 4. 网络监控无数据 如果网络监控显示无数据,请检查: 1. 是否安装了`ss`或`netstat`命令 2. 是否有权限访问`/proc/net/dev` ## 故障排查示例 ### CPU占用高 1. 运行CPU分析:`linuxops --cpu` 2. 查看CPU占用Top进程 3. 运行故障诊断:`linuxops --diagnose` → 选择"CPU占用高原因诊断" 4. 根据诊断结果采取相应措施 ### 内存占用高 1. 运行内存分析:`linuxops --memory` 2. 查看内存占用Top进程 3. 运行故障诊断:`linuxops --diagnose` → 选择"内存占用高原因诊断" 4. 检查是否有内存泄漏 5. 根据诊断结果采取相应措施 ### 网络堵塞 1. 运行网络监控:`linuxops --network` 2. 查看网络连接状态 3. 运行故障诊断:`linuxops --diagnose` → 选择"网络堵塞原因诊断" 4. 检查异常连接 5. 根据诊断结果采取相应措施 ## 版本历史 ### v1.0.0 (2024-01-23) - 初始版本发布 - 实现系统状态监控功能 - 实现CPU性能分析功能 - 实现内存分析功能 - 实现网络监控功能 - 实现故障诊断功能 ## 贡献 欢迎提交Issue和Pull Request! ## 许可证 MIT License ## 联系方式 - 作者:LinuxOps Team - 邮箱:support@linuxops.com - 项目地址:https://github.com/yourusername/linuxops ## 致谢 感谢所有使用和贡献此项目的用户!