1.2.2 数组案例
学习目标
这一节,我们从 信息统计、服务管理、小结 三个方面来学习。
信息统计
需求
分别打印CPU 1min 5min 15min load负载值
命令提示:uptime信息显示:CPU 1 min平均负载为: 0.00CPU 5 min平均负载为: 0.01CPU 15 min平均负载为: 0.05
编写脚本
查看脚本内容
[root@localhost ~]# cat cpu_load.sh
#!/bin/bash
# 功能:采集系统cpu负载信息
# 版本:v0.1
# 作者:书记
# 联系:www.superopsmsb.com# 获取CPU负载情况
cpu_load=($(uptime | tr -s " " | cut -d " " -f 11-13 | tr "," " "))# 信息输出
echo -e "\e[31m\t系统cpu负载信息\e[0m"
echo -e "\e[32m================================"
echo "CPU 1 min平均负载为: ${cpu_load[0]}"
echo "CPU 5 min平均负载为: ${cpu_load[1]}"
echo "CPU 15 min平均负载为: ${cpu_load[2]}"
echo -e "================================\e[0m"
脚本执行后效果
[root@localhost ~]# /bin/bash cpu_load.sh系统cpu负载信息
================================
CPU 1 min平均负载为: 0.00
CPU 5 min平均负载为: 0.01
CPU 15 min平均负载为: 0.05
================================
服务管理
需求
服务的管理动作有:"启动" "关闭" "重启" "重载" "状态"
服务的管理命令有:"start" "stop" "restart" "reload" "status"
选择不同的动作,输出不同的服务执行命令,格式如下:systemctl xxx service_name
编写脚本
[root@localhost ~]# cat service_manager.sh
#!/bin/bash
# 功能:定制服务管理的功能
# 版本:v0.1
# 作者:书记
# 联系:www.superopsmsb.com# 定制普通数组
oper_array=(启动 关闭 重启 重载 状态)
# 定制关联数组
declare -A cmd_array
cmd_array=([启动]=start [关闭]=stop [重启]=restart [重载]=reload [状态]=status)# 服务的操作提示
echo -e "\e[31m---------------服务的操作动作---------------1: 启动 2: 关闭 3: 重启 4: 重载 5: 状态
--------------------------------------------"'\033[0m'# 选择服务操作类型
read -p "> 请输入服务的操作动作: " oper_num
echo
echo -e "\e[31m您选择的服务操作动作是: ${oper_array[$oper_num-1]}\e[0m"
echo -e "\e[32m===============服务的执行动作===============
您即将对服务执行如下命令:
\tsystemctl ${cmd_array[${oper_array[$oper_num-1]}]} service_name
=========================================="'\033[0m'
脚本执行效果
[root@localhost ~]# /bin/bash service_manager.sh
---------------服务的操作动作---------------1: 启动 2: 关闭 3: 重启 4: 重载 5: 状态
--------------------------------------------
> 请输入服务的操作动作: 3您选择的服务操作动作是: 重启
===============服务的执行动作===============
您即将对服务执行如下命令:systemctl restart service_name
==========================================
小结