系统初始化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

目录
相关文章
|
缓存 Linux
CentOS-6的iso下载地址镜像yum源
通过上述步骤,您可以成功下载CentOS 6的ISO镜像文件,并配置适用于CentOS 6的YUM源。尽管CentOS 6已经停止更新,但使用这些镜像和YUM源配置,可以继续在需要的环境中使用和维护CentOS 6系统。
6415 20
|
应用服务中间件 Linux nginx
Docker镜像-手动制作yum版nginx镜像
这篇文章介绍了如何手动制作一个基于CentOS 7.6的Docker镜像,其中包括下载指定版本的CentOS镜像,创建容器,配置阿里云软件源,安装并配置nginx,自定义nginx日志格式和web页面,最后提交镜像并基于该镜像启动新容器的详细步骤。
442 21
Docker镜像-手动制作yum版nginx镜像
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
302 6
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
应用服务中间件 Linux nginx
Docker镜像-基于DockerFile制作yum版nginx镜像
本文介绍了如何使用Dockerfile制作一个基于CentOS 7.6.1810的yum版nginx镜像,并提供了详细的步骤和命令。
405 20
|
网络协议 Shell Linux
Shell脚本配置Centos静态ip地址
这是一个用于在CentOS上设置静态IP的Shell脚本摘要: - 脚本交互式获取用户输入的IP地址、子网掩码、网关和DNS。 - 使用`sed`命令动态更新`/etc/sysconfig/network-scripts/ifcfg-ENS33`配置文件。 - 修改`BOOTPROTO`为`static`,并设置IP、NETMASK、GATEWAY和DNS1字段。 - 用`systemctl restart network`重启网络服务。 - 提示用户新配置的静态IP信息。
551 5
|
Shell
5.Electron之shell(使用系统默认浏览器打开网页)
5.Electron之shell(使用系统默认浏览器打开网页)
572 1
|
Shell Linux Perl
Shell——如何拿到服务器IP地址
Shell——如何拿到服务器IP地址
195 0
|
运维 Linux Shell
day02-Linux运维-系统介绍与环境搭建_硬件 系统核心 解释器shell 外围操作系统
day02-Linux运维-系统介绍与环境搭建_硬件 系统核心 解释器shell 外围操作系统
|
存储 网络协议 Shell
第十章 Shell编程时常用的系统文件
第十章 Shell编程时常用的系统文件