当前位置: 首页 > article >正文

Shell脚本综合案例(Linux篇)

1.监控目标主机状态

监控方法通过ping命令(ICMP协议),如果能ping通,则表示目标主机处于上线状态;反之,则处理下线状态。由于存在网络延迟情况,可能在ping的过程中产生假报警的问题,所以在ping的取值上采用3次报警阈值设置,若3次全部失败,才会报警并产生预警信息。

#!/bin/bash
#Author: zking
#监控目标主机状态
​
ead -p "请输入目标主机的IP地址:" -t 30 ip
fail_count=0
for ((i=1;i<4;i++)) do
    # -c 1表示ping 1次
    if ping -c 1 $ip >/dev/null;then
            #ping_count"$i"=1
            let fail_count=0
            echo "$ip 目标主机能ping通"
            break;
    else
            #ping_count"$i"=0
            let fail_count++
            echo "$ip 目标主机不能ping通"
    fi
    #sleep 0.3
done
echo "失败次数为:$fail_count"
if [ $fail_count -eq 0 ];then
        echo "$ip is up"
else
        echo "$ip is down"
fi

2.监控硬盘的使用率

实时监控硬盘的使用率,并将超过预警值的硬盘信息通过邮件的方式发送出去。

#!/bin/bash
#将系统日期格式化处理
DATE=$(date +%F" "%H:%M)
# 获取ens33的本地IP地址
IP=$(ifconfig ens33 | grep 'inet' | awk 'NR==1{print $2}')
# 定义邮箱地址
#MAIL="529503476@qq.com"
# 获取磁盘盘符大小情况
TOTAL=$(fdisk -l | grep 'Disk /dev/' | awk -F'[: ]' '{print ($2"="$4$5)}')
# 获取/dev/磁盘使用情况
PART_USE=$(df -h | awk '/^\/dev/{print ($1"="int($5)"="$6)}')
for i in $PART_USE; do
        PART=$(echo $i |cut -d"=" -f1)
        USE=$(echo $i |cut -d"=" -f2)
        MOUNT=$(echo $i |cut -d"=" -f3)
        if [ $USE -gt 80 ]; then
                echo "
                      Date: $DATE
                      Host: $IP
                      Total: $TOTAL
                      Problem: $PART=$USE($MOUNT)
                     " 
        fi
done


http://www.kler.cn/a/298451.html

相关文章:

  • 【Arm】Arm 处理器的半主机(semihosting)机制
  • Mysql--基础篇--事务(ACID特征及实现原理,事务管理模式,隔离级别,并发问题,锁机制,行级锁,表级锁,意向锁,共享锁,排他锁,死锁,MVCC)
  • 经典多模态模型CLIP - 直观且详尽的解释
  • Git撤销指定commit并更新远端仓库
  • Android存储方案对比(SharedPreferences 、 MMKV 、 DataStore)
  • R语言的网络编程
  • Redis - 主从复制
  • mysql性能优化-冷热数据分离
  • TortoiseGit安装与配置(图文详细)
  • 速通GPT-2:Language Models are Unsupervised Multitask Learners全文解读
  • LDtk to Unity 大致流程和一些注意点
  • PyQT开发总结
  • LED会议一体机开启超微小间距COB高清显示在会议系统中的新乐章
  • yum源配置与静态配置地址
  • OpenCV结构分析与形状描述符(17)判断轮廓是否为凸多边形的函数isContourConvex()的使用
  • vue3项目中如何动态循环设置ref并获取使用
  • STM32看门狗
  • 2.1ceph集群部署准备-硬件及拓扑
  • 如何压缩pdf?2024帮助你轻松压缩pdf软件
  • 【自用14】C++俄罗斯方块-思路复盘4-此游戏更新完结
  • c++的静态成员
  • 诗风秦韵诗词学习画廊发展“1+6步走”
  • 详解BMP图片格式以及关于Verilog图像处理的仿真环境搭建
  • HTTP 三、http在springboot中得应用
  • 华为 HCIP-Datacom H12-821 题库 (12)
  • Retrieval-based-Voice-Conversion-WebUI模型构建指南