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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

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:日志










本文转自 iekegz 51CTO博客,原文链接:http://blog.51cto.com/jacksoner/2045919,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
存储 Shell
Shell 数组
【10月更文挑战第16天】
42 3
|
3月前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
69 6
|
2月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
3月前
|
Shell PHP 索引
Shell 数组
10月更文挑战第2天
30 1
|
5月前
|
Shell KVM 虚拟化
Shell 数组编程
【8月更文挑战第22天】 Shell 数组编程
57 10
|
5月前
|
应用服务中间件 Shell nginx
shell分析nginx日志的一些指令
shell分析nginx日志的一些指令
|
7月前
|
Shell
5.Electron之shell(使用系统默认浏览器打开网页)
5.Electron之shell(使用系统默认浏览器打开网页)
124 1
|
8月前
|
存储 算法 安全
shell 脚本之 函数与数组
shell 脚本之 函数与数组
|
7月前
|
存储 Shell 开发者
Shell 数组:灵活操作的秘诀
**Shell 数组简介**:作为基础数据结构,数组在Shell编程中不可或缺。它们存储多个值,下标从0开始。创建如`array=(值1 值2...)`,访问用`${array[index]}`。增删改查及获取长度、拼接数组都有相应语法,例如`unset array[index]`删除元素,`${#array[@]}`获取长度。通过实践这些操作,提升Shell脚本技能。
57 0
|
7月前
|
Shell Linux
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
58 0