1. 程式人生 > >Centos7.x系統優化腳本

Centos7.x系統優化腳本

max 允許 use nac date limits 添加 har roo

############################################################# # File Name: system.sh # Author: She # E-mail: [email protected] # Created Time: Fri 18 May 2018 05:01:02 PM CST #================================================================== #!/bin/sh # 運行環境CentOS 7.x # 運行前請刪除中文註釋 system=`uname -i` if [ $system != "x86_64" ];then echo "檢測到此系統版本不是64位 !" exit 1 fi cat << EOF +---------------------------------------+ | 您的系統是 CentOS 7.x_ x86_64 | | 開始優化,請稍等....... | +--------------------------------------- EOF echo "下載wget·······" yum -y install wget &>/dev/null echo "添加DNS地址,請稍等....... " cat >> /etc/resolv.conf << EOF nameserver 114.114.114.114 nameserver 114.114.114.114 EOF echo "更換為Yum源,請稍等....... " cd /etc/yum.repos.d/ mkdir yum_bak &>/dev/null mv * yum_bak &>/dev/null wget -O Centos-aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null sed -i ‘s/$releasever/7/g‘ Centos-aliyun.repo &>/dev/null yum makecache &>/dev/null yum install epel-release -y &>/dev/null echo "同步時間,請稍等....... " if [ -f /usr/sbin/ntpdate ];then echo "" else yum -y install ntp &>/dev/null fi /usr/sbin/ntpdate cn.pool.ntp.org &>/dev/null echo “0 4 * * * /usr/sbin/ntpdate cn.pool.ntp.org” >> /var/spool/cron/root systemctl restart crond.service echo "安裝vim,請稍等....... " yum -y install vim &>/dev/null echo "命令補全,請稍等....... " yum install bash-completion -y &>/dev/null echo "設置最大打開文件描述符數,請稍等......." echo "ulimit -SHn 102400" >> /etc/rc.local cat >> /etc/security/limits.conf << EOF * soft nofile 655350 * hard nofile 655350 EOF echo "禁用selinux,請稍等......." sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config setenforce 0 echo "關閉防火墻,請稍等......." systemctl disable firewalld.service systemctl stop firewalld.service echo "優化ssh服務,請稍等......." sed -i ‘s/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/‘ /etc/ssh/sshd_config sed -i ‘s/#UseDNS yes/UseDNS no/‘ /etc/ssh/sshd_config systemctl restart sshd.service echo "-------<內核參數優化>-------" cat >> /etc/sysctl.conf << EOF vm.overcommit_memory = 1 #表示內核在分配內存時候做檢查的方式 net.ipv4.ip_local_port_range = 1024 65536 #端口範圍 1024~65535 net.ipv4.tcp_fin_timeout = 1 #保持在FIN-WAIT-2狀態的時間 net.ipv4.tcp_keepalive_time = 1200 # TCP發送keepalive消息間隔時間(秒) net.ipv4.tcp_mem = 94500000 915000000 927000000 #tcp整體緩存設置,對所有tcp內存使用狀況的控制,單位是頁,依次代表TCP整體內存的無壓力值、壓力模式開啟閥值、最大使用值 net.ipv4.tcp_tw_reuse = 1 # 開啟TCP連接中TIME-WAIT sockets的快速回收,默認為0,表示關閉 net.ipv4.tcp_tw_recycle = 1 # 開啟重用,允許將TIME-WAIT sockets重新用於新的TCP連接,默認為0,表示關閉; net.ipv4.tcp_timestamps = 0 # 關閉時間戳 “異常”的數據包 net.ipv4.tcp_synack_retries = 1 # 內核放棄連接之前發送SYN+ACK 包的數量 net.ipv4.tcp_syn_retries = 1 # 內核放棄建立連接之前發送SYN 包的數量 net.ipv4.tcp_abort_on_overflow = 0 #一個布爾類型的標誌,控制著當有很多的連接請求時內核的行為 net.core.rmem_max = 16777216 # 指定了接收套接字緩沖區大小的最大值(以字節為單位) net.core.wmem_max = 16777216 # 指定了發送套接字緩沖區大小的最大值(以字節為單位) net.core.netdev_max_backlog = 262144 # 允許送到隊列的數據包的最大數目 net.core.somaxconn = 262144 #系統中最多有多少個TCP 套接字不被關聯到任何一個用戶文件句柄上 net.ipv4.tcp_max_orphans = 3276800 #為了防止簡單的DoS ***,不能過分依靠它 net.ipv4.tcp_max_syn_backlog = 262144 #表示SYN隊列的長度 net.core.wmem_default = 8388608 #指定發送套接字緩沖區大小的缺省值(以字節為單位) net.core.rmem_default = 8388608 #指定接收套接字緩沖區大小的缺省值(以字節為單位) #net.ipv4.netfilter.ip_conntrack_max = 2097152 #最大內核內存中netfilter可以同時處理的“任務”(連接跟蹤條目) #net.nf_conntrack_max = 655360 #允許最大跟蹤連接條目 #net.netfilter.nf_conntrack_tcp_timeout_established = 1200 # established的超時時間 EOF /sbin/sysctl -p echo "系統已優化完畢,請使用!"

Centos7.x系統優化腳本