博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell中的函数、数组、告警系统分析
阅读量:7154 次
发布时间:2019-06-29

本文共 2020 字,大约阅读时间需要 6 分钟。

shell中的函数

1、#!/bin/bash

function inp(){
echo "The first parameter is $1"
echo "The second parameter is $2"
echo "The third parameter is $3"
echo "The number of parameter is $#"
echo "The script's name is $0"
}
#定义一个函数
inp a b c asd sdg

运行结果:

The first parameter is a
The second parameter is b
The third parameter is c
The number of parameter is 5
The script's name is f1.sh

2、#!/bin/bash

function inp(){
echo "The first parameter is $1"
echo "The second parameter is $2"
echo "The third parameter is $3"
echo "The number of parameter is $#"
echo "The script's name is $0"
}
inp $1 $2 $3

运行结果:

[root@centos7 shell]# sh f1.sh a b c d
The first parameter is a
The second parameter is b
The third parameter is c
The number of parameter is 3
The script's name is f1.sh

3、sum() {

s=$[$1+$2]
echo "$s"
}
sum $1 $2

运行结果:

[root@centos7 shell]# sh f1.sh 2 4

6、#!/bin/sh

ip(){
ifconfig |grep -A1 "$1: " |tail -1|awk '{print $2}'

}

read -p 'please network name: ' n

myip=ip $n
echo "input ip:"$myip

运行结果:

[root@centos7 shell]# sh ip.sh
please network name: ens37
input ip:192.168.136.128

数组

所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。

1、定义数组

a=(1,2,3,4,a)
2、查看
[root@centos7 shell]# echo ${a[*]}
1,2,3,4,a

数组的分片

[root@centos7 shell]# a=(seq 1 10)

[root@centos7 shell]# echo ${a[*]}

1 2 3 4 5 6 7 8 9 10

3、从第一个元素开始截取第三个

1 2 3

4、倒数第三个元素开始截取3个

8 9 10

5、更改元素

[root@centos7 shell]# a[1]=90
You have new mail in /var/spool/mail/root
[root@centos7 shell]# echo ${a[*]}
1 90 3 4 5 6 7 8 9 10

6、新增元素

[root@centos7 shell]# a[11]=11
[root@centos7 shell]# echo ${a[*]}
1 90 3 4 5 6 7 8 9 10 11

告警系统分析

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

思路:指定一个脚本包,包含主程序、子程序、配置文件、邮件引擎、输出日志等等。
主程序:作为整个程序的入口;
配置文件:是一个控制中心,它用来开关各个子程序,指定各个相关联的日志文件;
子程序:这才是真正的监控脚本,用来监控各个指标;
邮件引擎:是由一个Python程序来实现,它可以定义发邮件的服务器、发邮件人以及发邮件密码;
输出日志:整个监控系统要有日志输出。

要求:

机器的角色多种多样,但是所有的机器上要部署同样的监控系统,也就是说所有的机器不管什么角色,整个程序框架是一样的,不同的地方在于根据不同的角色定制不同的配置文件。

程序架构:

shell中的函数、数组、告警系统分析

bin:主程序

conf:配置文件
shares:各个监控脚本
mail:邮件引擎
log:日志

转载于:https://blog.51cto.com/jacksoner/2045919

你可能感兴趣的文章
Jmeter性能测试 入门
查看>>
jmeter实现Http接口测试介绍
查看>>
iOS 九宫格的实现
查看>>
总结各种width,height,top,left
查看>>
不显示列表
查看>>
Quartz定时任务使用小记(11月22日)
查看>>
利用Excel办公软件快速拼接SQL
查看>>
学习javascript并解读JQuery
查看>>
P1120 小木棍 [数据加强版]
查看>>
JS继承之原型继承
查看>>
Excel应该这么玩——2、命名列:消除地址引用
查看>>
Solution for: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
查看>>
区间的关系的计数 HDU 4638 离线+树状数组
查看>>
第一个只出现一次的字符
查看>>
Python基础8_文件处理
查看>>
ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效
查看>>
结对项目开发(石家庄地铁乘车系统)
查看>>
CentOS6.2安装PhpMyadmin3.3.10
查看>>
Java运行环境的搭建---Windows系统
查看>>
定时任务redis锁+自定义lambda优化提取冗余代码
查看>>