Shell脚本:系统资源检查工具
功能说明
通过编写自动化脚本执行系统监控和批处理操作,检查关键系统资源状态。
适用场景
- 系统日常监控与巡检
- 文件处理与备份
- 定时任务调度
- 基础网络配置
- 运维自动化任务
优势特点
- 高度灵活性:可自定义检查项目和阈值
- 强大的系统交互能力:直接调用系统命令和工具
- 支持复杂逻辑控制:条件判断、循环、函数等
- 管道操作:可轻松组合多个命令
脚本内容
#!/bin/bash# ============================================# 系统资源检查脚本# 功能:检查CPU、内存、磁盘使用率及系统负载# ============================================# 检查CPU使用率check_cpu(){# 获取CPU使用率(取整数值)cpu_usage=$(top-bn1|grep"Cpu(s)"|awk'{print $2}'|awk-F'%''{print int($1)}')echo$cpu_usage}# 检查内存使用率check_memory(){# 计算内存使用百分比(保留两位小数)memory_usage=$(free|grepMem|awk'{printf "%.2f", $3/$2 * 100.0}')echo$memory_usage}# 检查磁盘使用率check_disk(){# 获取磁盘使用率最高的分区(排除特殊文件系统)disk_usage=$(df-h|grep-vE'^Filesystem|tmpfs|cdrom|udev'|awk'{print $5}'|sed's/%//g'|sort-n|tail-1)echo$disk_usage}# 检查系统负载check_load(){# 获取1分钟平均负载system_load=$(uptime|awk-F'load average:''{print $2}'|awk'{print $1}'|sed's/,//')echo$system_load}# 显示系统资源状态show_status(){cpu=$(check_cpu)mem=$(check_memory)disk=$(check_disk)load=$(check_load)echo"========================================"echo" 系统资源检查报告"echo"========================================"echo"CPU使用率 :$cpu%"echo"内存使用率 :$mem%"echo"磁盘最高使用率:$disk%"echo"系统负载(1min):$load"echo"========================================"# 简单的阈值检查(可自定义)if[$cpu-gt80];thenecho"⚠️ 警告:CPU使用率过高!"fiif(($(echo "$mem>80"|bc-l)));thenecho"⚠️ 警告:内存使用率过高!"fiif[$disk-gt85];thenecho"⚠️ 警告:磁盘使用率过高!"fi}# 主函数main(){show_status}# 执行主函数main使用方法
1. 创建脚本文件
# 使用文本编辑器创建脚本vicheck_system.sh将上述脚本内容复制到文件中,保存并退出。
2. 添加执行权限
# 给脚本添加执行权限chmod+x check_system.sh3. 运行脚本
# 直接运行脚本./check_system.sh# 或使用bash命令运行bashcheck_system.sh# 或使用sh命令运行shcheck_system.sh4. 定时执行(可选)
# 编辑crontab定时任务crontab-e# 添加以下行,表示每5分钟执行一次(根据需求调整)*/5 * * * * /path/to/check_system.sh>>/var/log/system_check.log2>&1# 添加以下行,表示每天上午10点执行010* * * /path/to/check_system.sh>>/var/log/system_daily_check.log2>&15. 带参数运行(扩展功能)
# 可以修改脚本以支持不同参数# 例如:只检查CPU和内存./check_system.sh --cpu-memory# 或指定输出格式./check_system.sh --json输出示例
======================================== 系统资源检查报告 ======================================== CPU使用率 : 24% 内存使用率 : 65.33% 磁盘最高使用率: 78% 系统负载(1min): 1.25 ========================================注意事项
- 脚本需要在Linux/Unix环境下运行
- 确保有执行
top、free、df、uptime等命令的权限 - 可根据实际需求调整阈值和检查项
- 在生产环境中使用时,建议添加日志记录和告警功能
扩展建议
- 添加邮件或短信告警功能
- 支持输出HTML或JSON格式
- 添加历史数据记录和趋势分析
- 集成到监控系统(如Zabbix、Prometheus)