编写第一个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 "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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索需求
, 脚本
, 磁盘
, shell如何编写
, com
, 一个
, shell脚本学习
兄弟
第一个shell脚本、shell脚本第一个参数、shell脚本第一个函数、linux shell脚本编写、编写shell脚本,以便于您获取更多的相关知识。

时间: 2024-08-01 17:43:30

编写第一个Shell脚本的相关文章

如何编写一个shell脚本查看某个进程是否在运行

问题描述 我需要做一个shell脚本,运行在Linux上,检查某个进程是否在运行,如果在运行则返回1,不在运行则返回0,在下对shell脚本不是很熟,请大家帮忙解决一下,谢谢啦-- ps:进程名称不能写死,应该是执行命令是传入的参数 解决方案 #!/bin/bashPROC_NAME=$1ProcNumber=`ps -ef |grep $PROC_NAME|grep -v grep|wc -l`if [ $ProcNumber -le 0 ];then result=0else result=

脚本交互-求助!我想写一个shell脚本 要求可以自动输入密码

问题描述 求助!我想写一个shell脚本 要求可以自动输入密码 困扰很多天的一个问题. 第一句为./ibe combine xxxxx@qq.com key 执行完这一句之后 会提示输入两个密码pw1和pw2 ,能不能写个脚本,将"1111"和"2222"分别在提示输入后自动输入? 谢谢! 我现在已经写出了输入第一个密码的方法 但是第二个密码 2222 不知道应当怎么写才能输入了 请指点! #! /bin/bash echo Content-type: text/h

别人给了我一个shell脚本,我从电脑里拖到虚拟机的linux系统后,如何运行这个shell

问题描述 别人给了我一个shell脚本,我从电脑里拖到虚拟机的linux系统后,如何运行这个shell 直接双击完全没反应,路径寻找./也没法运行,sh指令也不行,我是小白,懂得不多,真心求教 解决方案 先chmod -x 脚本路径 添加执行权限 然后将脚本命名为.sh文件 然后进入脚本所在目录 执行./脚本名.sh 举例说明 假如脚本名字为aaa.txt 在/tmp目录下 则命令如下 cd tmp chmod +x aaa.txt mv aaa.txt aaa.sh ./aaa.sh 解决方案

MUltihost SSH Wrapper 1.0发布 一个SHELL脚本

MUltihost SSH Wrapper 1.0该版本次要错误得到了修正,更广泛的兼容性,速度加快. Mussh(MUltihost SSH Wrapper)是一个SHELL脚本,用来同时在多台主机上执行SSH命令或脚本,使用ssh-agent和RSA/DSA来减少密码的输入次数. 下载地址: http://sourceforge.net/projects/mussh/files/mussh/1.0/mussh-1.0-1.noarch.rpm/download http://sourcefo

一个shell脚本编写小助手

功能: 1.自动检测否存在同名文件,存在则提示用户存在,并给出编辑,删除后创建,和退出3个选项 2.自动添加脚本版权信息(有自定义和默认2种方式) 3. 自动检测有无语法错误:如果有语法错误则提示用户是否退出,不退出则打开vim修改,直到修改正确为止 4.脚本编写成功后自动添加执行权限 用法: 执行脚本后面添加脚本名称即可 #!/bin/bash #:-------------CopyRight------------- #:Name:lustlost - 1.0 #:Date:2012-7-1

【SHELL 编程基础第一部分】第一个SHELL脚本HELLOSHELL及一些简单的SHELL基础书写与概念;

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/shell/759.html 本章节分享Shell 学习篇,那么对于Shell 简单介绍下,对于Shell来说,大家可以理解Shell 是一个命令解释器,类似于DOS下的command.com.它接收用户命令(如ls等),然后调用相应的应用程序.另外一点它可以使用用户的缺省凭证和环境执行 shell.传统意义上的shell指的是命令行式的sh

Shell脚本入门笔记

编写第一个shell脚本 如同其他语言一样,通过我们使用任意一种文字编辑器,比如 nedit.kedit.emacs.vi 等来编写我们的 shell 程序.程序必须以下面的行开始(必须方在文件的第一行):#!/bin/sh符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh 来执行程序.当编辑好脚本时,如果要执行该脚本,还必须使其可执行.要使脚本可执行:chmod +x filename然后,您可以通过输入: ./filename 来执行您的脚本. She

可显示Android设备选择列表,并进入指定Android设备Console的Shell脚本

      如果PC上连接多部Android设备(包括Android模拟器),在进入Console时还需要使用adb -s deviceid shell.比较麻烦,本文为此编写了一个Shell脚本文件(需要在Linux或OS X下才能使用,windows下需要用bat或cmd从新编写).       基本思路时先用adb devices命令扫描有多少Android设备连接到PC上,然后从返回值中截取设备名称,并显示一个菜单.最后用户可以选择菜单项前面的序号进入指定的Android设备.无需再输入

一个关于编写shell脚本的问题

问题描述 一个关于编写shell脚本的问题 在linux中写出一个shell脚本在12点之前.在屏幕上打印早上好.12点后18点前打印 解决方案 !bin/bash date=$(date +%k) if[ $date>12 ] then echo ""下午好!"" elif [ $date<12 ] then echo ""早上好!"" fi