加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

编写第一个Shell脚本

发布时间:2013-05-03 05:16:29 所属栏目:Linux 来源:站长网
导读:最近一直在看shell方面的资料,很乏味,也不知道看的效果,正好下午Linux群里一兄弟,提出了一个他们公司的需求,听了之后有点思绪,感觉应该可以写出来,个人
最近一直在看shell方面的资料,很乏味,也不知道看的效果,正好下午Linux群里一兄弟,提出了一个他们公司的需求,听了之后有点思绪,感觉应该可以写出来,个人的第一个Script就诞生...

需求:每天登陆服务器查看磁盘空间比较麻烦,所以就想利用一个脚本,用来检测系统磁盘空间,然后将结果通过邮件的形式发送到指定邮箱。

Script内容如下:

#!/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 < "$Disklog"
else
   mail -s "Disk is Good!" XXX@163.com < "$Disklog"
fi

提出需求的内位兄弟,简称 咖啡兄弟,也琢磨出了一个脚本,在其他功能方面也比我的完善很多,如下:

#!/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 < $tmpfile    
    else
           /bin/mail -s "$HOSTNAME disk is ok !" $mail_address < $tmpfile    
    fi

咖啡兄弟的脚本主要体现在接收报警邮件的内容方面很具体,可以看到报警的机器IP、主机名、时间、操作人和磁盘空间,而我的只是看到一个磁盘空间而已。

通过今天的Script,感觉学习shell光看书是没有用的,要多实战才行。

学习shell要四有:首先要有需求 其次要有思路 然后要有方法 最后要有行动!

shell学习中,有什么不对的地方,还请大家多多提出。

本文出自 “我的未来不是梦。” 博客,请务必保留此出处http://song49.blog.51cto.com/4480450/995147

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读