更新一下,待测试
This commit is contained in:
152
linux_tool.sh
152
linux_tool.sh
@@ -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}"
|
||||
|
||||
Reference in New Issue
Block a user