#!/bin/bash
get_char() {
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo "按任意键开始执行初始化或按Ctrl + C 取消执行."
char=`get_char`
if [ ! -n "$1" ] ;then
echo "未输入计算机名,不做修改"
else
hostnamectl set-hostname $1
echo "计算机名以修改为 $1"
fi
#关闭IPv6
echo "开始关闭IPv6....."
sed -i '$ a\net.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1' /etc/sysctl.conf
sed -i '$ a\AddressFamily inet' /etc/ssh/sshd_config
systemctl restart sshd
sysctl -p
echo "结束关闭IPv6....."
#关闭防火墙/SELINUX
echo "开始关闭firewalld防火墙....."
systemctl stop firewalld.service
systemctl disable firewalld.service
echo "结束关闭firewalld防火墙....."
#关闭selinux
echo "开始关闭SElinux......"
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
echo "结束关闭SElinux......"
#设置时钟同步
echo "开始设置时钟同步......"
echo "*/5 * * * * root /usr/sbin/ntpdate time7.aliyun.com &>/dev/null" >> /etc/crontab
#修改文件打开数
echo "开始修改文件打开数......"
cat >> /etc/security/limits.conf <<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF
echo "ulimit -SH 65535" >> /etc/rc.local
#优化内核参数
echo "优化内核参数....."
sed -i 's/net.ipv4.tcp_syncookies.*$/net.ipv4.tcp_syncookies = 1/g' /etc/sysctl.conf
cat >> /etc/sysctl.conf << ENDF
net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_tw_recycle = 1
#net.ipv4.tcp_tw_len = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.ip_local_port_range = 1024 65535
ENDF
sysctl -p
echo "安装基础环境和库......"
#安装wget工具
yum -y install wget
#安装bash命令tab自动补全组件
yum -y install bash-completion
#安装vim编辑器
yum -y install vim screen lrzsz tree psmisc
#安装压缩解压工具
yum -y install zip unzip bzip2 gdisk
#安装网络及性能监控工具
yum -y install telnet net-tools sysstat iftop lsof iotop htop dstat
#安装源码编译工具及开发组件
yum -y install cmake gcc gcc-c++ zib zlib-devel open openssl-devel pcre pcre-devel curl
#安装telnet
yum -y install telnet-server.x86_64
yum -y install telnet.x86_64
yum -y install xinetd.x86_64
exec bash
#修改文件权限
chmod +x centos-init.sh
#执行初始化脚本,不设置计算机名
./centos-init.sh
#执行初始化脚本,设置计算机名
./centos-init.sh name