免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8423 | 回复: 9
打印 上一主题 下一主题

新手请教一个检查磁盘剩余空间的shell脚本?急!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-28 21:17 |只看该作者 |倒序浏览
我是新手以前没写过shell,求高手提供一个检查磁盘剩余空间的脚本,当系统文件磁盘空剩余小于10%时就发送邮件给相关的人。哪为高手能帮忙提供一下,给个技术提示也感激万分拉。谢谢

论坛徽章:
0
2 [报告]
发表于 2007-01-29 00:09 |只看该作者
df -h | awk '{print $5}' | awk -F'%' '{if ($1 > 90 && $1 < 100)print "Disk is nearly full"}' |mail root

能实现了,不过好象比较笨.期待好的方法........

论坛徽章:
0
3 [报告]
发表于 2007-01-29 09:16 |只看该作者
检查硬盘占用空间,大于90% 就送ALERT Email 的脚本

http://bbs.chinaunix.net/viewthr ... hlight=%BD%C5%B1%BE

去年仲秋节前贴在Solaris 版的,也可以在这里找到:

http://blog.chinaunix.net/u/25893/

论坛徽章:
0
4 [报告]
发表于 2007-01-29 10:29 |只看该作者
非常感谢!用以上两种方法都可以监控磁盘空间,但还有一个问题是发送email为什么没反映,发送不成功,
脚本运行也没有错误?

我的脚本是这么写的:



  1. #!/bin/ksh


  2. adm_email_1=chusb@dsgdata.com
  3. mail_client=/usr/bin/mailx
  4. cd $DBPS_HOME
  5. DT_HOME=`pwd`
  6. #echo $DT_HOME

  7. df -k |grep $DT_HOME| awk  '{print $5}' | awk -F'%' '{if ( $1 > 30)$mail_client -s "`uname -n` Space Alert!" $adm_email_1}'
复制代码



还请高手指教。

论坛徽章:
0
5 [报告]
发表于 2007-01-29 10:31 |只看该作者
也是别人的脚本,自己改了一下
  1. #!/bin/bash
  2. WORKFILE="/fs_mon/df.work" # Holds filesystem data
  3. cat /dev/null >$WORKFILE              # Initialize to empty
  4. OUTFILE="/df.outfile" # Output display file
  5. cat /dev/null >$OUTFILE         # Initialize to empty
  6. THISHOST=`hostname`     # Hostname of this machine
  7. FSMAX="70"              # Max. FS percentage value

  8. ######## START OF MAIN #############

  9. # Get the data of interest by stripping out the rows that
  10. # are not monitored and keeping columns 1, 5 and 6

  11. df -h | tail +2 | egrep -v 'none' \
  12.       | awk '{print $1, $5, $6}'|grep sda3 > $WORKFILE

  13. # Loop through each line of the file and compare column 2

  14. while read FSDEVICE FSVALUE FSMOUNT
  15. do
  16.       FSVALUE=$(echo $FSVALUE | sed s/\%//g) # Remove the % sign
  17.       if [ $FSVALUE -gt $FSMAX ]
  18.       then
  19.           echo "$FSDEVICE mounted on $FSMOUNT is ${FSVALUE}%" \
  20.                 >> $OUTFILE
  21.       fi
  22. done < $WORKFILE
  23. #cat /dev/null>$OUTFILE
  24. if [[ -s $OUTFILE ]]
  25. then
  26.       echo -e "\nFull Filesystem(s) on $THISHOST \n"
  27.       cat $OUTFILE
  28.       cat $OUTFILE|mail -s "Full Filesystem on $THISHOST" xxx@xxx.com
  29.   
  30. fi

复制代码

论坛徽章:
0
6 [报告]
发表于 2007-01-30 01:30 |只看该作者
“检查硬盘占用空间,大于90% 就送ALERT Email 的脚本”
是为 Solaris 写的。
在Solaris 上,可以先测试一下从普通用户下发送email是否成功。
比如:

$ /usr/bin/mailx -s "`uname -n` testing_mail " chusb@dsgdata.com

论坛徽章:
0
7 [报告]
发表于 2007-01-31 16:46 |只看该作者
我用/usr/bin/mailx -s "`uname -n` testing_mail " chusb@dsgdata.com 命令测试过发送邮件 但是发送不成功,一直在那等着发不出去。请问发送email是不是要在主机上建邮件服务器才能发送呢,我的系统是AIX5.2

论坛徽章:
0
8 [报告]
发表于 2007-01-31 23:30 |只看该作者
原帖由 nodream2008 于 2007-1-31 16:46 发表

请问发送email是不是要在主机上建邮件服务器才能发送 ...



至少得能从系统上往外送邮件。楼主还是去AIX 版提问吧。

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
9 [报告]
发表于 2007-02-01 09:38 |只看该作者
邮件发送的话,楼主可以使用web程序里面的邮件发送,这个可能更好处理一些。
需要发松的时候,wget http://网址/sendmail.cgi?参数

论坛徽章:
0
10 [报告]
发表于 2007-02-03 22:55 |只看该作者
目前检查磁盘空间的脚本好解决,但就是不明白如果要发送email是不是要在主机上装mail server呢?谁知道aix系统如何实现发送email功能?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP