Linux 初始化脚本

system

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 "初始化完成!请考虑重启机器应用所有更改。"

```

 

在运行此脚本之前,请确保了解每个步骤的含义。对于生产环境,建议分步执行,并确保每个步骤完成后系统仍然稳定。