运维必备!一键系统巡检脚本,让你的工作效率翻倍!

2024-12-11 17:45   新加坡  

🔥 运维必备!一键系统巡检脚本,让你的工作效率翻倍!

🌟 各位运维小伙伴们好呀!今天给大家分享一个超实用的系统巡检脚本,让你的日常运维工作事半功倍!

一、为什么需要系统巡检脚本? 🤔

在当今快节奏的IT运维环境中,系统的稳定性直接关系到业务的正常运行。作为运维工程师,我们每天都要面对:

·📊 系统性能监控

·💾 磁盘空间检查

·🌐 网络状态巡检

·...等等繁琐的工作

如何才能在繁忙的工作中提高效率呢?答案就是:自动化!让脚本来帮我们完成这些日常检查工作~ 

二、这个脚本能做什么? 🛠️

1. 核心功能

·⚡ CPU使用率监控

·💻 内存使用情况检查

·💿 磁盘空间实时检测

·🔗 TCP连接状态统计

2. 使用优势

·✨ 一键执行,简单方便

·🤖 支持自动化定时巡检

·📝 输出清晰的检查报告

·🔄 支持主流Linux系统

·🎨 易于二次开发定制

三、核心代码分享 📋

#!/bin/bash            

# 💻 CPU监控函数            
function cpu() {            
    NUM=1            
    while [ $NUM -le 3 ]; do            
        util=$(vmstat | awk 'NR==3 {print 100-$15"%"}')            
        user=$(vmstat | awk 'NR==3 {print $13"%"}')            
        sys=$(vmstat | awk 'NR==3 {print $14"%"}')            
        iowait=$(vmstat | awk 'NR==3 {print $16"%"}')            
        echo "CPU - 使用率: $util , IO等待: $iowait"            
        ((NUM++))            
        sleep 1            
    done            
}            

# 💾 内存监控函数            
function memory() {            
    total=$(free -m | awk 'NR==2 {printf "%.1f", $2/1024}')            
    used=$(free -m | awk 'NR==2 {printf "%.1f", ($2-$NF)/1024}')            
    available=$(free -m | awk 'NR==2 {printf "%.1f", $NF/1024}')            
    echo "内存 - 总大小: ${total}G , 使用: ${used}G , 剩余: ${available}G"            
}            

# 💿 磁盘监控函数            
function disk() {            
    fs=$(df -h | awk '/^\/dev/{print $1}')            
    for p in $fs; do            
        mounted=$(df -h | awk -v dev="$p" '$1==dev {print $NF}')     
        size=$(df -h | awk -v dev="$p" '$1==dev {print $2}')         
        used=$(df -h | awk -v dev="$p" '$1==dev {print $3}')         
        used_percent=$(df -h | awk -v dev="$p" '$1==dev {print $5}') 
        echo "硬盘 - 挂载点: $mounted , 总大小: $size , 使用: $used , 使用率: $used_percent"            
    done            
}            

# 🌐 TCP连接状态监控            
function tcp_status() {            
    summary=$(ss -antp | awk '{status[$1]++} END {for (i in status) printf i ":" status[i] " "}')            
    echo "TCP连接状态 - $summary"            
}            

# 执行所有检查            
cpu            
memory            
disk            
tcp_status            

四、如何使用? 🎯

1. 部署步骤

1.📥 将脚本保存为 check_system.sh

2.🔑 执行 chmod +x check_system.sh 添加执行权限

3.▶️ 运行 ./check_system.sh 开始检查

4.📊 查看输出的检查报告

2. 定时任务设置

# 每天早上9点执行巡检            
0 9 * * * /path/to/check_system.sh >> /path/to/check.log 2>&1            

五、使用效果 ✨

脚本执行后,您将看到类似下面的输出:

CPU - 使用率: 25% , IO等待: 0%            
内存 - 总大小: 15.7G , 使用: 8.2G , 剩余: 7.5G            
硬盘 - 挂载点: / , 总大小: 50G , 使用: 28G , 使用率: 56%            
TCP连接状态 - ESTAB:12 LISTEN:8 TIME_WAIT:3            


六、写在最后 ❤️

这个脚本虽然简单,但确实能帮我们节省很多时间!希望对各位运维小伙伴有帮助~ 

如果觉得文章对你有帮助的话,别忘了点个赞 👍 收藏 ⭐ 转发 🔄 三连哦!

🎯 关注我,获取更多运维干货!

💡 有任何问题都可以在评论区留言,我会及时回复的!

#运维技术 #Shell脚本 #Linux运维 #自动化运维

博闻简书
以简驭繁,书写博闻
 最新文章