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