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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM