【shell】每日shell练习(磁盘空间监控与告警/网络连接状态分析)

题目3:磁盘空间监控与告警

描述:分析df命令输出,对使用率超过80%的分区发出告警。

测试数据(保存为 df_output.txt):

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1       20480000  5120000  15360000  25% /
/dev/sda2       51200000 45056000   6144000  88% /home
/dev/sda3       30720000 15360000  15360000  50% /var
/dev/sdb1       10240000  9216000   1024000  90% /data
tmpfs            2048000    51200   1996800   3% /run
/dev/sdc1       40960000 32768000   8192000  80% /backup

#!/bin/bash
#磁盘监控脚本

echo "===磁盘空间监控报告==="
awk 'NR>1 {
    if ($5+0>80){
        print "⚠️ 告警:"$6"分区使用率"$5"(阈值%80)"
        if ($5+0>90){
            print "🚨 严重: 使用率超过90%,请立即处理!"
        }
    }
}' df_output.txt
#统计信息
echo -e "\n===统计信息==="
awk 'NR>1 {
    total++
    if ($5+0>80) waring++
    if ($5+0>80) critical++
}
END {
    print "总分区数:"total
    print "警告分区:"(waring+0)
    print "严重分区:"(critical+0)
}' df_output.txt

题目4:网络连接状态分析

描述:分析 netstat 输出,统计各种网络连接状态并识别异常连接。

测试数据(保存为 netstat_output.txt):

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 192.168.1.100:22        192.168.1.1:54321       ESTABLISHED
tcp        0      0 192.168.1.100:80        10.0.0.1:45678          ESTABLISHED
tcp        0      0 192.168.1.100:443       172.16.1.100:34567      ESTABLISHED
tcp        0      0 192.168.1.100:22        192.168.1.2:54322       ESTABLISHED
tcp        0      0 192.168.1.100:8080      10.0.0.2:23456          TIME_WAIT
tcp        0      0 192.168.1.100:3306      192.168.1.50:12345      ESTABLISHED
tcp        0      0 192.168.1.100:22        192.168.1.3:54323       ESTABLISHED
tcp        0      0 192.168.1.100:80        10.0.0.3:34567          TIME_WAIT
tcp        0      0 192.168.1.100:443       172.16.1.101:45678      ESTABLISHED
tcp        0      0 192.168.1.100:22        192.168.1.4:54324       ESTABLISHED
tcp        0      0 192.168.1.100:8080      10.0.0.4:12345          SYN_SENT
tcp        0      0 192.168.1.100:80        10.0.0.5:56789          TIME_WAIT
tcp        0      0 192.168.1.100:3306      192.168.1.51:23456      ESTABLISHED
tcp        0      0 192.168.1.100:22        192.168.1.5:54325       ESTABLISHED
tcp        0      0 192.168.1.100:8080      10.0.0.6:34567          SYN_SENT

#!/bin/bash
#网络连接状态分析

#统计连接状态
echo "===网络连接状态分析==="
awk 'NR>2 {
    states[$6]++
}
END{
    print "连接状态统计"
    for (state in states){
        print " " state ":" states[state]
    }
}' netstat_output.txt

#识别异常连接状态
echo -e "\n异常连接状态:"
awk 'NR>2 && ($6=="SYN_SENT" || $6=="TIME_WAIT"){
    if($6=="SYN_SENT"){
        syn_sent[$5]++
    }
    else if ($6=="TIME_WAIT"){
        time_wait[$5]++
    }
    
}
END {
    if (length(syn_sent)>0){
        print "SYN_SENT连接(可能的连接问题):"
        for (addr in syn_sent){
            print "    "addr":"syn_sent[addr]"个连接"            
        }
    }
    if(length(time_wait)>0){
        print "TIME_WAIT连接(正常但较多)"
        for (addr in time_wait){
            print "    "addr":"time_wait[addr]"个连接"
        }
    }
}' netstat_output.txt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值