Files
vps/init/01-sysUpdate.sh

68 lines
1.7 KiB
Bash

#!/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 "========== 系统更新完成 =========="