码迷,mamicode.com
首页 > 系统相关 > 详细

Linux下shell脚本中信号捕获和函数练习脚本之ping一个网段

时间:2016-11-17 23:48:09      阅读:324      评论:0      收藏:0      [点我收藏+]

标签:事务   .com   在线   生成   bin   pat   输入   quit   标准输入   

   该脚本主要的目的是练习在Linux bash脚本中捕获信号,顺便练习一下函数的使用,还有就是终止一个正在运行的程序后,该程序打开的文件的后续处理问题等等!


脚本功能:

  ping一个网段内的IP,检测哪些IP在线,哪些IP不在线

练习的命令:

1、mktemp

  用法:#mktemp 1117.www.qixoo.qixoo.com/Path/To/SomeFile.XXX 其中XXX可以为多个,是由系统随机生成的一段字符串

          -d  创建为目录

2、ping 测试网络是否通畅

  用法:#ping [-c #] [-W N] IP

         -c # ,#表示指定ping的次数

         -W N,N表示指定超时时间

3、trap 捕获信号

  用法:#trap ‘COMMAND‘ SIGN_Table


   常用信号有:

           1:SIGHUP   作用:使一个进程重读配置文件而不用重启进程

           2:SIGINT   作用:中断一个进程,Ctrl+C 发送的就是该信号

           9:SIGKILL  作用:无论如何都要杀死一个进程,相对于15号信号

           15:SIGTERM  作用:会让其把自己相关事务处理好后再杀死该进程

           18:SIGCONT  作用:使一个停止的进程继续进行

           19:SIGSTOP  作用:使一个进程停止作业,Ctrl+z发送的就是该信号

4、tee 读取标准输入的数据,并将其内容输出到文件

  用法:tee [-a] /Path/To/SomeFile

          -a :表示附加到既有文件的后面,而非覆盖它.

  说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存到文件。

    !/bin/bash
    NET=192.168.1
    FILE=`mktemp qkxue.net/tmp/file.XXXXXX`

    cleanup(){
    echo "Quiting..."
    rm -f $FILE
    exit 1
    }
    trap ‘cleanup‘ INT
    for I in {1..254};do
      if ping -c 1 -W 1 $NET.$I &> /dev/null; then
         echo -e "\033[32m$NET.$I is up\033[03m" | tee -a $FILE
      else
         echo -e "\033[31m$NET.$I is down\033[03m"
      fi
    done

    有兴趣的朋友,可以把这里调试一下,在ping的过程中按Ctrl+c试试看效果哦!

Linux下shell脚本中信号捕获和函数练习脚本之ping一个网段

标签:事务   .com   在线   生成   bin   pat   输入   quit   标准输入   

原文地址:http://www.cnblogs.com/qixoo/p/6075784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!