Shell 虚拟机基线配置脚本示例

2024-01-24 11:12

本文主要是介绍Shell 虚拟机基线配置脚本示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是一个配置虚拟机基线的示例,包含关闭防火墙、禁用SElinux、设置时区、安装基础软件等。

这只是一个简单的模板,基线配置方面有很多,后续可以按照这个模板去逐步添加

代码示例

[root@bogon ~]# cat bastic.sh 
#!/bin/bashRED='\E[1;31m'
GREEN='\E[1;32m'
RES='\E[0m'# 显示菜单选项
echo "请选择一个选项:"
echo "1. 关闭防火墙,禁止开机自启动"
echo "2. 关闭SElinux"
echo "3. 设置时区"
echo "4. 设置最大文件打开数量为65535"
echo "5. 安装基础软件包:[tcpdump,net-tools,wget,telnet,nmap-ncat,rsync,lrzsz]"
echo "6. 执行全部选项"
echo "7. 退出"function stop_firewalld {systemctl stop firewalldsystemctl disable firewalldif [ $? -eq 0 ]; thenecho -e "${GREEN} [+] 已关闭防火墙,禁止开机自启 ${RES}"elseecho -e "${RED} [-] 关闭防火墙失败 ${RES}"fi
}function selinux_set {sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configif [ $? -eq 0 ]; thenecho -e "${GREEN} [+] SElinux 已关闭 ${RES}"elseecho -e "${RED} [-] 关闭SElinux失败 ${RES}"fi
}function datetime_set {timedatectl set-timezone Asia/Shanghaiif [ $? -eq 0 ]; thenecho -e "${GREEN} [+] 已设置时区为上海时区 ${RES}"elseecho -e "${RED} [-] 设置时区失败 ${RES}"fi
}function fileopen_set {echo "* soft nofile 65535" >> /etc/security/limits.confecho "* hard nofile 65535" >> /etc/security/limits.confsysctl -pif [ $? -eq 0 ]; thenecho -e "${GREEN} [+] 已设置文件最大打开数量为65535  ${RES}"elseecho -e "${RED} [-] 设置文件打开数量失败 ${RES}"fi
}function package_install {if [[ $EUID -ne 0 ]]; thenecho -e "${RED} [-] 请使用root用户执行该脚本 ${RES}" exit 1fipackages=(tcpdumpnet-toolswgettelnetnmap-ncatrsynclrzsz)echo "------开始安装基础软件包------"for package in "${packages[@]}";doecho -e "------正在检查软件包:$package 是否安装------"if rpm -q "$package" >> /dev/null 2>&1;thenecho "软件包 $package 已经安装,跳过..."elseecho "------正在安装软件包------"yum -y install "$package"if [ $? -eq 0 ]; thenecho -e "${GREEN} [+] 基础依赖包 $package 安装成功 ${RES}"elseecho -e "${RED} [-] 基础依赖包安装失败 ${RES}"fifidone
}read choicecase $choice in1)stop_firewalld;;2)selinux_set;;3)datetime_set;;4)fileopen_set;;5)package_install;;6)stop_firewalldselinux_setdatetime_setfileopen_setpackage_install;;7)exit;;*)echo "无效选项";;
esac

结果

输入6,就是执行全部选项

当然也能单独执行,例如输入5,就提示软件包已安装,跳过。。。

这篇关于Shell 虚拟机基线配置脚本示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/639511

相关文章

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一