|
最近一直在看shell方面的资料,很乏味,也不知道看的效果,正好下午Linux群里一兄弟,提出了一个他们公司的需求,听了之后有点思绪,感觉应该可以写出来,个人的第一个Script就诞生... 需求:每天登陆服务器查看磁盘空间比较麻烦,所以就想利用一个脚本,用来检测系统磁盘空间,然后将结果通过邮件的形式发送到指定邮箱。 Script内容如下: ; Q8 G$ X( S2 A# G
#!/bin/bash #2012/09/17 by Song #Email:XXX@163.com DiskNum=`df -h | grep sda1 | awk '{print $5}' | awk -F "%" '{print $1}'` Disklog="/tmp/log.txt" df -hT | grep sda1 >>$Disklog if [ "$DiskNum" -gt 10 ]; then mail -s "Waring:Disk is Full!" XXX@163.com <</span> "$Disklog" else mail -s "Disk is Good!" XXX@163.com <</span> "$Disklog" - fi , z3 E w, u/ C
提出需求的内位兄弟,简称 咖啡兄弟,也琢磨出了一个脚本,在其他功能方面也比我的完善很多,如下: 3 F5 n7 j% E# ?
#!/bin/sh #2012/09/17 by kukafei #Email:XX@163.com ip=`ifconfig|grep 192.168|awk '{print $2}'|sed 's/addr://g'`; time=`date +%F-%H:%M`; mail_address="XX@163.com"; tmpfile=/tmp/check-disk.tmp a=`df -h | grep 'sda1'|awk '{print int($5)}'`; echo "From :$ip" >$tmpfile echo "DateTime:$time" >> $tmpfile echo "Info :aimer-sa-wangwei" >> $tmpfile echo "disk_status_use%=$a" >> $tmpfile if [[ "$a" -gt 20 ]]; then /bin/mail -s "warning ! $HOSTNAME disk is full !" $mail_address <</span> $tmpfile else /bin/mail -s "$HOSTNAME disk is ok !" $mail_address <</span> $tmpfile - fi $ N% ~# y( p8 V) p* u O/ P: N+ o6 ]
咖啡兄弟的脚本主要体现在接收报警邮件的内容方面很具体,可以看到报警的机器IP、主机名、时间、操作人和磁盘空间,而我的只是看到一个磁盘空间而已。 通过今天的Script,感觉学习shell光看书是没有用的,要多实战才行。 学习shell要四有:首先要有需求 其次要有思路 然后要有方法 最后要有行动! shell学习中,有什么不对的地方,还请大家多多提出。 % n7 u6 W9 { i" `
最近一直在看shell方面的资料,很乏味,也不知道看的效果,正好下午Linux群里一兄弟,提出了一个他们公司的需求,听了之后有点思绪,感觉应该可以写出来,个人的第一个Script就诞生... 需求:每天登陆服务器查看磁盘空间比较麻烦,所以就想利用一个脚本,用来检测系统磁盘空间,然后将结果通过邮件的形式发送到指定邮箱。 Script内容如下:
; F2 L2 h' g& ^' d* d2 A6 I#!/bin/bash #2012/09/17 by Song #Email:XXX@163.com DiskNum=`df -h | grep sda1 | awk '{print $5}' | awk -F "%" '{print $1}'` Disklog="/tmp/log.txt" df -hT | grep sda1 >>$Disklog if [ "$DiskNum" -gt 10 ]; then mail -s "Waring:Disk is Full!" XXX@163.com <</span> "$Disklog" else mail -s "Disk is Good!" XXX@163.com <</span> "$Disklog" - fi
: f. }4 I& f. I! S
提出需求的内位兄弟,简称 咖啡兄弟,也琢磨出了一个脚本,在其他功能方面也比我的完善很多,如下: 1 G* E$ A+ l! ^! v
#!/bin/sh #2012/09/17 by kukafei #Email:XX@163.com ip=`ifconfig|grep 192.168|awk '{print $2}'|sed 's/addr://g'`; time=`date +%F-%H:%M`; mail_address="XX@163.com"; tmpfile=/tmp/check-disk.tmp a=`df -h | grep 'sda1'|awk '{print int($5)}'`; echo "From :$ip" >$tmpfile echo "DateTime:$time" >> $tmpfile echo "Info :aimer-sa-wangwei" >> $tmpfile echo "disk_status_use%=$a" >> $tmpfile if [[ "$a" -gt 20 ]]; then /bin/mail -s "warning ! $HOSTNAME disk is full !" $mail_address <</span> $tmpfile else /bin/mail -s "$HOSTNAME disk is ok !" $mail_address <</span> $tmpfile - fi
$ n( ?" e( G( I* z2 b. P' Z4 }2 |; @ 咖啡兄弟的脚本主要体现在接收报警邮件的内容方面很具体,可以看到报警的机器IP、主机名、时间、操作人和磁盘空间,而我的只是看到一个磁盘空间而已。 通过今天的Script,感觉学习shell光看书是没有用的,要多实战才行。 学习shell要四有:首先要有需求 其次要有思路 然后要有方法 最后要有行动! shell学习中,有什么不对的地方,还请大家多多提出。 |