shell训练计划30天之第九天

一、shell中的函数

函数是一个子shell是一个代码段

函数就是把一段代码整理到了一个小单元中,并给这个小单元起了一个名字

例子

#!/bin/bash function inp() { echo "The first par is $1" echo "The second par is $2" echo "The third par is $3" echo "The scritp name $0" echo "The number of par is $#" } inp b a 2 3 adf

 

$0是shell文件的名称

$#是参数的个数

如果不加function就要加上()

二、shell中的数组

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

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

echo ${#a[2]}获取数组a的第二个数(从零开始计数)

echo ${a[*]}等同于${a[@]}显示整个数组

数组赋值

a[1]=100;echo ${a[@]}

a[5]=2;echo ${a[@]} 如果下标不存在会自动添加一个元素

数组的删除

uset a;unset a[1]

${a[@]:3:4}从数组a第三个开始截取4个元素

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

数组的替换

${a[@]/8/6}把数组的8替换成6

三、告警系统

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

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

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

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

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

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

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

约定:所有的脚本都放到/usr/local/sbin目录下

1.主架构

 

 

 

2.主程序

 

#!/bin/bash

#作者:朱瞿炎

#时间:2019年8月21日

#是否发送邮件

export send=1

#过滤IP地址

export addr=`/sbin/ifconfig | grep -A1 'eth0' |grep addr: |awk '{print $2}'|awk -F: '{print $2}'`

dir= `pwd`

#只需要最后一级目录名

last_dir=`echo $dir|awk -F '/' 'print $NF'`

#下面的判断目的是,保证执行脚本的时候我们在bin目录里,不然监控脚本、邮件、日志可能找不到

if [ $last_dir == "bin" ] || [ $last_dir == "bin/" ];then

conf_file="../conf/mon.conf"

else

echo "you shoud cd bin dir"

exit

fi

exec 1>>../log/man.log 2>>../log/err.log

echo "`date + "%F %T"` load average"

/bin/bash ../shares/load.sh

#先检查配置文件中是否需要监控502

if grep -q 'to_mon_502=1' $conf_file; then

export log= `grep 'logfile=' $conf_file |awk -F '=''{sprint $2}' |sed 's/ //g'`

/bin/bash ../shares/502.sh

fi

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值