shell中的函数-shell中的数组-告警系统需求分析

shell中的函数:

函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字便可。python

格式:shell

格式:数组

function 函数名称() {             bash

command           服务器

}框架

#function此单词可省略,函数定义必须在脚本前面,后面调用函数直接写函数名便可函数

例子1:工具

#!/bin/bash
#显示参数
function inp(){
      echo $1 $2 $3 $0 $#
}
inp $1 $2 $3

结果:spa

# sh -x 09.sh a b c
+ inp a b c
+ echo a b c 1.sh 3
a b c 1.sh 3

 

例子2:日志

#!/bin/bash
#求和
sum (){
     s=$[$1+$2]
     echo $s    
}
sum 1 2

结果:

# sh -x sum.sh
+ sum 1 2
+ s=3
+ echo 3
3

 

例子3:

#!/bin/bash
#输入网卡名称,输出对应IP地址
ip (){
   ifconfig|grep -A1 "$1: " |tail -1|awk '{print $2}'
}

   read -p "please in put network name: " eth
   ip $eth

 

shell中的数组:

数组:一串字符创或者一串数字,造成的一个变量,把这个变量叫作数组,可针对数组某些元素进行操做

定义数组:a=(1 2 3 4 b  ); echo ${a[@]}

获取数组元素的个数:echo ${#b[@]}

获取数组第5个元素:echo ${b[4]}              #数组从0开始

显示整个数组:echo ${b[@]} 或echo ${b[*]}

数组赋值:

a[1]=100;echo ${a[@]}               #显示1 100 3 4 b

a[5]=2;echo ${a[@]}                   #显示1 100 3 4 b 2                若下标在数组中没定义,则自动添加

数组删除:

uset a

数组元素删除:

unset a[1]

 

数组分片:

定义数组:a=(`seq 1 10`)

echo ${a[@]:0:3}              #从第一个元素开始,截取3个 

echo ${a[@]:1:4}              #从第二个元素开始,截取4个

echo ${a[@]:0-3:2}          #从倒数第三个元素开始,截取2个

数组替换:

echo ${a[@]/3/100}

a=(${a[@]/3/100})

 

告警系统需求分析:

需求:使用shell定制各类个性化告警工具,但须要统一化管理、规范化管理

思路:指定一个脚本包,包含主程序、子程序、配置文件、邮件引擎、输出日志等

主程序:做为整个脚本的入口,是整个系统的命脉

配置文件:是一个控制中心,用它来开关各个子程序,指定各个相关联的日志文件

子程序:这个才是真正的监控脚本,用来监控各个指标

邮件引擎:是由一个python程序来实现,它能够定义发邮件的服务器、发邮件人以及发件人密码

输出日志:整个监控系统要有日志输出

要求:咱们的机器角色多种多样,可是全部机器上都要部署一样的监控系统,也就说全部机器无论什么角色,整个程序框架都是一致的,不一样的地方在于根据不一样的角色,定制不一样的配置文件

 

相关文章
相关标签/搜索