更新一下,待测试

This commit is contained in:
ert
2025-12-21 01:03:59 +08:00
parent b0d55d7348
commit 301d93c31f
3 changed files with 136 additions and 78 deletions

View File

@@ -661,10 +661,10 @@ system_config() {
show_menu() {
clear
echo -e "${CYAN}==========================================${NC}"
echo -e "${GREEN} $(__) title ${NC}"
echo -e "${GREEN} $(__ title) ${NC}"
echo -e "${CYAN}==========================================${NC}"
echo -e "${PURPLE} $(__) copyright ${NC}"
echo -e "${BLUE} $(__) website ${NC}"
echo -e "${PURPLE} $(__ copyright) ${NC}"
echo -e "${BLUE} $(__ website) ${NC}"
echo -e "${CYAN}==========================================${NC}"
echo -e "${YELLOW}$(__ menu_1)${NC}"
echo -e "${YELLOW}$(__ menu_2)${NC}"
@@ -755,7 +755,8 @@ modify_max_connections() {
read -n 1
}
# 支持的Ubuntu版本列表
# 支持的Linux发行版和版本
# Ubuntu
declare -A SUPPORTED_UBUNTU_VERSIONS=(
["trusty"]="14.04 LTS"
["xenial"]="16.04 LTS"
@@ -766,6 +767,17 @@ declare -A SUPPORTED_UBUNTU_VERSIONS=(
["oracular"]="24.10"
)
# Debian
declare -A SUPPORTED_DEBIAN_VERSIONS=(
["jessie"]="8 LTS"
["stretch"]="9 LTS"
["buster"]="10 LTS"
["bullseye"]="11 LTS"
["bookworm"]="12 LTS"
["trixie"]="13"
["forky"]="14"
)
# 系统更新功能
system_update() {
clear
@@ -773,84 +785,92 @@ system_update() {
echo -e "${GREEN} 系统更新 ${NC}"
echo -e "${CYAN}==========================================${NC}"
# 获取当前系统信息
OS_NAME=$(lsb_release -i | cut -f2)
CURRENT_VERSION=$(lsb_release -c | cut -f2)
CURRENT_RELEASE=$(lsb_release -r | cut -f2)
# 检测Linux发行版
if command -v lsb_release &> /dev/null; then
OS_NAME=$(lsb_release -i | cut -f2)
CURRENT_VERSION=$(lsb_release -c | cut -f2)
CURRENT_RELEASE=$(lsb_release -r | cut -f2)
elif [ -f /etc/os-release ]; then
source /etc/os-release
OS_NAME=$NAME
CURRENT_VERSION=$VERSION_CODENAME
CURRENT_RELEASE=$VERSION_ID
else
echo -e "${RED}无法检测系统版本!${NC}"
log_message "ERROR" "无法检测系统版本"
read -n 1 -p "按任意键返回菜单..."
return 1
fi
echo -e "${YELLOW}当前系统: ${OS_NAME} ${CURRENT_RELEASE} (${CURRENT_VERSION})${NC}"
# 检查是否为Ubuntu系统
if [ "$OS_NAME" != "Ubuntu" ]; then
echo -e "${RED}警告当前系统不是Ubuntu部分功能可能无法正常使用${NC}"
echo -e "${YELLOW}继续执行更新?(y/n): ${NC}"
read -n 1 confirm
if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then
echo -e "${YELLOW}取消更新。${NC}"
read -n 1 -p "按任意键返回菜单..."
return 1
fi
# 确定包管理器
if command -v apt-get &> /dev/null; then
PM="apt"
elif command -v yum &> /dev/null; then
PM="yum"
elif command -v dnf &> /dev/null; then
PM="dnf"
else
echo -e "${RED}不支持的包管理器!${NC}"
log_message "ERROR" "不支持的包管理器"
read -n 1 -p "按任意键返回菜单..."
return 1
fi
echo -e "${YELLOW}支持的Ubuntu版本:${NC}"
for version in "${!SUPPORTED_UBUNTU_VERSIONS[@]}"; do
echo -e " - ${version}: ${SUPPORTED_UBUNTU_VERSIONS[$version]}"
done
echo -e "${YELLOW}包管理器: ${PM}${NC}"
echo -e "\n${YELLOW}1. 自动选择系统版本更新${NC}"
echo -e "${YELLOW}2. 手动选择系统版本更新${NC}"
echo -n -e "${PURPLE}请输入您的选择 [1-2]: ${NC}"
# 显示支持的版本
if [[ "$OS_NAME" == *"Ubuntu"* ]]; then
echo -e "${YELLOW}支持的Ubuntu版本:${NC}"
for version in "${!SUPPORTED_UBUNTU_VERSIONS[@]}"; do
echo -e " - ${version}: ${SUPPORTED_UBUNTU_VERSIONS[$version]}"
done
elif [[ "$OS_NAME" == *"Debian"* ]]; then
echo -e "${YELLOW}支持的Debian版本:${NC}"
for version in "${!SUPPORTED_DEBIAN_VERSIONS[@]}"; do
echo -e " - ${version}: ${SUPPORTED_DEBIAN_VERSIONS[$version]}"
done
fi
echo -e "\n${YELLOW}1. 自动更新${NC}"
echo -n -e "${PURPLE}请输入您的选择 [1]: ${NC}"
read update_choice
case $update_choice in
1)
echo -e "${YELLOW}正在使用当前系统版本 ${CURRENT_VERSION} 进行更新...${NC}"
echo -e "${YELLOW}正在执行系统更新...${NC}"
log_message "INFO" "开始系统更新,当前版本: ${CURRENT_VERSION}"
# 根据Ubuntu版本选择更新命令
if [ "$OS_NAME" == "Ubuntu" ] && [[ " ${!SUPPORTED_UBUNTU_VERSIONS[@]} " =~ " $CURRENT_VERSION " ]]; then
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get autoremove -y
else
# 通用更新命令适用于其他Ubuntu版本或Linux发行版
sudo apt-get update || sudo apt update
sudo apt-get upgrade -y || sudo apt upgrade -y
sudo apt-get dist-upgrade -y || sudo apt full-upgrade -y
sudo apt-get autoremove -y || sudo apt autoremove -y
fi
case $PM in
apt)
# apt包管理器 (Debian/Ubuntu)
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get autoremove -y
;;
yum)
# yum包管理器 (CentOS 6/7)
sudo yum update -y
sudo yum upgrade -y
;;
dnf)
# dnf包管理器 (CentOS 8+, Fedora)
sudo dnf update -y
sudo dnf upgrade -y
;;
*)
echo -e "${RED}不支持的包管理器!${NC}"
log_message "ERROR" "不支持的包管理器: $PM"
read -n 1 -p "按任意键返回菜单..."
return 1
;;
esac
echo -e "${GREEN}系统更新完成!${NC}"
log_message "INFO" "系统更新完成"
;;
2)
echo -n -e "${PURPLE}请输入要更新的系统版本代号jammy, focal: ${NC}"
read selected_version
if [ "$selected_version" == "$CURRENT_VERSION" ]; then
echo -e "${YELLOW}正在使用选择的系统版本 ${selected_version} 进行更新...${NC}"
log_message "INFO" "开始系统更新,使用选择的版本: ${selected_version}"
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade -y
sudo apt-get autoremove -y
echo -e "${GREEN}系统更新完成!${NC}"
log_message "INFO" "系统更新完成"
else
# 检查选择的版本是否受支持
if [[ " ${!SUPPORTED_UBUNTU_VERSIONS[@]} " =~ " $selected_version " ]]; then
echo -e "${RED}错误:选择的系统版本 ${selected_version} 与当前系统版本 ${CURRENT_VERSION} 不匹配!${NC}"
echo -e "${YELLOW}当前系统版本: ${CURRENT_VERSION} (${SUPPORTED_UBUNTU_VERSIONS[$CURRENT_VERSION]:-未知版本})${NC}"
echo -e "${YELLOW}选择的版本: ${selected_version} (${SUPPORTED_UBUNTU_VERSIONS[$selected_version]})${NC}"
else
echo -e "${RED}错误:选择的系统版本 ${selected_version} 不是受支持的Ubuntu版本${NC}"
fi
log_message "ERROR" "选择的系统版本无效: ${selected_version}"
fi
;;
*)
echo -e "${RED}无效的选择!${NC}"
log_message "WARNING" "无效的更新选择: ${update_choice}"