zoukankan      html  css  js  c++  java
  • centos系统初始化脚本

    #!/bin/bash
    
    #检测是否为root用户
    if [ $UID -ne 0 ];then
            echo "Must be root can do this."
            exit 9
    fi
    
    #检测网络
    echo "检测网络中......"
    /bin/ping www.baidu.com -c 2 &>/dev/null
    if [ $? -ne 0 ];then
            echo "现在网络无法通信,准备设置网络"
            read -p 'pls enter your ip: ' IP
            read -p 'pls enter your gateway: ' GW 
            read -p 'pls enter your netmask: ' NM 
            read -p 'pls enter your netcard: ' NC
            echo "IPADDR=$IP" >> /etc/sysconfig/network-scripts/ifcfg-$NC
            echo "NETMASK=$NM" >> /etc/sysconfig/network-scripts/ifcfg-$NC
            echo "GATEWAY=$GW" >> /etc/sysconfig/network-scripts/ifcfg-$NC
            echo "DNS1=114.114.114.114" >> /etc/sysconfig/network-scripts/ifcfg-$NC
            echo "DNS2=8.8.8.8" >> /etc/sysconfig/network-scripts/ifcfg-$NC
            sed -i 's/dhcp/static/g' /etc/sysconfig/network-scripts/ifcfg-$NC
            sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-$NC
            /etc/init.d/network restart
            echo -e "33[031m network is configure ok.33[0m"
    else
            echo -e "33[031m network is ok.33[0m"
    fi
    
    #关闭 ctrl + alt + del
    echo "关闭 ctrl + alt + del ......."
    sed -i "s/ca::ctrlaltdel:/sbin/shutdown -t3 -r now/#ca::ctrlaltdel:/sbin/shutdown -t3 -r now/" /etc/inittab
    sed -i 's/^id:5:initdefault:/id:3:initdefault:/' /etc/inittab
    
    #关闭ipv6
    echo "关闭IPv6....."
    echo "alias net-pf-10 off" >> /etc/modprobe.conf
    echo "alias ipv6 off" >> /etc/modprobe.conf
    /sbin/chkconfig --level 35 ip6tables off
    echo -e "33[031m ipv6 is disabled.33[0m"
    
    #关闭selinux
    echo "关闭SElinux......"
    sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
    echo -e "33[31m selinux is disabled,if you need,you must reboot.33[0m"
    
    #更新yum源
    echo "备份yum源......"
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    sys_ver=`cat /etc/redhat-release |awk '{print $3}' | awk -F '.' '{print $1}'`
    if [ $sys_ver -eq 6 ];then
            wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
            yum clean all
            yum makecache
    elif [ $sys_ver -eq 7 ];then
            wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
            yum clean all
            yum makecache
    elif [ $sys_ver -eq 5 ];then
            wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
            yum clean all
            yum makecache
    fi
    
    #安装基础库
    echo "安装基础环境和库......"
    yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel nss_ldap openldap openldap-devel  openldap-clients openldap-servers libxslt-devel libevent-devel ntp  libtool-ltdl bison libtool vim-enhanced
    
    #设置时钟同步
    echo "设置时钟同步......"
    echo "*/5 * * * * root /usr/sbin/ntpdate time7.aliyun.com &>/dev/null" >> /etc/crontab
    
    #修改Bash提示符字符串
    echo "改Bash提示符字符串......"
    echo 'PS1="[e[37;40m][[e[32;40m]u[e[37;40m]@h [e[36;40m]w[e[0m]]\$ "' >> ~/.bashrc
    source .bashrc
    
    #修改文件打开数
    echo "修改文件打开数......"
    cat >> /etc/security/limits.conf <<EOF
    * soft nproc 65535
    * hard nproc 65535
    * soft nofile 65535
    * hard nofile 65535
    EOF
    echo "ulimit -SH 65535" >> /etc/rc.local
    
    #优化内核参数
    echo "优化内核参数....."
    sed -i 's/net.ipv4.tcp_syncookies.*$/net.ipv4.tcp_syncookies = 1/g' /etc/sysctl.conf
    cat >> /etc/sysctl.conf << ENDF
    net.ipv4.tcp_max_syn_backlog = 65536
    net.core.netdev_max_backlog =  32768
    net.core.somaxconn = 32768
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_syn_retries = 2
    net.ipv4.tcp_tw_recycle = 1
    #net.ipv4.tcp_tw_len = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_max_orphans = 3276800
    net.ipv4.ip_local_port_range = 1024  65535
    ENDF
    sysctl -p
    
    #优化ssh参数
    echo "优化ssh....."
    sed -i '/^#UseDNS/s/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
    #sed -i 's/#PermitEmptyPasswords no/PermitEmptyPasswords no/g' /etc/ssh/sshd_config
    /etc/init.d/sshd restart

     如果复制过去后出现格式错误等,可以使用vim编辑,输入  :set fileformat=unix

  • 相关阅读:
    HD200703
    并查集——合作网络D306
    并查集——易爆物D305
    NOIP初赛知识点
    离散化
    wsl2启动时无法添加自启动和加载环境变量的解决办法
    wsl2上用docker部署运行环境,mvn构建镜像找不到dockerhost
    docker 创建自己的镜像仓库
    单机多容器管理(已转k8s工具,仅参考) docker compose简介+使用+遇到的坑
    ubuntu下载安装jdk+maven,配置ssh
  • 原文地址:https://www.cnblogs.com/Devilf/p/8146251.html
Copyright © 2011-2022 走看看