Linux 初始化脚本
Linux 初始化脚本
2023-10-26 07:09
注意:执行系统升级和内核更改的操作可能会导致不稳定或与某些应用不兼容的情况。在执行此脚本之前,请备份数据并确保在安全环境中测试。
```bash
#!/bin/bash
# 识别 Linux 发行版
release="$(lsb_release -is)"
# 更新所有软件包
if [ "$release" == "Ubuntu" ] || [ "$release" == "Debian" ]; then
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt install -y lsb-release
elif [ "$release" == "CentOS" ]; then
sudo yum update -y
fi
# 升级到最新最稳定的内核 (此处仅为示例,实际情况可能会有所不同)
if [ "$release" == "Ubuntu" ]; then
sudo apt install --install-recommends linux-generic-hwe-$(lsb_release -sr) -y
elif [ "$release" == "Debian" ]; then
echo "Debian通常使用稳定的内核版本,您可能需要手动选择并安装新版本。"
elif [ "$release" == "CentOS" ]; then
sudo yum install elrepo-release -y
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
sudo grub2-set-default 0
fi
# 安装BBR
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# 打开KSM
sudo systemctl start ksmtuned
sudo systemctl enable ksmtuned
# 优化内核以实现高并发特性 (此处仅为示例,具体设置可能需要根据硬件和应用需求进行调整)
echo "fs.file-max=65536" | sudo tee -a /etc/sysctl.conf
echo "net.core.netdev_max_backlog = 4096" | sudo tee -a /etc/sysctl.conf
echo "net.core.somaxconn = 4096" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_max_syn_backlog = 8192" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_max_tw_buckets = 5000" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_fin_timeout = 15" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
echo "初始化完成!请考虑重启机器应用所有更改。"
```
在运行此脚本之前,请确保了解每个步骤的含义。对于生产环境,建议分步执行,并确保每个步骤完成后系统仍然稳定。