背景:新购买10台服务器并已安装Linux操作系统
需求:
1、设置时区并同步时间
2、禁用selinux
3、禁用防火墙默认策略
4、历史命令显示操作时间
5、禁止root远程登录
6、禁止定时任务发送邮件
7、设置最大打开文件数
8、减少swap使用
9、系统内核参数优化
10、安装系统性能分析工具及其他
##########################################################################################
vim 1.sh
#!/bin/bash
#设置时区并同步时间
yum -y install ntpdate &> /dev/null
ln -s /usr/share/zoneinfo/Ashia/Shanghai /etc/localtime
if ! crontab -l | grep 'ntpdate';then
echo '* 1 * * * ntpdate ntp1.aliyun.com &> /dev/null' | crontab
fi
#禁用selinux
if grep 'SELINUX=enforcing' &> /dev/null;then
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
fi
if grep 'SELINUX=permissive' &> /dev/null;then
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/selinux/config
fi
#关闭防火墙
if grep '7\.[0-9]' /etc/redhat-release &> /dev/null;then
systemctl stop firewalld &> /dev/null
systemctl disable firewalld &> /dev/null
elif grep '6\.[0-9]' /etc/redhat-release &> /dev/null;then
service iptables stop &> /dev/null
chkconfig iptables off &> /dev/null
fi
#历史命令显示操作时间
if ! grep 'HITTIMEFORMAT' /etc/bashrc &> /dev/null;then
echo 'export HISTTIMEFORMAT="%F %T 'whoami' "' >> /etc/bashrc
fi
#SSH超时时间
if ! grep 'TMOUT=600' &> /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 *" &> /dev/null /etc/security/limits.conf;
echo '* soft nofile 65535' >> /etc/security/limits.conf
echo '* hard nofile 65535' >> /etc/security/limits.conf
fi
#系统内核优化
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_tw_buckers = 20480
net.ipv4.tcp_max_syn_backlog = 20480
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_fin_timeout = 20
EOF
#减少swap使用
echo '0' > /proc/sys/vm/swappiness
#安装系统性能分析工具及其他
yum -y install gcc make autoconf vim net-tools iostat iftop iotp lrzsz &> /dev/null