一、 服务器系统配置初始化
背景 新购买10台服务器并已安装linux操作
需求 :
- 设置时区并同步时间
- 禁用selinux
- 清空防火墙默认策略
- 历史命令显示操作时间
- 禁用root远程登录
- 禁止定时任务发送邮件
- 设置最大打开文件数
- 减少Swap使用
- 系统内核参数优化
- 安装系统性能分析工具及其他
在centos8上安装ntpdate,报错No match for argument: ntpdate
在 centos 8 中, ntp 已经被 chrony 代替。
之前的版本:yum install -y ntp
centos8:yum install chrony
#/bin/bash
# 设置时区并同步时间
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
if ! crontab -l | grep chronyc &>/dev/null ; then
(echo "* 1 * * * chronyc -a makestep >/dev/null 2>&1"; crontab -l) | crontab
fi
# 禁用selinux
sed -i '/SELINUX/{s/permissive/disabled/}' /etc/selinux/config
# 关闭防火墙
if egrep "7.[0-9]" /etc/redhat-release &>/dev/null; then
systemctl stop firewalld
systemctl disable firewalld
elif egrep "6.[0-9]" /etc/redhat-release &>/dev/null; then
service iptables stop
chkconfig iptables off
fi
# 历史命令显示操作时间
if ! grep HISTTIMEFORMAT /etc/bashrc; then
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/bashrc
fi
# ssh超时时间
if ! grep "TMOUT=600" /etc/brofile &>/dev/null; then
echo "export TMOUT=600" >> /etc/profile
fi
# 禁止root远程登录
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
# 禁止定时任务发送邮件
sed -i 's/^MAILTO=root/MAILTO=""/' /etc/crontab
# 设置最大打开文件数
if ! grep "* soft nofile 65535" /etc/security/limits.conf &>/dev/null; then
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* haed nofile 65535
EOF
fi
# 系统内核优化
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_tw_buckets = 20480
net.core.netdev_max_backlog = 262144
nwt.ipv4.tcp_fin_timeout = 20
EOF
# 减少SWAP使用
echo "0" > /proc/sys/vm/swappiness
# 安装系统性能分析工具及其他
yum install gcc make autoconf vim sysstat net-tools iostat iftop iotp lrzsz -y