feat(sysctl): 支持 Debian 13 及以上版本的 sysctl 配置文件路径
This commit is contained in:
26
1.sh
26
1.sh
@@ -45,6 +45,22 @@ sysctl_config() {
|
|||||||
print_green "###################"
|
print_green "###################"
|
||||||
print_green "##### sysctl ######"
|
print_green "##### sysctl ######"
|
||||||
print_green "###################"
|
print_green "###################"
|
||||||
|
|
||||||
|
# 确定 sysctl 配置文件路径
|
||||||
|
SYSCTL_CONF="/etc/sysctl.conf"
|
||||||
|
if [ "$SYSTEM_TYPE" = "debian" ]; then
|
||||||
|
DEBIAN_VERSION=$(grep -oP 'VERSION_ID="\K[^"]+' /etc/os-release 2>/dev/null || cat /etc/debian_version 2>/dev/null | cut -d. -f1)
|
||||||
|
|
||||||
|
if [ -z "$DEBIAN_VERSION" ]; then
|
||||||
|
echo "无法确定 Debian 版本,使用默认配置文件"
|
||||||
|
elif (( DEBIAN_VERSION >= 13 )); then
|
||||||
|
SYSCTL_CONF="/etc/sysctl.d/999-custom.conf"
|
||||||
|
echo "检测到 Debian $DEBIAN_VERSION,使用 $SYSCTL_CONF"
|
||||||
|
else
|
||||||
|
echo "检测到 Debian $DEBIAN_VERSION,使用 $SYSCTL_CONF"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
SYSCTL_SETTINGS=(
|
SYSCTL_SETTINGS=(
|
||||||
"net.core.rmem_max=16777216"
|
"net.core.rmem_max=16777216"
|
||||||
"net.core.wmem_max=16777216"
|
"net.core.wmem_max=16777216"
|
||||||
@@ -55,13 +71,17 @@ sysctl_config() {
|
|||||||
"net.ipv4.tcp_notsent_lowat=16384"
|
"net.ipv4.tcp_notsent_lowat=16384"
|
||||||
# "net.ipv4.tcp_notsent_lowat=131072"
|
# "net.ipv4.tcp_notsent_lowat=131072"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# # 确保配置文件目录存在
|
||||||
|
# mkdir -p "$(dirname "$SYSCTL_CONF")"
|
||||||
|
|
||||||
for SETTING in "${SYSCTL_SETTINGS[@]}"; do # 遍历数组
|
for SETTING in "${SYSCTL_SETTINGS[@]}"; do # 遍历数组
|
||||||
KEY=$(echo "$SETTING" | cut -d '=' -f 1) # 截取=左边的字符串
|
KEY=$(echo "$SETTING" | cut -d '=' -f 1) # 截取=左边的字符串
|
||||||
sed -i "/^$KEY *= *[0-9]*/d" /etc/sysctl.conf # 删除已有的配置
|
sed -i "/^$KEY *= *[0-9]*/d" "$SYSCTL_CONF" # 删除已有的配置
|
||||||
echo "$SETTING" >>/etc/sysctl.conf # 追加新的配置
|
echo "$SETTING" >>"$SYSCTL_CONF" # 追加新的配置
|
||||||
# echo "已添加系统配置: $SETTING" # 输出提示信息
|
# echo "已添加系统配置: $SETTING" # 输出提示信息
|
||||||
done # 循环结束
|
done # 循环结束
|
||||||
sysctl -p
|
sysctl --system
|
||||||
}
|
}
|
||||||
|
|
||||||
detect_cn_network() {
|
detect_cn_network() {
|
||||||
|
|||||||
Reference in New Issue
Block a user