网站首页 包含标签 函数 的所有文章

  • Linux Shell脚本监控磁盘利用率

    这是一个用于监控服务器磁盘利用率的shell脚本,它的功能和意义如下: 第一行是一个特殊的注释,用于指定执行这个脚本的解释器,这里是bash。 第三行到第十行是一些变量的定义,用于设置监控的参数,比如要监控哪些磁盘分区,报警的阈值是多少,检测的频率是多少,日志文件的位置和名称是什么等。 第十二行到第二十四行是一个函数的定义,叫做send_mail,它的作用是发送邮件给指定的收件人,告知他们哪些磁盘分区已经超过了阈值。这个函数需要一个参数,就是超过阈值的分区名称和利用率。 第二十六行到第四十八行是另一个函数的定义,叫做monitor_disk,它是主循环函数,它的作用是不断地检测磁盘利用率,并且如果发现有超过阈值的情况,就调用send_mail函数发送邮件,并且记录日志文件。这个函数没有参数,但是会使用前面定义的一些变量。 第五十行是调用monitor_disk函数的语句,这样就可以开始执行监控任务了。 #!/bin/bash # 监控服务器磁盘利用率的shell脚本 # 定义要监控的磁盘分区,可以有多个,用空格隔开 PARTITIONS="/dev/sda1 /dev/sdb1" # 定义报警阈值,单位为百分比 THRESHOLD=80 # 定义检测频率,单位为秒 INTERVAL=60 # 定义日志文件的路径和名称 LOGFILE=/tmp/disk_monitor.log # 定义邮件发送函数,需要安装mailx命令 send_mail(){ # 定义收件人邮箱地址,可以有多个,用空格隔开 MAILTO="user1@example.com user2@example.com" # 定义邮件主题 SUBJECT="Disk Usage Alert" # 定义邮件正文 MESSAGE="The following partitions have reached the threshold of $THRESHOLD%: $1" # 发送邮件 echo $MESSAGE | mailx -s "$SUBJECT" $MAILTO } # 定义主循环函数 monitor_disk(){ while true do # 获取当前时间 DATE=$(date "+%Y-%m-%d %H:%M:%S") # 遍历要监控的磁盘分区 for PARTITION in $PARTITIONS do # 获取磁盘利用率,去掉百分号 USAGE=$(df -h | grep $PARTITION | awk '{print $5}' | sed 's/%//') # 判断是否超过阈值 if [ $USAGE -ge $THRESHOLD ] then # 记录日志文件 echo "$DATE $PARTITION usage: $USAGE%" >> $LOGFILE # 调用邮件发送函数,传入超过阈值的分区名称和利用率 send_mail "$PARTITION usage: $USAGE%" fi done # 等待一定时间后再次检测 sleep $INTERVAL done } # 调用主循环函数 monitor_disk </div> ...

    2023-11-05 189

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注