From b1cea78d4a07aac3927d929d275ba25771bfd731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Mon, 23 Mar 2026 10:53:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(sysctl):=20=E4=BC=98=E5=8C=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=B8=85=E7=90=86=E9=80=BB=E8=BE=91=E5=B9=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8F=82=E6=95=B0=E6=9C=89=E6=95=88=E6=80=A7=E6=A3=80?= =?UTF-8?q?=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.sh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/1.sh b/1.sh index 086fe57..61b2da1 100644 --- a/1.sh +++ b/1.sh @@ -53,6 +53,7 @@ sysctl_config() { # 确定 sysctl 配置文件路径 SYSCTL_CONF="/etc/sysctl.conf" + SYSCTL_CLEANUP_FILES=("/etc/sysctl.conf" "/etc/sysctl.d/99-sysctl.conf" "/etc/sysctl.d/999-custom.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) @@ -85,7 +86,19 @@ sysctl_config() { for SETTING in "${SYSCTL_SETTINGS[@]}"; do # 遍历数组 KEY=$(echo "$SETTING" | cut -d '=' -f 1) # 截取=左边的字符串 - sed -i "/^$KEY *= *[0-9]*/d" "$SYSCTL_CONF" # 删除已有的配置 + KEY_PATH="/proc/sys/${KEY//./\/}" + if [ ! -e "$KEY_PATH" ]; then + print_yellow "跳过不支持的 sysctl: $KEY" + continue + fi + + KEY_REGEX=${KEY//./\\.} + for CLEANUP_FILE in "${SYSCTL_CLEANUP_FILES[@]}"; do + if [ -f "$CLEANUP_FILE" ]; then + sed -i "/^[[:space:]]*${KEY_REGEX}[[:space:]]*=.*/d" "$CLEANUP_FILE" + fi + done + echo "$SETTING" >>"$SYSCTL_CONF" # 追加新的配置 # echo "已添加系统配置: $SETTING" # 输出提示信息 done # 循环结束