设为首页收藏本站language 语言切换
查看: 886|回复: 0
收起左侧

第一个Shell Script

[复制链接]
发表于 2013-10-12 10:23:32 | 显示全部楼层 |阅读模式
最近一直在看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 "Waringisk is Full!" XXX@163.com <</span> "$Disklog"
  • else
  •    mail -s "Disk is Good!" XXX@163.com <</span> "$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 "DateTimetime" >> $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
咖啡兄弟的脚本主要体现在接收报警邮件的内容方面很具体,可以看到报警的机器IP、主机名、时间、操作人和磁盘空间,而我的只是看到一个磁盘空间而已。
通过今天的Script,感觉学习shell光看书是没有用的,要多实战才行。
学习shell要四有:首先要有需求 其次要有思路 然后要有方法 最后要有行动!
shell学习中,有什么不对的地方,还请大家多多提出。

最近一直在看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 "Waringisk is Full!" XXX@163.com <</span> "$Disklog"
  • else
  •    mail -s "Disk is Good!" XXX@163.com <</span> "$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 "DateTimetime" >> $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
咖啡兄弟的脚本主要体现在接收报警邮件的内容方面很具体,可以看到报警的机器IP、主机名、时间、操作人和磁盘空间,而我的只是看到一个磁盘空间而已。
通过今天的Script,感觉学习shell光看书是没有用的,要多实战才行。
学习shell要四有:首先要有需求 其次要有思路 然后要有方法 最后要有行动!
shell学习中,有什么不对的地方,还请大家多多提出。

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-1-31 12:16 , Processed in 0.052003 second(s), 9 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表