68 lines
1.7 KiB
Bash
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 "========== 系统更新完成 =========="
|