Shell脚本——menu菜单(read、while、case的使用)

Shell脚本——menu菜单(read、while、case的使用)

###############################################################################

# Shell脚本提高工作效率;

# Shell脚本定义功能函数;

# Shell脚本定义功能分支过多,通过相对路径调用功能Shell脚本,另起炉灶。

# Shell脚本通过外部交互输入变量值,例如:read -p "变量含义文本信息:" 变量名;

# Shell脚本通过pwd查看脚本当前位置的绝对路径,例如:root_dir="`pwd ./`";

# Shell脚本定义普通变量,例如:hc_dir="./bdi/hc/";

###############################################################################

#Shell脚本样例:

# 功能

# while永久循环;

# 选择相应1-14菜单项,通过Summary_menu()函数打印菜单;

# 通过主程序中的read -p提示输入1-14字符串值,传参给变量choice;

# 通过case接收choice字符串值,交互窗口打印当前所选菜单项及调用功能函数返回值、log_entry()打印时间及用户操作日志到指定log文件;

###############################################################################

# 定义打印菜单函数Summary_menu() { echo "***************************************************" echo "# 请选择要执行的操作:" echo "1. 系统版本参数:检查系统版本及内核版本;" echo "2. 系统内存参数:检查系统内存free、内存edac、slab、ringbuffer等;" echo "3. 系统CPU参数:检查系统CPU包含/proc/cpuinfo、sar-u、sar-p、top、cgroup;" echo "4. 系统DISK参数:检查系统DISK性能包含iostat、sar-d、sar-b、pvs/pvdisplay/vgs/vgdisplay/vgreduce/lvs/lvdisplay/lvscan;" echo "5. 系统队列参数:检查系统队列拥塞包含sar-q;" echo "6. 系统内核参数:检查系统内核参数包含sysctl.conf;" echo "7. 系统安全参数:检查系统安全包含/etc/security/access.conf、/etc/selinux/config、/etc/sysconfig/iptables;" echo "8. 问题:系统僵尸进程排查:检查系统D进程包含top、ps;" echo "9. 问题:系统网络排查:检查/etc/networking、/etc/sysconfig/network-scripts/*、;" echo "10. 问题:系统切换用户sudo -i/su - gk认证失败,检查/var/log/secure、/etc/ssh/sshd、/etc/pam.d/su、/etc/pam.d/sudo" echo "11. 软件openssh参数:检查软件openssh配置包含/etc/ssh/sshd_config、/etc/pam.d/sshd;" echo "12. Kubernetes:组件ETCD节点恢复;" echo "13. 待开发;" echo "14. 退出;" echo "***************************************************"}

# 记录日志log_entry() { local choice=$1 echo "$(date '+%Y-%m-%d %H:%M:%S') - 用户选择了操作: $choice" >> ../logs/menu.log

#menu模块

while true; do Summary_menu

read -p "请输入选项[1-14]: " choice

case $choice in

1)

echo "1. 检查系统版本及内核版本;"

log_entry "$choice"

get_os_version

;;

2)

echo "2. 系统内存参数:检查系统内存free、内存edac、slab、ringbuffer等;"

log_entry "$choice"

# 这里可以添加编辑文件的代码

;;

3)

echo "3. 系统CPU参数:检查系统CPU包含/proc/cpuinfo、sar-u、sar-p、top、cgroup;"

log_entry "$choice"

# 这里可以添加编辑文件的代码

;;

4)

echo "4. 系统DISK参数:检查系统DISK性能包含iostat、sar-d、sar-b、pvs/pvdisplay/vgs/vgdisplay/vgreduce/lvs/lvdisplay/lvscan;"

log_entry "$choice"

# 调用sar()函数

check_sar_info

;;

5)

echo "5. 系统队列参数:检查系统队列拥塞包含sar-q;"

log_entry "$choice"

# 这里可以添加编辑文件的代码

;;

6)

echo "6. 系统内核参数:检查系统内核参数包含sysctl.conf;"

log_entry "$choice"

# 这里可以添加编辑文件的代码

;;

7)

echo "7. 系统安全参数:检查系统安全包含/etc/security/access.conf、/etc/selinux/config、/etc/sysconfig/iptables;"

log_entry "$choice"

# 这里可以添加查看文件的代码

;;

8)

echo "8. 问题:系统僵尸进程排查:检查系统D进程包含top、ps;"

log_entry "$choice"

# 这里可以添加编辑文件的代码

;;

9)

echo "9. 问题:系统网络排查:检查/etc/networking、/etc/sysconfig/network-scripts/*;"

log_entry "$choice"

# 这里可以添加编辑文件的代码

;;

10)

echo "10. 软件openssh参数:检查软件openssh配置包含/etc/ssh/sshd_config、/etc/pam.d/sshd;"

log_entry "$choice"

# 这里可以添加查看文件的代码

;;

11)

echo "10. 问题:系统切换用户sudo -i/su - gk认证失败,检查/var/log/secure、/etc/ssh/sshd、/etc/pam.d/su、/etc/pam.d/sudo: "

log_entry "$choice"

# 这里可以添加查看文件的代码

;;

12)

echo "12. Kubernetes:组件Etcd节点恢复;"

log_entry "$choice"

/bin/bash ./Check_K8s.sh

;;

13)

echo "13. 待开发;"

log_entry "$choice"

# 这里可以添加编辑文件的代码

;;

14)

echo "14. 退出;"

log_entry "$choice"

break

;;

*)

echo "无效的选项,请重新输入"

;;

esac

logs

done

###############################################################################

云计算到容器化的快速转变,Shell和Python自动化已经作为基础技能,运用到快速部署、快速问题排查。 为了能跟上2019年阿里和信息部合作的小学智能python全面铺开,到如今2024年上海人工智能大会的半自动化甚至基础自动化的高效应用。与时俱进,顺应大厂提供的大环境,品尝他们给出大数据的自动化代码或者人工智能概念,强化自身Python模块及Shell技能,期望投身财力雄厚的教育、科研、制造行业,只为不被外包(恶劣的大环境)甚至云计算(半国企)行业的自然淘汰,寻找变形金刚般勇于奋进的儿时梦。

###############################################################################

相关推荐

精准测量腰围:健康风险评估的关键指南
Bet体育365app下载

精准测量腰围:健康风险评估的关键指南

📅 01-11 👀 2561
温婉的解釋
365bet下注网站

温婉的解釋

📅 11-16 👀 1338
如何查找图片来源和版权信息
365bet下注网站

如何查找图片来源和版权信息

📅 08-26 👀 7808