zoukankan      html  css  js  c++  java
  • CentOS7操作系统初始化

    生产环境配置需要标准化,将常用操作写成脚本用于操作系统的初始化。

    本脚本适用于centos7,根据实际需求修改yum源地址和ntp时钟同步源地址后即可使用。

    #!/bin/bash
    # Filename:    centos7_init.sh
    # Revision:    1.0
    # Date:        2017/xx/xx
    # Author:      xxxx
    # Email:       xxxx@qq.com
    # Website:     no
    # Description:centos7系统初始化
    
    #1.定义配置yum源函数
    function yum(){
    mkdir -p /etc/yum.repos.d/bak
    /usr/bin/mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
    touch /etc/yum.repos.d/http.repo
    cat > /etc/yum.repos.d/http.repo << EOF
    [http]
    name=Server
    baseurl=http://192.168.2.252/centos7.3
    enabled=1
    gpgcheck=0
    EOF
    }
    #2.定义配置NTP函数
    function ntp(){
    /usr/bin/yum -y install ntp
    #修改配置文件
    echo '' >/etc/ntp.conf
    cat >>/etc/ntp.conf << EOF
    driftfile /var/lib/ntp/drift
    restrict default nomodify notrap nopeer noquery
    restrict 127.0.0.1 
    restrict ::1
    server 192.168.2.136
    includefile /etc/ntp/crypto/pw
    keys /etc/ntp/keys
    disable monitor
    EOF
    #同步hwclock
    cat >>/etc/sysconfig/ntpd<<EOF
    #Command line options for ntpd
    SYNC_HWCLOCK=yes
    OPTIONS="-g"
    EOF
    #使用ntpdate命令校验时间
    /usr/sbin/ntpdate 192.168.2.136 && /usr/sbin/hwclock -w
    /usr/bin/systemctl stop chronyd &> /dev/null
    /usr/bin/systemctl disable chronyd &> /dev/null
    /usr/bin/systemctl start ntpd &> /dev/null
    /usr/bin/systemctl enable ntpd &> /dev/null
    }
    
    #3.定义关闭防火墙函数
    function close_firewalld(){
        /usr/bin/systemctl stop firewalld.service &> /dev/null
        /usr/bin/systemctl disable firewalld.service &> /dev/null
    }
    #4.定义关闭selinux函数
    function close_selinux(){
        setenforce 0
        sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
    }
    
    #5.内核调优
    function optimization(){
    
    [ -f /etc/sysctl.conf.bak ] && error_show "sysctl.conf.back is exist."
    /usr/bin/cp /etc/sysctl.conf /etc/sysctl.conf.bak
    cat>>/etc/sysctl.conf<<EOF
    #对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。
    net.ipv4.tcp_syn_retries = 1
    #显示或设定 Linux 核心在回应 SYN 要求时会尝试多少次重新发送初始 SYN,ACK 封包后才决定放弃。
    net.ipv4.tcp_synack_retries = 1
    #表示当keepalive起用的时候,TCP发送keepalive消息的频度。默认是俩小时。
    net.ipv4.tcp_keepalive_time = 600
    #TCP发送keepalive探测以确定该连接已经断开的次数。
    net.ipv4.tcp_keepalive_probes = 3
    #探测消息发送的频率
    net.ipv4.tcp_keepalive_intvl =15
    #在丢弃激活(已建立通讯状况)的TCP连接之前﹐需要进行多少次重试。默认15。
    net.ipv4.tcp_retries2 = 5
    #表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
    net.ipv4.tcp_fin_timeout = 2
    #表示系统同时保持TIME_WAIT套接字的最大数量。
    net.ipv4.tcp_max_tw_buckets = 36000
    #表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
    net.ipv4.tcp_tw_recycle = 1
    #表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
    net.ipv4.tcp_tw_reuse = 1
    #系统所能处理不属于任何进程的TCP sockets最大数量。
    net.ipv4.tcp_max_orphans = 32768
    #表示开启SYN Cookies。
    net.ipv4.tcp_syncookies = 1
    #表示SYN队列的长度
    net.ipv4.tcp_max_syn_backlog = 16384
    #为每个TCP连接分配的读、写缓冲区内存大小,单位是Byte
    net.ipv4.tcp_wmem = 8192 131072 16777216
    net.ipv4.tcp_rmem = 32768 131072 16777216
    #内核分配给TCP连接的内存 单位是Page,1 Page = 4096 Bytes
    net.ipv4.tcp_mem = 786432 1048576 1572864
    #允许使用的端口
    net.ipv4.ip_local_port_range = 1024 65000
    #在内核内存中netfilter可以同时处理的“任务”
    net.ipv4.ip_conntrack_max = 65536
    net.ipv4.netfilter.ip_conntrack_max=65536
    #跟踪的连接超时结束时间
    net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
    #定义了系统中每一个端口最大的监听队列的长度
    net.core.somaxconn = 16384
    #该参数决定了, 每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
    net.core.netdev_max_backlog = 16384
    EOF
    /sbin/sysctl -p
    echo "* soft nofile 65535" >> /etc/security/limits.conf
    echo "* hard nofile 65535" >> /etc/security/limits.conf
    echo "* soft nproc 65535" >> /etc/security/limits.conf
    echo "* hard nproc 65535" >> /etc/security/limits.conf
    }
    #初始化方法
    function init(){
        yum;
        ntp;
        close_firewalld;
        close_selinux;
        optimization;
    }
    
    init
    
  • 相关阅读:
    storage存储对象和数组类型时候的问题
    关于vue-router路径配置的问题
    解决v-for产生的警告的办法
    网页调用打印机打印文件
    vue-router的link样式设置问题
    在vue项目当中使用sass
    使用正则获取地址栏参数的方法
    escape、encodeURI和encodeURIComponent的区别
    SQLServer安装错误之--->无法打开项 UNKNOWNComponentsDA42BC89BF25F5BD0AF18C3B9B1A1EE8c1c4f01781cc94c4c8fb1542c0981a2a
    软件收集网站!
  • 原文地址:https://www.cnblogs.com/sdhzdtwhm/p/8027928.html
Copyright © 2011-2022 走看看