重构系统更新、清理和Docker安装脚本,添加日志功能和错误处理机制
This commit is contained in:
@@ -2,14 +2,66 @@
|
||||
# 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
|
||||
|
||||
echo "系统更新"
|
||||
# 错误处理:任何命令失败时退出
|
||||
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
|
||||
apt update -y && DEBIAN_FRONTEND=noninteractive apt full-upgrade -y
|
||||
OS_TYPE="debian"
|
||||
log "检测到 Debian/Ubuntu 系统"
|
||||
elif [ -f "/etc/redhat-release" ]; then
|
||||
OS_TYPE="redhat"
|
||||
log "检测到 RedHat/CentOS 系统"
|
||||
else
|
||||
log_error "不支持的操作系统"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 1、VPS Initialization
|
||||
apt update -y && apt upgrade -y # 更新一下包
|
||||
apt install -y wget curl sudo vim git ufw # Debian系统比较干净,安装常用的软件
|
||||
sudo usermod -aG sudo root
|
||||
# 系统更新
|
||||
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 "========== 系统更新完成 =========="
|
||||
|
||||
Reference in New Issue
Block a user