195 lines
4.6 KiB
Bash
195 lines
4.6 KiB
Bash
#!/bin/bash
|
|
|
|
# EM Script Library - Debian 12 系统部署脚本库
|
|
# 用于解决国内源配置和系统优化问题
|
|
|
|
set -e # 遇到错误立即退出
|
|
|
|
# 颜色定义
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# 日志函数
|
|
log_info() {
|
|
echo -e "${BLUE}[INFO]${NC} $1"
|
|
}
|
|
|
|
log_success() {
|
|
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
}
|
|
|
|
log_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
log_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
# 检查是否为 root 用户
|
|
check_root() {
|
|
if [[ $EUID -ne 0 ]]; then
|
|
log_error "此脚本需要 root 权限运行"
|
|
log_info "请使用 sudo bash $0 或切换到 root 用户"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# 检查操作系统
|
|
check_os() {
|
|
if [[ ! -f /etc/debian_version ]]; then
|
|
log_error "此脚本仅支持 Debian 系统"
|
|
exit 1
|
|
fi
|
|
|
|
local version=$(cat /etc/debian_version | cut -d. -f1)
|
|
if [[ $version -ne 12 ]]; then
|
|
log_warning "此脚本针对 Debian 12 优化,当前版本: $version"
|
|
fi
|
|
|
|
log_success "检测到 Debian $version 系统"
|
|
}
|
|
|
|
# 显示帮助信息
|
|
show_help() {
|
|
cat << EOF
|
|
EM Script Library - Debian 12 系统部署工具
|
|
|
|
用法: $0 [选项] [模块]
|
|
|
|
选项:
|
|
-h, --help 显示此帮助信息
|
|
-l, --list 列出所有可用模块
|
|
-v, --version 显示版本信息
|
|
-d, --debug 启用调试模式
|
|
|
|
模块:
|
|
sources 配置国内软件源
|
|
packages 包管理相关操作
|
|
system 系统基础配置
|
|
network 网络优化配置
|
|
security 安全配置
|
|
all 执行所有模块
|
|
|
|
示例:
|
|
$0 sources # 配置国内源
|
|
$0 sources aliyun # 使用阿里云源
|
|
$0 all # 执行所有配置
|
|
|
|
EOF
|
|
}
|
|
|
|
# 显示版本信息
|
|
show_version() {
|
|
echo "EM Script Library v1.0.0"
|
|
echo "针对 Debian 12 优化的系统部署工具"
|
|
}
|
|
|
|
# 列出可用模块
|
|
list_modules() {
|
|
echo "可用模块:"
|
|
echo " sources - 国内软件源配置"
|
|
echo " packages - 包管理工具配置"
|
|
echo " system - 系统基础配置"
|
|
echo " network - 网络优化配置"
|
|
echo " security - 安全配置"
|
|
echo ""
|
|
echo "使用方法: $0 <模块名>"
|
|
}
|
|
|
|
# 主函数
|
|
main() {
|
|
local debug=false
|
|
local module=""
|
|
|
|
# 参数解析
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
-h|--help)
|
|
show_help
|
|
exit 0
|
|
;;
|
|
-v|--version)
|
|
show_version
|
|
exit 0
|
|
;;
|
|
-l|--list)
|
|
list_modules
|
|
exit 0
|
|
;;
|
|
-d|--debug)
|
|
debug=true
|
|
shift
|
|
;;
|
|
-*)
|
|
log_error "未知选项: $1"
|
|
show_help
|
|
exit 1
|
|
;;
|
|
*)
|
|
module="$1"
|
|
shift
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# 调试模式
|
|
if [[ "$debug" == "true" ]]; then
|
|
set -x
|
|
log_info "调试模式已启用"
|
|
fi
|
|
|
|
# 检查环境
|
|
check_root
|
|
check_os
|
|
|
|
# 执行模块
|
|
case $module in
|
|
sources)
|
|
log_info "开始配置国内软件源..."
|
|
bash scripts/sources/configure_sources.sh "$@"
|
|
;;
|
|
packages)
|
|
log_info "开始配置包管理工具..."
|
|
bash scripts/packages/configure_packages.sh "$@"
|
|
;;
|
|
system)
|
|
log_info "开始系统基础配置..."
|
|
bash scripts/system/configure_system.sh "$@"
|
|
;;
|
|
network)
|
|
log_info "开始网络优化配置..."
|
|
bash scripts/network/configure_network.sh "$@"
|
|
;;
|
|
security)
|
|
log_info "开始安全配置..."
|
|
bash scripts/security/configure_security.sh "$@"
|
|
;;
|
|
all)
|
|
log_info "开始执行完整配置流程..."
|
|
bash scripts/sources/configure_sources.sh
|
|
bash scripts/packages/configure_packages.sh
|
|
bash scripts/system/configure_system.sh
|
|
bash scripts/network/configure_network.sh
|
|
bash scripts/security/configure_security.sh
|
|
log_success "所有配置完成!"
|
|
;;
|
|
"")
|
|
log_error "未指定模块"
|
|
list_modules
|
|
exit 1
|
|
;;
|
|
*)
|
|
log_error "未知模块: $module"
|
|
list_modules
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# 执行主函数
|
|
main "$@" |