禁用阿里云服务器不需要的服务器脚本

#!/bin/bash

# 服务列表
services=(
    "ecs_mq"           # ECS 消息队列服务
    "aliyun"           # 阿里云服务
    "cloud-config"     # 云初始化服务
    "cloud-final"      # 云初始化服务
    "cloud-init-local" # 云初始化服务
    "cloud-init"       # 云初始化服务
    "kdump"            # 内核崩溃转储服务
    "libstoragemgmt"   # 存储管理服务
    "smartd"           # 硬盘健康监控
    "mcelog"           # CPU 错误日志记录
    "rpcbind"          # RPC 服务,主要用于NFS(网络文件系统)
    "nis-domainname"   # NIS(网络信息服务)域名服务
    "loadmodules"      # 模块加载,如果你没有特殊硬件驱动需求,可以禁用
)

# 显示菜单
show_menu() {
    echo "=================================="
    echo "      服务批量管理工具"
    echo "=================================="
    echo "1. 禁止开机启动(disable)"
    echo "2. 停止服务(stop)"
    echo "3. 设置开机启动(enable)"
    echo "4. 启动服务(start)"
    echo "5. 重启服务(restart)"
    echo "10. 检查服务状态"
    echo "0. 退出"
    echo "=================================="
}

# 批量操作函数
batch_operation() {
    local action=$1
    local action_name=$2
    
    echo "开始批量$action_name服务..."
    echo "------------------------"
    
    for service in "${services[@]}"; do
        echo -n "正在$action_name: $service ... "
        sudo systemctl "$action" "$service" >/dev/null 2>&1
        if [ $? -eq 0 ]; then
            echo "✓ 成功"
        else
            echo "✗ 失败"
        fi
    done
    
    echo "------------------------"
    echo "批量$action_name操作完成!"
}

# 检查状态
check_status() {
    echo "=================================="
    echo "         服务状态检查"
    echo "=================================="
    printf "%-25s %-20s %-15s\n" "服务名" "开机启动" "运行状态"
    echo "------------------------------------------------------"
    
    for service in "${services[@]}"; do
        # 检查开机启动状态(使用sudo)
        if sudo systemctl is-enabled "$service" >/dev/null 2>&1; then
            enabled_status="已启用开机启动"
        else
            enabled_status="未启用开机启动"
        fi
        
        # 检查运行状态(使用sudo)
        if sudo systemctl is-active "$service" >/dev/null 2>&1; then
            active_status="运行中"
        else
            active_status="已停止"
        fi
        
        # 格式化输出
        printf "%-25s %-20s %-15s\n" "$service:" "$enabled_status" "$active_status"
    done
    
    echo "=================================="
}

# 主循环
while true; do
    show_menu
    read -p "请输入操作编号: " choice
    
    case $choice in
        1)
            batch_operation "disable" "禁止开机启动"
            ;;
        2)
            batch_operation "stop" "停止"
            ;;
        3)
            batch_operation "enable" "设置开机启动"
            ;;
        4)
            batch_operation "start" "启动"
            ;;
        5)
            batch_operation "restart" "重启"
            ;;
        10)
            check_status
            ;;
        0)
            echo "退出程序"
            exit 0
            ;;
        *)
            echo "输入错误,请输入0-10之间的数字"
            ;;
    esac
    
    echo ""
    read -p "按回车键继续..." pause
    clear
done


爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img