Chinaunix首页 | 论坛 | 博客
  • 博客访问: 291992
  • 博文数量: 33
  • 博客积分: 880
  • 博客等级: 准尉
  • 技术积分: 660
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-02 22:25
文章分类

全部博文(33)

文章存档

2011年(33)

分类: Python/Ruby

2011-07-27 22:55:43

手头管着三四百台服务器,每天都要查看重要服务器的磁盘空间,一台一台的登上去查看实在是费事,今天写了一个shell脚本来实现这个功能。
实验平台是RHEL5.5 英文版,可根据平台来修改相应的参数。
 
脚本原理:
通过SHELL脚本统计LINUX的WEB应用或数据库所在磁盘空间使用情况(如/opt),若磁盘空间超出最大限额(如95%),就自动上传警报文件。
生成磁盘使用文件$HOSTNAME$DATE.TXT,自动上传到直接FTP服务器。
生成磁盘警告文件,若存在,自动上传到FTP服务器指定目录。
每天只需查看FTP上面文件即可,不必一台一台服务器的查看。
变量说明:
DATE 系统日期
HOSTNAME 主机名
max 磁盘最大限额
tempip 主机IP
位置说明:
    脚本存放位置:/root/test.sh
    FTP目录:/every为每日磁盘空间目录,/percent为磁盘警报目录
 
代码:
  1. #!/bin/bash
  2. #部分变量
  3. export DATE=$(date +%Y%m%d)
  4. max=90
  5. tempip=ifconfig | grep "inet addr" | awk -F: '{print $2}' | awk '{if(NR==1) {print $1}}'
  6. ##统计磁盘空间
  7. df -lh | grep /opt | awk '{print $5 > "percent" ; print $0 > "temp";}'
  8. #每日磁盘统计文件
  9. cd /root/
  10. mv temp $HOSTNAME$DATE.txt
  11. echo $tempip>>$HOSTNAME$DATE.txt
  12. #磁盘警报判断文件
  13. cat percent | cut -d '%' -f 1 > temp
  14. pertemp=`cat temp`
  15. pertemp=`expr $pertemp + 0`
  16. if [ "$pertemp" -gt "$max" ]; then
  17. mv temp $HOSTNAME-WARNING.txt
  18. echo $tempip>> WARNING.txt
  19. rm -rf percent
  20. fi
  21. #FTP自动上传
  22. ftp -n -v 210.75.xx.xx <
  23. user ftpuser ftppassword
  24. binary
  25. bash
  26. lcd /root/
  27. cd percent
  28. put $HOSTNAME-WARNING.txt
  29. cd ../every
  30. mkdir $DATE
  31. cd $DATE
  32. put $HOSTNAME$DATE.txt
  33. bye
  34. EOF
  35. #清除临时文件
  36. rm -rf $HOSTNAME$DATE.txt $HOSTNAME-WARNING.txt

 

这样的话还有个问题,就是FTP目录内的磁盘统计文件,每台服务器一个文件放在一个以日期命名的目录内,这样太多了,可以在FTP写个SHELL脚本来把所有信息统计上来。今天没时间  每天再搞这个。

这个是按自己的想法写的,肯定有不少笨拙和幼稚的地方,望指正。

  那个如果想要写类似的脚本可以PM我。

 

阅读(3435) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~