#!/bin/bash # chmod +x 01-sysUpdate.sh && ./01-sysUpdate.sh # curl -sS -O https://gitea.tohub.top/Share/vps/raw/branch/main/init/01-sysUpdate.sh && chmod +x 01-sysUpdate.sh && ./01-sysUpdate.sh # 错误处理:任何命令失败时退出 set -euo pipefail # 日志函数 log() { echo "[$(date +'%Y-%m-%d %H:%M:%S')] $*" } log_error() { echo "[$(date +'%Y-%m-%d %H:%M:%S')] ERROR: $*" >&2 } log "========== 开始系统更新 ==========" # 检测操作系统类型 if [ -f "/etc/debian_version" ]; then OS_TYPE="debian" log "检测到 Debian/Ubuntu 系统" elif [ -f "/etc/redhat-release" ]; then OS_TYPE="redhat" log "检测到 RedHat/CentOS 系统" else log_error "不支持的操作系统" exit 1 fi # 系统更新 log "更新软件包列表..." if [ "$OS_TYPE" = "debian" ]; then if ! apt update -y; then log_error "更新软件包列表失败" exit 1 fi log "升级系统软件包..." if ! DEBIAN_FRONTEND=noninteractive apt full-upgrade -y; then log_error "系统升级失败" exit 1 fi # 安装常用软件 log "安装常用软件包..." PACKAGES="wget curl sudo vim git ufw" for pkg in $PACKAGES; do if ! dpkg -l | grep -q "^ii $pkg "; then log "安装 $pkg..." apt install -y "$pkg" || log_error "安装 $pkg 失败,继续..." else log "$pkg 已安装" fi done elif [ "$OS_TYPE" = "redhat" ]; then if ! yum update -y; then log_error "系统更新失败" exit 1 fi log "安装常用软件包..." yum install -y wget curl sudo vim git firewalld || log_error "部分软件包安装失败" fi log "========== 系统更新完成 =========="