监视磁盘使用情况的Shell脚本(本地+远程)

monitordisk.sh如下


代码如下:

#!/bin/bash
#Updated:2008-03-03 PM By:leif(liangliwen@163.com)
EMAIL=/usr/local/bin/email
/bin/df -h >/tmp/df.txt

USE=`df -H | grep -o [0-9]*% | grep -o ‘[0-9]\+'`

for i in $USE
do
if (( $i > 95 ))
then
$EAMIL -s “WARNING Low disk space for $i” liangliwen@163.com break
fi
if (( $i > 90 ))
then
$EMAIL -s “Low disk space for $i” liangliwen@163.com fi
done

/bin/rm -f /tmp/df.txt

实现目的,任何一个分区使用到90%就发送一个邮件给指定的收件人,到95%就在邮件主题出警告(warning),说明发送邮件程序EMAIL,是从http://www.cleancode.org/projects/email 下载安装,比较灵活.

把这个shell根据需要放在crontab 实现定时检查磁盘情况

以下是补充内容:

用于监视远程主机磁盘使用情况的shell脚本,文件名:disklog.sh


代码如下:

#!/bin/bash
# 文件名:disklog.sh
# 用途:监视远程系统的磁盘使用情况
logfile="diskusage.log"
if [[ -n $1 ]]
then
logfile=$1
if
if [ ! -e $logfile ]
then
printf "%-8s %-14s %-9s %-8s %-6s %-6s %-6s %s\n" "Date" "IP ADDRESS" "Device" "Capacity" "Used" "Free" "Percent" "Status" > $logfile
fi

IP_LIST="127.0.0.1 0.0.0.0"
# 提供远程主机IP地址列表
(
for ip in $IP_LIST
do
ssh slynux@$ip 'df -H' | grep ^/dev/ > /tmp/$$.df

while read line;
do
cur_date=$(date +%D)
printf "%-8s %-14s " $cur_date $ip
echo $line | awk '{ printf("%-9s %-8s %-6s %-6s %-8s", $1,$2,$3,$4,$5); }'

pusg=$(echo $line | egrep -o "[0-9]+%")
pusg=${pusg/\%/};
if [ $pusg -lt 80 ];
then
echo SAFT
else
echo ALERT
fi
done< /tmp/$$.df
done
)>>$logfile

我们可以用cron以固定的间隔来调度脚本执行,例如在crontab中加入如此条目,以实现每天上午10点自动运行脚本:

00 10 * * * /home/sh/disklog.sh /home/log/diskusg.log

执行crontab -e命令,添加上面一行内容并保存。

也可以手动执行:

$ ./disklog.sh

(0)

相关推荐

  • 监视磁盘使用情况的Shell脚本(本地+远程)

    monitordisk.sh如下 复制代码 代码如下: #!/bin/bash #Updated:2008-03-03 PM By:leif(liangliwen@163.com) EMAIL=/usr/local/bin/email /bin/df -h >/tmp/df.txt USE=`df -H | grep -o [0-9]*% | grep -o '[0-9]\+'` for i in $USE do if (( $i > 95 )) then $EAMIL -s "WA

  • 用来查看linux内存使用情况的shell脚本

    在 linux 中,/proc/$PID/status 文件提供了该进程资源(内存,堆栈,信号量,子父进程)的使用情况,虽然linux提供了不少查看内存的命令,但都是看整体的使用情况,无法对单个进程的内存使用情况进行查看. 本文为大家提供的这个脚本,通过查看status文件中VmRSS的字段来查看系统或进程使用的内存情况,有需要的朋友不妨参考下. 复制代码 代码如下: #! /bin/bash echo -n "PidName   " > /root/script/pid.fec

  • 检测网段IP使用情况的shell脚本

    复制代码 代码如下: #!/bin/bash#main---network=192.168.1ping_count=3IP=1:>IP_use:>IP_idle:>ping_actionecho "`date "+%Y%m%d %H:%M:%S"`----->脚本开始执行......"while [ $IP -lt 255 ]dohost=$network.$IPecho "-------->开始检测$host服务器通迅是否正

  • 通过短信发送LOG归类号码发送情况的shell脚本

    复制代码 代码如下: #!/bin/bash#telno 为查询号码列表文件#sendsms.log  为短信发送结果文件#1 代表发送成功query_sms(){>submit_telno>delivered_telno>fail_delivered_telnocat telno |while read line    do#判断telno 文件里的号码哪些提交成功---保存到submit_telnoawk '{if ($1=='$line') print$0}'  sendsms.l

  • linux 监视端口是否正常的shell脚本

    复制代码 代码如下: #!/bin/bash port="80″ restart="/etc/init.d/httpd restart" EMAIL="/bin/echo selboo | mutt -s "重新启动httpd" root@selboo.com.cn" netstat -ln |awk '/^tcp/ {print $4}' |grep -q ":$port$" || { #reboot httpd

  • 利用Shell脚本实现远程MySQL自动查询

    下面这个脚本是一个简单用来执行远程数据库查询的命令,相信大家都能看得懂,这对于有些需要每天自动检查数据库或是执行某些语句的兄弟,是很有帮助的,只要稍加修改就可以 复制代码 代码如下: #!/bin/shHOST=192.168.5.40USER=abcPASS=123456QUERY=`mysql -h$HOST -u$USER -p$PASS << EOFuse testdb;select * from person where name='LiMing';exitEOF`echo $QUE

  • shell脚本快速创建格式化磁盘与详细操作步骤

    这篇文章给大家介绍如何利用shell脚本实现对一个磁盘进行分区格式化挂载,具体内容如下所示: 查看当前磁盘分区状况 查看当前磁盘的一个分区状况,使用命令:fdisk -l fdisk -l //查看磁盘信息 lsblk 让硬盘进入分区模式 fdisk /dev/sdb 命令(输入 m 获取帮助): m //打印选项菜单 添加新的分区: 命令(输入 m 获取帮助):n //添加一个分区 选择分区类型: Select (default p): e //输入e表示创建扩展分区 分区数量: 分区号 (1

  • shell脚本实现磁盘监控系统

    利用shell脚本实现每隔60秒磁盘内存数据监控 #!/bin/bash #Author:GaoHongYu #QQ:1061767621 #Time:2019-12-24 18:43:22 #Name:ncjk.sh #Version:V1.0 clear xtip=$(hostname -I) cprl=$(df -Th |head -2|tail -1|cut -d " " -f 10) cpky=$(df -Th |head -2|tail -1|cut -d " &

  • shell脚本实现本地文件与服务器文件同步

    为何创建此脚本是因为方便项目的布署,不需要手动地去同步不同的项目,而只需要简单的执行shell脚本,输入项目名就能发布到服器上. 1.shell文件代码 #!/bin/sh read -t 30 -p "请输入项目名:" name echo -e "\n" echo "项目名为:$name" case $name in cn) rsync -r ~/project1 root@192.168.18.2:/project1 --exclude=&q

  • Shell脚本实现监视指定进程的运行状态

    在之前的博客中,曾经写了自动化测试程序的实现方法,现在开发者需要知道被测试的进程(在此指运行在LINUX上的主进程的)在异常退出之前的进程的运行状态,例如内存的使用率.CPU的使用率等. 现用shell脚本实现指定进程的运行状态.直接上代码. #!/bin/sh echo "`date`" echo "Start $0---------" echo "" #每十秒监视一下 sec=10 #取得指定进程名为mainAPP,内存的使用率,进程运行状态

随机推荐