Chinaunix首页 | 论坛 | 博客
  • 博客访问: 931005
  • 博文数量: 177
  • 博客积分: 8613
  • 博客等级: 中将
  • 技术积分: 2835
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-12 04:16
文章分类
文章存档

2012年(12)

2011年(24)

2010年(24)

2009年(75)

2008年(42)

我的朋友

分类: LINUX

2008-12-26 11:31:11

   俺的这个磁盘空间监控,大量使用了awk,嘿嘿,enjoy it!
 
 
#!/bin/sh
#disk_monitor.sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
LANG=zh_CN.gbk
export PATH LANG
CRITICAL=90
CONTACTS_LIST="联系人手机号码"
HOST=$(/sbin/ifconfig | awk -F'[ ]*|:' '($0~/inet addr:/ && $0!~/Mask:255.255.255.255|inet addr:127.0.0.1/){printf("%s ",$4)}END{print}')
eval $(df -k | awk -F"[ ]*|%" '(NR>1){ if($5>i) {i=$5 ; partition_used_max=$NF} }END{print "PARTITION_USED_MAX="partition_used_max ; print "PARTITION_USED_MAX_PER="i }')
eval $(df -i | awk -F"[ ]*|%" '(NR>1){ if($5>i) {i=$5 ; inode_used_max=$NF} }END{print "INODE_USED_MAX="inode_used_max ; print "INODE_USED_MAX_PER="i }')
# out something like this:
# PARTITION_USED_MAX=/home
# PARTITION_USED_MAX_PER=78
# INODE_USED_MAX=/usr
# INODE_USED_MAX_PER=18
# of course , scan this definition twice

#USED=$(df -k | awk -F"[ ]*|%" '(NR>1){print $5}' | sort -nr | head -1)
#INODE_USED=$(df -i | awk -F"[ ]*|%" '(NR>1){print $5}' | sort -nr | head -1)
if [ $PARTITION_USED_MAX_PER -ge $CRITICAL ] || [ $INODE_USED_MAX_PER -ge $CRITICAL ]
 then
  for phone in $CONTACTS_LIST
   do
SMS_MESSAGE="DISK Warn:$HOST+disk+space+$PARTITION_USED_MAX+used+$PARTITION_USED_MAX_PER%;+inode:$INODE_USED_MAX+used+$INODE_USED_MAX_PER%"
/usr/bin/wget -O result.txt "http://你的短信发送服务器?message=$SMS_MESSAGE"
               
   done
fi
阅读(1006) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~