• Centos7初始化脚本


    今天分享一个自己写的一个初始化的小脚本.

      编写初始化系统要考虑到系统的版本问题,现在用的比较多的就是centos6和centos7,所以首先要判断一下系统的版本。

          cat /etc/redhat-release                       //查看系统版本
          cat /etc/redhat-release | awk '{print $(NF-1)}' | awk -F "." '{print $1}'
                                      //将centos是6还是7筛选出来,方便后面针对不同系统进行初始化

      因为我是从centos7开始学的,对centos6不是很熟悉,centos6与centos7有一些命令会有一些差别,所以这里就不对centos6进行过多的讲述,有想对CentOS6进行初始化的,可以对我下面对centos7的命令更改为centos6的命令

        1)   配置镜像源(可以选择阿里云的或者163,默认的国外源速度比较慢)     

          rm -rf /etc/yum.repos.d/*.repo                                              //删除默认的源
          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       //下载epel源
          yum makecache                                             //重建缓存 

      可以根据自己所需选择适合的镜像源,此处,我选择的是阿里云的镜像源。

        阿里云的开源网站    https://opsx.alibaba.com/mirror
        网易的开源网站      http://mirrors.163.com/
    

      

        2)对防火墙进行更改

          systemctl stop firewalld                          //将防火墙关闭
          systemctl enable firewalld               //将防火墙设置为开机不启动
    

     有人会说,为什么要关闭防火墙,关闭防火墙不是安全性降低了吗? 解释一下,现在很多公司都是关闭防火墙的,因为他们采用了安全性能跟更好的物理防火墙,当然如果你选择不关闭防火墙也没有问题,只是在你开启其他服务的时候,要在防火墙上打开相应的服务,不然无法正常启用服务。

     3)关闭SELinux(99%的人都选择关闭,不过在红帽认证的考试中,是开启的,所以做红帽题的时候,一定要注意SELinux的影响)

          sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config      //修改selinux的配置文件
          setenforce 0  //临时关闭selinux,因为修改完selinux,只有重启电脑,才能加载selinux,所以可以在第一次的时候可以先临时关闭一次

      第一次防止自己改错的话,可以先不加i,确定修改无误后再加 i 

        4)设置ssh(设置ssh让远端ssh连接这台机器的时候,速度更快一些)

          sed -ri  '/^GSSAPIAuthentication/cGSSAPIAuthentication no' /etc/ssh/sshd_config
          sed -ri  '/DNS/cUseDNS no' /etc/ssh/sshd_config
    

       5)下载基础软件

          yum -y install wget tree lftp vim bash-com*
    

      大家有什么意见或者哪里有错误,都欢迎大家评论

    附件,我一般使用的初始化脚本

    #! /bin/bash
    # 初始化脚本
    
    # 颜色定义
    cl_red='e[31m'
    cl_green='e[32m'
    cl_blue='e[34m'
    cl_reset='e[0m'
    
    # 文件位置
    dir_yum=/etc/yum.repos.d
    
    echo -e "${cl_green}开始初始化!${cl_reset}"
    echo -e "${cl_blue}开始更换Yum源...${cl_reset}"
    if [ ! -d ${dir_yum}/backup ];then
            mkdir ${dir_yum}/backup
    fi
    
    mv ${dir_yum}/*.repo ${dir_yum}/backup
    
    if [ ! -f ${dir_yum}/aliyun.repo ];then
            curl -o /etc/yum.repos.d/aliyun.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
            yum makecache
    fi
    
    if [ $? -eq 0 ];then
            rm -rf ${dir_yum}/backup
    fi
    
    echo -e "${cl_blue}开始下载基础包....${cl_reset}"
    rpm -qa | grep wget || yum -y install wget 
    rpm -qa | grep tree || yum -y install tree
    rpm -qa | grep bash-com* || yum -y install bash-com*
    rpm -qa | grep psmisc || yum -y install psmisc
    rpm -qa | grep vim-enhanced || yum -y install vim
    rpm -qa | grep ntp || yum -y install ntp
    rpm -qa | grep lsof || yum -y install lsof
    rpm -qa | grep ifconfg || yum -y install net-tools
    
    echo -e "${cl_blue}关闭防火墙和selinux....${cl_reset}" 
    systemctl stop firewalld 
    systemctl disable firewalld &>/dev/null
    sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
    setenforce 0 &>/dev/null
    
    echo -e "${cl_blue}设置ssh${cl_reset}"
    sed -ri  '/DNS/cUseDNS no' /etc/ssh/sshd_config
    sed -ri  '/^GSSAPIAuthentication/cGSSAPIAuthentication no' /etc/ssh/sshd_config
    sed -ri '/StrictHostKeyChecking/cStrictHostKeyChecking no' /etc/ssh/ssh_config
    
    echo -e "${cl_blue}设置主机名${cl_reset}"
    # 必须让[]的括号住,不然可能会不自动换行
    echo export PS1="[[e[35m]u[e[33m]@[e[36m]"$(ifconfig eth0 | grep "inet " | awk '{print $2}')" [e[0m]W]\$ " > /etc/profile.d/env.sh
    source /etc/profile
    
    echo > /etc/profile.d/rc.sh <<-EOF
    if [ -d ~/.bashrc ];then
        /bin/mkdir ~/.trash
    fi
    alias rm=del
    del(){
        mv $@ ~/.trash/
    }
    cleardel(){
        echo -en "e[31mAre you sure clear? (y/n)e[0m"
        read confirm
        [ ${confirm} == "y" ] || [ ${confirm} == "Y" ] && /bin/rm -rf ~/.trash/*
        [ ${confirm} == "n" ] || [ ${confirm} == "N" ] && exit 1
    }
    EOF
    
    echo -e "${cl_blue}同步时间...${cl_reset}" 
    ntpdate time1.aliyun.com &>/dev/null
    echo -e "${cl_green}同步完成!${cl_green}"
    
    echo -e "${cl_red}系统已经初始化完成${cl_reset}"
    echo -e "${cl_red}rm----> del${cl_reset}"
    

      

  • 相关阅读:
    我的python之路5
    我的python之路4
    我的python之路3
    我的python之路2
    我的python之路1
    AJAX 表单提交 文件上传
    PBKDF2WithHmacSHA1算法
    Ant 随想
    maven 启蒙
    HELLO WORLD
  • 原文地址:https://www.cnblogs.com/xll970105/p/9733121.html
Copyright © 2020-2023  润新知