系统初始化脚本

#!/bin/bash
#1.显示系统版本
check_system_version() {
awk '{print $(NF-1)}' /etc/redhat-release
}
#2.更新yum源
check_yum() {
tt=$(awk '{print $(NF-1)}' /etc/redhat-release)
if [ ${tt%%.*} -eq "6" ];then
    mkdir -p /etc/yum.repos.d/backup
    \mv /etc/yum.repos.d/.*repo /etc/yum.repos.d/backup/
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
elif [ ${tt%%.*} -eq "7" ];then
mkdir -p /etc/yum.repos.d/backup
\mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
fi
yum clean all && yum makecache
}
#3.安装基础软件包
package_install() {
yum install -y net-tools vim tree htop iftop \
    iotop lrzsz wget unzip telnet nmap nc ntpdate \
    bash-completion bash-completion-extra sysstat rsync nfs-utils -y
}
#4.关闭selinux
disable_selinux() {
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforc 0 &> /dev/null
}
#5.关闭firewalld
disable_firewalld() {
systemctl stop firewalld.service
systemctl disable firewalld.service
}
#6.配置sshd服务
ssh_config() {
sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
}
#7.加大文件描述符
limit_conf() {
    echo '* - nofile 65535 ' >>/etc/security/limits.conf
}
#8.时间同步
date_time() {
    echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >/var/spool/cron/root
}
menu() {
cat <<EOF
##########################################
##     1、操作系统发行版本                  ##
##     2、部署yum源                      ##
##     3、安装系统软件包                  ##
##     4、关闭Selinux              ##
##     5、关闭Firewalld                  ##
##     6、配置SSHD服务          ##
##     7、加大文件描述符          ##
##     8、同步系统时间                        ##
##     9、打印菜单                             ##
##     q、退出程序          ##
##########################################
EOF
}
#打印菜单
menu
while true
do
read -p "您想干什么?就请输入上面对应的字符:" n
case $n in
    1)
        check_system_version
        ;;
    2)
        check_yum &>/dev/null
                echo $? &>/dev/null && echo "yum源更新完成" || echo "yum源更新失败"
         ;;
    3)
                echo "安装软件包需要一部分时间,请耐心等待,正在安装中......."
                package_install    &>/dev/null
                echo $? &>/dev/null && echo "基础软件包安装完成" || echo "基础软件包安装报错"
     ;;
        4)
                disable_selinux &>/dev/null
                echo $? &>/dev/null && echo "Selinux 关闭成功" || echo "Selinux 关闭失败"
                ;;
        5)
                disable_firewalld &>/dev/null
                echo $? &>/dev/null && echo "Firewalld 关闭成功" || echo "Firewalld 关闭失败"
                ;;
        6)    
                ssh_config &>/dev/null
                echo $? &>/dev/null && echo "sshd服务配置完成" || echo "sshd服务配置报错"
                ;;
        7)    
                limit_conf &>/dev/null
                echo $? &>/dev/null && echo "文件描述符数量修改成功" || echo "文件描述符数量修改失败"
                ;;
        8)    
                date_time &>/dev/null
                echo $? &>/dev/null && echo "定时任务添加成功" || echo "定时任务添加失败"
                ;;
        9)
                clear
                menu
                ;;
q)
        echo "您即将退出程序!"
            exit 1
esac
done
posted @ 2023-11-08 11:24  普里莫  阅读(19)  评论(0编辑  收藏  举报