系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux

简介: 系统初始化shell,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux

!/bin/bash

Author:小黑要上天

Date:2023/6

Description:系统初始化,包括:挂载镜像、搭建yum、设置主机名及IP地址和主机名映射、配置动态IP、关闭防火墙和selinux

Prerequisite:1.ISO镜像文件处于连接状态;2.网络为动态dhcp;3.适用于CentOS7

参数初始化

MOUNT_EXCEPTION=1
YUM_EXCEPTION=2
HOSTNAME_EXCEPTION=3
IP_EXCEPTION=4
FIREWALL_EXCEPTION=5

挂载镜像

function_mount()
{
umount /dev/cdrom &>/dev/null
mount /dev/cdrom /mnt &>/dev/null
if [ $? -eq 1 ];then
echo "镜像挂载失败,请人工干预"
exit $MOUNT_EXCEPTION
fi
echo "1.镜像成功挂载"
}

搭建yum

function_yum()
{
cd /etc/yum.repos.d
if [ ! -d bak/ ];then
mkdir bak
fi
mv -f *.repo bak/
cat >>CentOS7.repo </dev/null
yum clean all &>/dev/null
yum install -y finger-server initscripts net-tools &>/dev/null
echo "2.yum成功配置"
}

设置主机名

function_hostname()
{
read -p "请输入需要更改的主机名(E.g:centos79-3):" HN
if [ "$HN" == "" ];then
hostnamectl set-hostname "centos79-3" &>/dev/null
else
hostnamectl set-hostname $HN &>/dev/null
if [ $? -eq 1 ];then
echo "主机名设置失败,请人工干预"
exit $HOSTNAME_EXCEPTION
fi
fi
echo "3-1.主机名成功设置"
IP=$(ifconfig |grep inet | awk '{print $2}' | head -n 1)
host=$(hostname)
cat >>/etc/hosts <<EOF
$IP $host
EOF
echo "3-2.IP地址和主机名映射成功"
}

配置动态IP

function_ip()
{
read -p "请输入需要配置动态IP的网卡(E.g:ifcfg-ens32):" CARD
if [ "$CARD" == "" ];then
echo "网卡信息为空,请重新输入"
function_ip
else
cd /etc/sysconfig/network-scripts
count=$(find . -name "$CARD" -type f | wc -l)
if [[ $count -eq 1 ]] && [[ "$CARD" != "ifcfg-lo" ]] && [[ "$CARD" =~ ifcfg-.* ]];then
cp -f $CARD $CARD.bak.$(date +%Y%m%d%H%M%S)
sed -i '/IPADDR/d' $CARD && sed -i '/PREFIX/d' $CARD && sed -i '/GATEWAY/d' $CARD && sed -i '/DNS/d' $CARD && sed -i 's/BOOTPROTO="none"/BOOTPROTO="dhcp"/' $CARD && sed -i 's/BOOTPROTO="static"/BOOTPROTO="dhcp"/' $CARD
else
echo "网卡输入异常,请人工干预"
exit $IP_EXCEPTION
fi
fi
echo "4.网卡成功配置为dhcp"
}

关闭防火墙和selinux

function_firewall()
{
systemctl stop firewall &>/dev/null
systemctl disable firewalll &>/dev/null
cd /etc/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' config
echo "5.防火墙和selinux成功关闭"
}

总结

function_summary()
{
echo
echo
echo "系统初始化已完成,请重启服务器(init 6 OR reboot)"
echo "检查:1.镜像挂载;2.yum搭建;3.主机名及IP地址和主机名映射设置;4.动态IP配置;5.防火墙和selinux关闭"
exit 0
}

main

function_mount
function_yum
function_hostname
function_ip
function_firewall
function_summary

目录
相关文章
|
网络协议 网络安全
华为openEuler欧拉系统的防火墙常用设置方法
在有防火墙的系统中,比如我们部署了一个WEB项目,我们需要给该WEB项目所需的端口放行。本文介绍了防火墙常用设置方法。
3078 81
|
网络协议 Linux 网络安全
CentOS防火墙管理:查询与配置开放端口的技巧
遵循以上步骤,CentOS系统管理员能够灵活地查询和管理系统端口的开放情况,并且能适用于大多数防火墙管理场合。务必在改变防火墙规则后认真审核和测试,以确保网络安全性与服务的正常运行。
1778 0
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
2448 25
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
535 5
|
Ubuntu Linux 网络安全
防火墙设置
本文介绍了Ubuntu和CentOS系统中防火墙的基本设置方法。对于Ubuntu,重点讲解了UFW(Uncomplicated Firewall)的使用,包括查看状态、开启/关闭防火墙、管理端口和IP地址以及服务配置。而对于CentOS,主要涉及firewalld的常用操作,如查看状态、启动/关闭防火墙、设置开机启动、管理端口和IP地址,以及服务允许等具体命令示例。内容简洁实用,适合系统管理员快速上手。
1690 10
|
JavaScript Shell C#
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
1308 3
|
网络协议 Ubuntu 网络安全
|
运维 安全 Linux
全面提升系统安全:禁用不必要服务、更新安全补丁、配置防火墙规则的实战指南
全面提升系统安全:禁用不必要服务、更新安全补丁、配置防火墙规则的实战指南
977 12
|
监控 安全 网络安全
Windows Defender防火墙配置错误与GPO:梳理关键点
许多企业的网络中包含Windows Defender防火墙、GPO和AD基础设施等组件,这些组件可能存在漏洞,一旦被利用,可能引发连锁反应,导致严重后果。本文介绍了如何识别和减少网络中的弱点,通过优化默认设置、配置GPO来加强Windows Defender防火墙的安全性,并使用SIEM工具进行日志管理和网络监控,以提高整体网络安全水平。
204 0
|
开发框架 缓存 Ubuntu
dotnet开发框架+ubuntu防火墙命令+win11设置自动登录+阿里云短信发送限制
dotnet开发框架+ubuntu防火墙命令+win11设置自动登录+阿里云短信发送限制
324 3