From 407a7566bf7e35a3f4c94ea1e75dcf8d3366a9d8 Mon Sep 17 00:00:00 2001 From: eddy <1036636139@qq.com> Date: Thu, 13 Nov 2025 21:25:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=91=98=E8=A6=81=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=96=87=E4=BB=B6=EF=BC=8C=E8=AE=B0=E5=BD=95VPS?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E8=BF=87=E7=A8=8B=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E9=87=8D=E8=A6=81=E4=BF=A1=E6=81=AF=E5=92=8C=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vps_init.sh | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/vps_init.sh b/vps_init.sh index 7c6e494..3e59878 100644 --- a/vps_init.sh +++ b/vps_init.sh @@ -130,11 +130,24 @@ LOG_FILE="/var/log/vps_init_$(date +%Y%m%d_%H%M%S).log" touch $LOG_FILE echo "VPS初始化脚本开始执行: $(date)" > $LOG_FILE +# 创建摘要信息文件 +SUMMARY_FILE="/root/vps_init_summary_$(date +%Y%m%d_%H%M%S).txt" +touch $SUMMARY_FILE +echo "VPS初始化摘要信息" > $SUMMARY_FILE +echo "生成时间: $(date)" >> $SUMMARY_FILE +echo "=======================================================" >> $SUMMARY_FILE +echo "" >> $SUMMARY_FILE + # 定义日志函数 log() { echo -e "$1" | tee -a $LOG_FILE } +# 定义摘要信息函数(同时输出到屏幕、日志文件和摘要文件) +log_summary() { + echo -e "$1" | tee -a $LOG_FILE | sed 's/\x1b\[[0-9;]*m//g' >> $SUMMARY_FILE +} + # 定义错误处理函数 handle_error() { local exit_code=$? @@ -607,52 +620,54 @@ DURATION=$((END_TIME - START_TIME)) MINUTES=$((DURATION / 60)) SECONDS=$((DURATION % 60)) -log "${GREEN}=======================================================${NC}" -log "${GREEN}VPS初始化完成!用时: ${MINUTES}分${SECONDS}秒${NC}" -log "${GREEN}=======================================================${NC}" -log "${YELLOW}重要提示:${NC}" +log_summary "${GREEN}=======================================================${NC}" +log_summary "${GREEN}VPS初始化完成!用时: ${MINUTES}分${SECONDS}秒${NC}" +log_summary "${GREEN}=======================================================${NC}" +log_summary "${YELLOW}重要提示:${NC}" # 根据用户选择显示相应的提示信息 TIP_COUNT=1 # 如果用户选择了修改SSH端口,显示端口信息 if [[ "$CHANGE_SSH_PORT" =~ ^[Yy]$ ]]; then - log "${YELLOW}$TIP_COUNT. SSH端口已更改为: ${NEW_SSH_PORT}${NC}" + log_summary "${YELLOW}$TIP_COUNT. SSH端口已更改为: ${NEW_SSH_PORT}${NC}" TIP_COUNT=$((TIP_COUNT + 1)) fi # 如果用户选择了修改root密码,显示密码信息 if [[ "$CHANGE_PASSWORD" =~ ^[Yy]$ ]]; then - log "${YELLOW}$TIP_COUNT. root密码已更改为: ${NEW_PASSWORD}${NC}" + log_summary "${YELLOW}$TIP_COUNT. root密码已更改为: ${NEW_PASSWORD}${NC}" TIP_COUNT=$((TIP_COUNT + 1)) fi # 如果用户选择了修改主机名,显示主机名信息 if [ "$CHANGE_HOSTNAME_FLAG" = true ]; then - log "${YELLOW}$TIP_COUNT. 主机名已更改为: ${NEW_HOSTNAME}${NC}" + log_summary "${YELLOW}$TIP_COUNT. 主机名已更改为: ${NEW_HOSTNAME}${NC}" TIP_COUNT=$((TIP_COUNT + 1)) fi # 始终显示防火墙和日志文件信息 -log "${YELLOW}$TIP_COUNT. 防火墙已启用,只开放了必要端口${NC}" +log_summary "${YELLOW}$TIP_COUNT. 防火墙已启用,只开放了必要端口${NC}" TIP_COUNT=$((TIP_COUNT + 1)) -log "${YELLOW}$TIP_COUNT. 日志文件保存在: ${LOG_FILE}${NC}" +log_summary "${YELLOW}$TIP_COUNT. 日志文件保存在: ${LOG_FILE}${NC}" # 如果已启用BBR,显示BBR信息 if sysctl net.ipv4.tcp_congestion_control 2>/dev/null | grep -q "bbr"; then TIP_COUNT=$((TIP_COUNT + 1)) - log "${YELLOW}$TIP_COUNT. BBR加速已成功启用${NC}" + log_summary "${YELLOW}$TIP_COUNT. BBR加速已成功启用${NC}" fi # 如果配置了交换空间,显示交换空间信息 if [ "$CURRENT_SWAP_TOTAL" -gt "0" ]; then TIP_COUNT=$((TIP_COUNT + 1)) - log "${YELLOW}$TIP_COUNT. 交换空间大小: $(free -m | grep "Swap:" | awk '{print $2}')MB${NC}" + log_summary "${YELLOW}$TIP_COUNT. 交换空间大小: $(free -m | grep "Swap:" | awk '{print $2}')MB${NC}" fi -log "${GREEN}=======================================================${NC}" -log "${BLUE}建议您现在重启服务器以应用所有更改${NC}" -log "${GREEN}=======================================================${NC}" +log_summary "${GREEN}=======================================================${NC}" +log_summary "${BLUE}建议您现在重启服务器以应用所有更改${NC}" +log_summary "${GREEN}=======================================================${NC}" +log_summary "" +log_summary "摘要信息已保存到: ${SUMMARY_FILE}" # 提示用户是否立即重启 while true; do