zoukankan      html  css  js  c++  java
  • centos7初始化bashshell脚本

    centos7初始化bashshell脚本

    #!/bin/bash
    if [[ "$(whoami)" != "root" ]]; then
      
        echo "请切换root用户 ." >&2
        exit 1
    fi
    echo "适用CENTOS 7"  
    echo -e "33[31m 修改selinux 关闭防火墙 修改网卡名eth0  系统参数等,有需要可自己微调 5秒后执行 33[0m"
    
    sleep 1
    echo "1秒"
    sleep 1
    echo "2秒"
    sleep 1
    echo "3秒"
    sleep 1
    echo "4秒"
    sleep 1
    echo "开始执行中请勿操作,结束后会有提示" 
    
    #下载yumepel源 ,获取阿里源
    yum_config(){
        yum install wget epel-release -y
        cd /etc/yum.repos.d/ && mkdir bak && mv -f *.repo bak/
        wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
        wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
        yum clean all && yum makecache
        #选装,如需自行调整 yum -y install iotop iftop net-tools lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel  python-devel bash-completion
    }
    #防火墙关闭
    iptables_config(){
        systemctl stop firewalld.service
        systemctl disable firewalld.service
        systemctl stop iptables
        systemctl disable iptables
    }
    #selinux关闭 时区 时间服务器chrony(需要自己删除注释)
    system_config(){
        sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
        timedatectl set-local-rtc 1 && timedatectl set-timezone Asia/Shanghai
        #yum -y install chrony && systemctl start chronyd.service && systemctl enable chronyd.service 
    }
    #  默认不开启设置,如需开启在下面mian方法中设置
    ulimit_config(){
        
        echo "ulimit -SHn 102400" >> /etc/rc.local
        cat >> /etc/security/limits.conf << EOF
        *           soft   nofile       102400
        *           hard   nofile       102400
        *           soft   nproc        102400
        *           hard   nproc        102400
    EOF
    
    }
    
    # 内核参数设置
    #file-max:这个参数表示进程可以同时打开的最大句柄数,这个参数直接限制最大并发连接数。
    #tcp_tw_reuse:这个参数设置为1,表示允许将TIME-WAIT状态的socket重新用于新的TCP链接。这个对服务器来说很有意义,因为服务器上总会有大量TIME-#WAIT#状态的连接。
    #tcp_keepalive_time:这个参数表示当keepalive启用时,TCP发送keepalive消息的频度。默认是7200 seconds,意思是如果某个TCP连接在idle 2小时后,##内核才发起probe。若将其设置得小一点,可以更快地清理无效的连接。
    #tcp_fin_timeout:这个参数表示当服务器主动关闭连接时,socket保持在FIN-WAIT-2状态的最大时间。
    #tcp_max_tw_buckets:这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认#是i180000,过多TIME_WAIT套接字会使Web服务器变慢。
    #tcp_max_syn_backlog:这个参数表示TCP三次握手建立阶段接受WYN请求队列的最大长度,默认1024,将其设置大一些可以使出现Nginx繁忙来不及accept新连接#的情况时,Linux不至于丢失客户端发起的连接请求。
    #ip_local_port_range:这个参数定义了在UDP和TCP连接中本地端口的取值范围。
    #net.ipv4.tcp_rmem:这个参数定义了TCP接受缓存(用于TCP接收滑动窗口)的最小值,默认值,最大值。
    #net.ipv4.tcp_wmem:这个参数定义了TCP发送缓存(用于TCP发送滑动窗口)的最小值,默认值,最大值。
    #netdev_max_backlog:当网卡接收数据包的速度大于内核处理的速度时,会有一个队列保存这些数据包。这个参数表示该队列的最大值。
    #rmem_default:这个参数表示内核套接字接收缓存区默认的大小。
    #wmem_default:这个参数表示内核套接字发送缓存区默认的大小。
    #rmem_max:这个参数表示内核套接字接收缓存区默认的最大大小。
    #wmem_max:这个参数表示内核套接字发送缓存区默认的最大大小。
    sysctl_config(){
        cp /etc/sysctl.conf /etc/sysctl.conf.bak
        cat > /etc/sysctl.conf << EOF
        net.ipv4.ip_forward = 0
        net.ipv4.conf.default.rp_filter = 1
        net.ipv4.conf.default.accept_source_route = 0
        kernel.sysrq = 0
        kernel.core_uses_pid = 1
        net.ipv4.tcp_syncookies = 1
        kernel.msgmnb = 65536
        kernel.msgmax = 65536
        kernel.shmmax = 68719476736
        kernel.shmall = 4294967296
        net.ipv4.tcp_max_tw_buckets = 6000
        net.ipv4.tcp_sack = 1
        net.ipv4.tcp_window_scaling = 1
        net.ipv4.tcp_rmem = 4096 87380 4194304
        net.ipv4.tcp_wmem = 4096 16384 4194304
        net.core.wmem_default = 8388608
        net.core.rmem_default = 8388608
        net.core.rmem_max = 16777216
        net.core.wmem_max = 16777216
        net.core.netdev_max_backlog = 262144
        net.core.somaxconn = 262144
        net.ipv4.tcp_max_orphans = 3276800
        net.ipv4.tcp_max_syn_backlog = 262144
        net.ipv4.tcp_timestamps = 0
        net.ipv4.tcp_synack_retries = 1
        net.ipv4.tcp_syn_retries = 1
        net.ipv4.tcp_tw_recycle = 1
        net.ipv4.tcp_tw_reuse = 1
        net.ipv4.tcp_mem = 94500000 915000000 927000000
        net.ipv4.tcp_fin_timeout = 1
        net.ipv4.tcp_keepalive_time = 30
        net.ipv4.ip_local_port_range = 1024 65000
    EOF
        /sbin/sysctl -p
        echo "sysctl set OK!!"
    }
    
    main(){
        yum_config &>/dev/mull
        iptables_config  &>/dev/mull
        system_config  &>/dev/mull
        #ulimit_config  &>/dev/mull
        sysctl_config  &>/dev/mull
        echo"初始化完成!"
    }
    main
    
  • 相关阅读:
    实现一个简单的ConnectionPool
    并发连接MySQL
    C#里面滥用String造成的性能问题
    String.IndexOf
    C#代码中插入X86汇编
    正确理解Handle对象
    orleans发送广播消息
    log日志方法
    PHP 批量插入数据
    逻辑漏洞小结之SRC篇
  • 原文地址:https://www.cnblogs.com/Justin0717/p/11976725.html
Copyright © 2011-2022 走看看