Centos7.x系統優化指令碼
阿新 • • 發佈:2018-10-31
############################################################# # 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 "系統已優化完畢,請使用!"