shell编程入门_shell监控硬盘

除夕夜,希望大家吃好喝好!

shell监控硬盘的使用状况,超过89%将会发生警报,并写进check_HD.log文件里。

  1. #!/bin/sh
  2. #a1=$(df -h|sed '1d'|awk '{print $5}'|sed 's/%//g')
  3. a1=$(df -h|sed '1d'|awk '{print $5}'|sed 's/%//g'|sed -n 1p)
  4. a2=$(df -h|sed '1d'|awk '{print $5}'|sed 's/%//g'|sed -n 2p)
  5. a3=$(df -h|sed '1d'|awk '{print $5}'|sed 's/%//g'|sed -n 3p)
  6. a4=$(df -h|sed '1d'|awk '{print $5}'|sed 's/%//g'|sed -n 4p)
  7. b1=$(df -h|sed 1d|awk '{print $1}'|sed -n 1p)
  8. b2=$(df -h|sed 1d|awk '{print $1}'|sed -n 2p)
  9. b3=$(df -h|sed 1d|awk '{print $1}'|sed -n 3p)
  10. b4=$(df -h|sed 1d|awk '{print $1}'|sed -n 4p)
  11. DAY=$(date +%F\ %T)
  12. if [ $a1 -gt 89 ];then
  13. echo "$DAY $b1 would be near 90% !" >> /root/check_HD.log
  14. if [ $a2 -gt 89 ];then
  15. echo "$DAY $b21 would be near 90% !" >> /root/check_HD.log
  16. if [ $a3 -gt 89 ];then
  17. echo "$DAY $b3 would be near 90% !" >> /root/check_HD.log
  18. if [ $a4 -gt 89 ];then
  19. echo "$DAY $b4 would be near 90% !" >> /root/check_HD.log
  20. fi fi fi fi

crontab五分钟调用一次。

  1. # m h  dom mon dow   command
  2. #@hourly /bin/rsync.php
  3. 0-59 * * * * /root/check_apache_running.sh
  4. 5 * * * * /root/check_HD.sh


6 Comments

  1. 博主你好,虽然文章旧了,但是有错误还是要指出来的^-^

    [root@server2 boot]# df -h|sed ‘1d’
    /dev/mapper/VG00-LV00
    11G 2.1G 7.7G 22% /
    tmpfs 242M 0 242M 0% /dev/shm
    /dev/sda1 488M 50M 414M 11% /boot
    [root@server2 boot]# df -h|sed ‘1d’ |awk ‘{print $5}’

    /
    0%
    11%

    分区名字长的话这个脚本是有问题的

    • 感谢指出错误,那个年代刚开始学linux不久~~~ 目前来看如果分区名字长的话试试 awk ‘{print $(NF-1)}’ 或者nagios下有现成的脚本,加参数即可执行监控了

  2. 给小桥拜年啦



    回复:呵呵~新年快乐哦~

  3. 流水太努力了~大过年的还在研究技术,真牛!



    回复:我瞎搞的~ daniel新年快乐~

  4. 过来拜个早年,新年快乐,牛气冲天,万事如意~~



    回复:子曰新年快乐~!

  5. 拜年了…



    回复:Hi虫儿 新年快乐哦!