歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

編寫第一個Shell腳本

最近一直在看shell方面的資料,很乏味,也不知道看的效果,正好下午Linux群裡一兄弟,提出了一個他們公司的需求,聽了之後有點思緒,感覺應該可以寫出來,個人的第一個Script就誕生...

需求:每天登陸服務器查看磁盤空間比較麻煩,所以就想利用一個腳本,用來檢測系統磁盤空間,然後將結果通過郵件的形式發送到指定郵箱。

Script內容如下:

#!/bin/bash    
#2012/09/17   by Song    
#Email:[email protected]    

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!" [email protected] < "$Disklog"
else
   mail -s "Disk is Good!" [email protected] < "$Disklog"
fi

提出需求的內位兄弟,簡稱 咖啡兄弟,也琢磨出了一個腳本,在其他功能方面也比我的完善很多,如下:

#!/bin/sh    
#2012/09/17   by  kukafei    
#Email:[email protected]    


ip=`ifconfig|grep 192.168|awk '{print $2}'|sed 's/addr://g'`;    
time=`date +%F-%H:%M`;    
mail_address="[email protected]";    
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

Copyright © Linux教程網 All Rights Reserved