手头管着三四百台服务器,每天都要查看重要服务器的磁盘空间,一台一台的登上去查看实在是费事,今天写了一个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为磁盘警报目录
代码:
- #!/bin/bash
- #部分变量
- export DATE=$(date +%Y%m%d)
- max=90
- tempip=ifconfig | grep "inet addr" | awk -F: '{print $2}' | awk '{if(NR==1) {print $1}}'
- ##统计磁盘空间
- df -lh | grep /opt | awk '{print $5 > "percent" ; print $0 > "temp";}'
- #每日磁盘统计文件
- cd /root/
- mv temp $HOSTNAME$DATE.txt
- echo $tempip>>$HOSTNAME$DATE.txt
- #磁盘警报判断文件
- cat percent | cut -d '%' -f 1 > temp
- pertemp=`cat temp`
- pertemp=`expr $pertemp + 0`
- if [ "$pertemp" -gt "$max" ]; then
- mv temp $HOSTNAME-WARNING.txt
- echo $tempip>> WARNING.txt
- rm -rf percent
- fi
- #FTP自动上传
- ftp -n -v 210.75.xx.xx <
- user ftpuser ftppassword
- binary
- bash
- lcd /root/
- cd percent
- put $HOSTNAME-WARNING.txt
- cd ../every
- mkdir $DATE
- cd $DATE
- put $HOSTNAME$DATE.txt
- bye
- EOF
- #清除临时文件
- rm -rf $HOSTNAME$DATE.txt $HOSTNAME-WARNING.txt
这样的话还有个问题,就是FTP目录内的磁盘统计文件,每台服务器一个文件放在一个以日期命名的目录内,这样太多了,可以在FTP写个SHELL脚本来把所有信息统计上来。今天没时间 每天再搞这个。
这个是按自己的想法写的,肯定有不少笨拙和幼稚的地方,望指正。
那个如果想要写类似的脚本可以PM我。
阅读(3435) | 评论(0) | 转发(1) |