添加交互式设置交换倾向(swappiness)功能,并根据用户输入调整系统配置

This commit is contained in:
eddy
2026-06-29 02:52:29 +08:00
parent 60db48eea1
commit 13d1b870ea
+24 -4
View File
@@ -13,6 +13,7 @@
NEW_SSH_PORT="4399" # SSH新端口号(默认值) NEW_SSH_PORT="4399" # SSH新端口号(默认值)
TIMEZONE="Asia/Shanghai" # 时区设置 TIMEZONE="Asia/Shanghai" # 时区设置
SWAP_SIZE=2048 # 交换分区大小(MB) SWAP_SIZE=2048 # 交换分区大小(MB)
SWAPPINESS=10 # 交换倾向默认值(0-100,越大越倾向使用交换)
# =========================================== # ===========================================
# 颜色定义 # 颜色定义
@@ -126,6 +127,23 @@ else
echo -e "${GREEN}保持主机名不变${NC}" echo -e "${GREEN}保持主机名不变${NC}"
fi fi
# 询问交换倾向(swappiness)
echo -e "${YELLOW}4. 设置交换倾向 swappiness (0-100)?${NC}"
echo -e "${YELLOW} 值越大越倾向使用交换(swap),越小越倾向保留物理内存${NC}"
while true; do
read -p "请输入 swappiness 值 (0-100, 默认${SWAPPINESS}): " INPUT_SWAPPINESS
# 用户直接回车则使用默认值
INPUT_SWAPPINESS=${INPUT_SWAPPINESS:-$SWAPPINESS}
# 校验:必须为0-100之间的整数
if [[ "$INPUT_SWAPPINESS" =~ ^[0-9]+$ ]] && [ "$INPUT_SWAPPINESS" -ge 0 ] && [ "$INPUT_SWAPPINESS" -le 100 ]; then
SWAPPINESS=$INPUT_SWAPPINESS
echo -e "${GREEN}swappiness 将设置为: ${SWAPPINESS}${NC}"
break
else
echo -e "${RED}无效的输入,请输入 0 到 100 之间的整数${NC}"
fi
done
echo -e "${BLUE}交互式设置完成${NC}" echo -e "${BLUE}交互式设置完成${NC}"
echo "" echo ""
@@ -672,15 +690,17 @@ else
log "${GREEN}已添加到fstab,开机将自动挂载${NC}" log "${GREEN}已添加到fstab,开机将自动挂载${NC}"
fi fi
# 调整swappiness参数(控制系统对交换空间的使用倾向)
echo "vm.swappiness=10" > /etc/sysctl.d/99-swappiness.conf
sysctl -p /etc/sysctl.d/99-swappiness.conf
# 显示交换空间信息 # 显示交换空间信息
log "${GREEN}交换分区配置完成,当前内存和交换空间状态:${NC}" log "${GREEN}交换分区配置完成,当前内存和交换空间状态:${NC}"
free -h | tee -a $LOG_FILE free -h | tee -a $LOG_FILE
fi fi
# 调整swappiness参数(控制系统对交换空间的使用倾向)
# 放在 if/else 之外:无论是否重建交换文件,都按用户设置应用 swappiness
echo "vm.swappiness=${SWAPPINESS}" > /etc/sysctl.d/99-swappiness.conf
sysctl -p /etc/sysctl.d/99-swappiness.conf
log "${GREEN}swappiness 已设置为: ${SWAPPINESS}${NC}"
# =========================================== # ===========================================
# 9. Fail2ban安装和配置 # 9. Fail2ban安装和配置
# =========================================== # ===========================================