Centos7.x系統優化腳本
阿新 • • 發佈:2018-10-31
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系統優化腳本