# sscfg **Repository Path**: jdlihoo/sscfg ## Basic Information - **Project Name**: sscfg - **Description**: 极速linux系统配置采集与对比分析 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-02-25 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SpeedCfg - 轻量级配置采集与对比工具 轻量级 Linux 配置采集与对比工具,专注于系统性能相关配置的快速采集与对比。 ## 功能特性 1. **一键式采集配置** - 快速采集影响 Linux 系统性能的关键配置项 2. **配置对比** - 对比实时配置与基线配置,生成中文差异报告 3. **轻量高效**` - 纯脚本实现,采集开销小,对比速度快 4. **可配置** - 用户可自定义采集的配置文件列表 ## 支持的配置文件 | 配置文件 | 说明 | 影响方面 | |---------|------|---------| | /etc/sysctl.conf | 内核参数配置 | 系统性能、网络、内存 | | /etc/security/limits.conf | 资源限制配置 | 文件句柄、进程数、内存限制 | | /etc/fstab | 文件系统挂载配置 | I/O性能、存储 | | /etc/resolv.conf | DNS解析配置 | 网络解析性能 | | /etc/ssh/sshd_config | SSH服务端配置 | 远程访问安全与性能 | | /etc/ld.so.conf | 动态链接库配置 | 程序加载性能 | ## 安装与使用 ### 1. 配置采集脚本 (collect.sh) ```bash chmod +x collect.sh # 使用默认配置采集 ./collect.sh # 自定义采集配置(编辑 collect.conf) vim collect.conf ./collect.sh ``` **输出示例:** ``` 开始采集配置数据... 配置采集完成! 输出文件: ./data/config_20250210_143025.json 采集耗时: 0.015 秒 采集配置数量: 6 ``` ### 2. 配置对比脚本 (compare.py) ```bash chmod +x compare.py # 设置基线配置 python3 compare.py --set-baseline data/config_20250210_143025.json # 对比最新配置与基线 python3 compare.py --compare-latest # 对比指定配置与基线 python3 compare.py --compare data/config_20250210_150000.json # 输出JSON格式报告 python3 compare.py --compare-latest --json # 保存报告到文件 python3 compare.py --compare-latest --output report.txt ``` **输出示例:** ``` ================================================================================ 配置对比报告 ================================================================================ 生成时间: 2025-02-10T15:30:00 总配置文件数: 6 差异配置文件数: 1 相同配置文件数: 5 -------------------------------------------------------------------------------- 配置文件: 内核参数配置 说明: Linux内核参数配置,影响系统性能和资源限制 状态: differ 差异详情: - 修改: 配置项 [vm.swappiness] 从 [60] 变更为 [10] -------------------------------------------------------------------------------- 配置文件: 资源限制配置 说明: 用户和进程的资源限制配置,包括文件句柄数、内存等 状态: same 无差异 ... ================================================================================ ``` ## 配置文件格式 ### collect.conf ```bash default_configs=( "/etc/sysctl.conf" "/etc/security/limits.conf" " "/etc/fstab" ) ``` ## 输出文件格式 ### 采集输出 (config_*.json) ```json { "etc_sysctl.conf": { "path": "/etc/sysctl.conf", "data": { "vm.swappiness": "10", "net.ipv4.tcp_tw_reuse": "1" }, "status": "success" } } ``` ### 对比输出 (JSON格式) ```json { "timestamp": "2025-02-10T15:30:00", "total_configs": 6, "different_configs": 1, "same_configs": 5, "details": { "etc_sysctl.conf": { "name": "内核参数配置", "description": "Linux内核参数配置,影响系统性能和资源限制", "status": "differ", "differences": [ { "type": "changed", "path": "vm.swappiness", "baseline": "60", "current": "10" } ] } } } ``` ## 工作流程 1. **采集阶段** - 读取 collect.conf 配置文件 - 遍历配置文件列表 - 根据文件类型调用相应的解析器 - 输出 JSON 格式配置数据 2. **对比阶段** - 加载基线配置 (baseline.json) - 加载当前配置 - 递归对比配置差异 - 生成中文差异报告 ## 性能特点 - **采集开销**: < 50ms (6个配置文件) - **对比速度**: < 10ms (JSON格式对比) - **内存占用**: < 10MB - **依赖**: 仅依赖 bash 和 python3 ## 与 gala-ragdoll 的区别 | 特性 | gala-ragdoll | speedcfg | |------|-------------|----------| | 复杂度 | 完整的配置管理平台 | 轻量级采集对比工具 | | 依赖 | Python + Flask + Git | Bash + Python3 | | 配置文件数量 | 20+ | 6 (可扩展) | | 功能 | 采集、对比、同步、溯源 | 采集、对比 | | 部署 | 需要安装服务 | 直接运行脚本 | | 开销 | 较高 | 极低 | ## 扩展开发 ### 添加新的配置文件解析器 在 `collect.sh` 中添加新的处理器函数: ```bash handle_custom() { local file=$1 # 解析逻辑 echo '{"key":"value"}' } config_handlers["/etc/custom.conf"]="handle_custom" ``` ### 添加配置描述 在 `compare.py` 中添加配置描述: ```python CONFIG_DESCRIPTIONS = { 'etc_custom.conf': { 'name': '自定义配置', 'description': '配置说明' } } ``` ## 许可证 基于 gala-ragdoll (Mulan PSL v2) 简化开发 --- **注意**: 本工具仅用于配置采集与对比,不包含配置修改功能,确保操作安全。