请问监控Linux服务器磁盘容量的脚本怎么写?

请问监控Linux服务器磁盘容量的脚本怎么写?,第1张

看看下面这个脚本(注意要用英文的标点符号):

#!/bin/bash

partion_list=( 'df -h | awk ‘NF>3&&NR>1{sub(/%/,””,$(NF-1))print $NF,$(NF-1)}’' )

critical=90

notification_email()

{

emailuser='user@qq.com' “发送邮件地址”

emailpasswd='password'“成功开启POP3/SMTP服务,在第三方客户端登录时,密码框请输入的授权码”

emailsmtp='smtp.qq.com'

sendto='user2@qq.com' “接收邮箱地址”

title='Disk Space Alarm' “邮件标题”

/usr/local/bin/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd -m $emailmessage

}

crit_info=””

for (( i=0i<${#partition_list[@]}i+=2 ))

do

if [ “${partition_list[ ((i+1)) ]}” -lt “$critical” ]then

echo “ok! ${partition_list[i]} used ${partition_list[ ((i+1)) ]}%”

else

if [ “${partition_list[ ((i+1)) ]}” -gt “$critical” ]then

crit_info=$crit_info”Warning!!! ${partition_list[i]}

used ${partition_list[ ((i+1) ] }%\n”

fi

fi

done

if [ “$crit_info” != ”” ]then

echo -e $crit_info | notification_email

fi

上面脚本的功能是监控每个磁盘分区,当磁盘分区使用空间超过90%时,就通过sendEmail来发送邮件告警。sendEmail是个开源工具,可以从http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz下载;

解压后把sendEmail拷贝到/usr/local/bin下即可。

Linux性能监控工具 - Nmon安装及简介

tar.gz安装包安装方式:

1)用root用户登录到系统中;

2)建目录:#mkdir /nmon,作为Nmon的安装目录;

3)把nmon_linux_14g.tar.gz用ftp上传到/nmon,或者通过其他介质拷贝到/nmon目录中;

4)进入./nmon目录下,cd ./nmon;

5)解压缩上传的压缩包,tar -xf nmon_linux_14g.tar.gz;

6)执行以下命令进行安装:

6.1) cp nmon_linux_x86_64 nmon;

6.2) cp nmon /bin/nmon

6.3) cp nmon /usr/bin/nmon

6.4) cp nmon /usr/local/bin/nmon

7)此时安装目录下回出现nmon文件,执行授权命令:#chmod +x nmon,完成安装。

【简介】:

nmon是一种在AIX与各种Linux *** 作系统上广泛使用的监控与分析工具,相对于其它一些系统资源监控工具来说,nmon所记录的信息是比较全面的,它能在系统运行过程中实时地捕捉系统资源的使用情况,并且能输出结果到文件中,然后通过nmon_analyzer工具产生数据文件与图形化结果。

nmon所记录的数据包含以下一些方面(也是我们在寻找问题过程中所关注的资源点):

cpu占用率

内存使用情况

磁盘I/O速度、传输和读写比率

文件系统的使用率

网络I/O速度、传输和读写比率、错误统计率与传输包的大小

消耗资源最多的进程

计算机详细信息和资源

页面空间和页面I/O速度

用户自定义的磁盘组

网络文件系统

另外在AIX *** 作系统上,nmon还能监控到其他的一些信息,如异步I/O等。

#!/bin/sh

ip=192.168.1.1 #你的真实IP地址

time=`date +%F-%H:%M`

mail_address="你的邮件地址"

tmpfile=/tmp/check-disk.txt

a=`df -h | grep 'sda1'|awk '{print int($5)}'` #指定过滤的硬盘分区

touch /tmp/check-disk.txt

echo "From :$ip" >$tmpfile #这里用“>”的意思是覆盖,保证每次发邮件的内容都是新的。

echo "DateTime:$time" >>$tmpfile

echo "Info :yourname" >>$tmpfile

echo "disk_status_use=$a%" >>$tmpfile

if [[ "$a" >85 ]]then #指定分区的磁盘使用空间大于85%就报警

/bin/mail -s "warning ! $HOSTNAME disk is full !" $mail_address <$tmpfile

else

/bin/mail -s "$HOSTNAME disk is ok !" $mail_address <$tmpfile

fi


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8798702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存