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程序來實現,它能夠定義發郵件的服務器、發郵件人以及發件人密碼

輸出日誌:整個監控系統要有日誌輸出

要求:咱們的機器角色多種多樣,可是全部機器上都要部署一樣的監控系統,也就說全部機器無論什麼角色,整個程序框架都是一致的,不一樣的地方在於根據不一樣的角色,定製不一樣的配置文件

 

相關文章
相關標籤/搜索