Minio启动停止脚本

启动脚本

#!/bin/bash

# 设置MinIO根路径(只需修改这里即可适应不同环境)
MINIO_ROOT="/home/minio"

# MinIO 配置(基于根路径自动生成其他路径)
MINIO_BIN="$MINIO_ROOT/minio"
MINIO_DATA_DIR="$MINIO_ROOT/data"
MINIO_LOG_DIR="$MINIO_ROOT/log"
MINIO_LOG_FILE="$MINIO_LOG_DIR/minio.log"
MINIO_ADDRESS=":9000"
MINIO_CONSOLE_ADDRESS=":9001"
MINIO_ROOT_USER="admin"
MINIO_ROOT_PASSWORD="123456"

# 检查 minio 组是否存在,不存在则创建
if ! getent group minio >/dev/null; then
    echo "[INFO] minio 组不存在,正在创建..."
    sudo groupadd minio
fi

# 检查 minio 用户是否存在,不存在则创建,并加入 minio 组
if ! id minio >/dev/null 2>&1; then
    echo "[INFO] minio 用户不存在,正在创建..."
    sudo useradd -r -g minio -s /sbin/nologin minio
fi

# 检查并创建必要的目录
for dir in "$MINIO_DATA_DIR" "$MINIO_LOG_DIR"; do
    if [ ! -d "$dir" ]; then
        echo "[INFO] 目录 $dir 不存在,正在创建..."
        mkdir -p "$dir"
    fi
    # 不再输出已存在目录日志
    # 不再单独 chown 子目录
    # sudo chown -R minio:minio "$dir"
done

# 仅在需要赋权时输出日志
if [ "$(stat -c '%U:%G' "$MINIO_ROOT")" != "minio:minio" ]; then
    echo "[INFO] 正在递归赋予 $MINIO_ROOT 及其所有内容归属权给 minio:minio..."
    sudo chown -R minio:minio "$MINIO_ROOT"
    echo "[INFO] 赋权完成"
fi

# 检查 MinIO 二进制是否存在
if [ ! -f "$MINIO_BIN" ]; then
    echo "[ERROR] MinIO 二进制文件不存在 ($MINIO_BIN)"
    exit 1
fi

# 仅在需要设置可执行权限时输出日志
if [ ! -x "$MINIO_BIN" ]; then
    chmod +x "$MINIO_BIN"
    echo "[INFO] 已设置 $MINIO_BIN 可执行权限"
fi

# 检查并放行 MinIO 所需端口(9000 和 9001),适配 UFW
if ! sudo ufw status | grep -qw inactive; then
    for port in 9000 9001; do
        if ! sudo ufw status | grep -qw "$port"; then
            echo "[INFO] 端口 $port 未放行,正在放行..."
            sudo ufw allow $port
        fi
    done
fi

# 以 minio 用户身份启动 MinIO(使用 nohup 防止终端关闭后退出)
echo "[INFO] 正在以 minio 用户身份启动 MinIO..."
sudo -u minio nohup env \
    MINIO_ROOT_USER="$MINIO_ROOT_USER" \
    MINIO_ROOT_PASSWORD="$MINIO_ROOT_PASSWORD" \
    "$MINIO_BIN" server "$MINIO_DATA_DIR" \
    --address "$MINIO_ADDRESS" \
    --console-address "$MINIO_CONSOLE_ADDRESS" \
    > "$MINIO_LOG_FILE" 2>&1 &
echo "[INFO] MinIO 启动命令已执行,日志输出到 $MINIO_LOG_FILE"

# 检查是否启动成功
sleep 2  # 等待进程启动
# 获取本机IP地址(首个非回环IPv4)
LOCAL_IP=$(hostname -I | awk '{print $1}')
if pgrep -f "minio server" > /dev/null; then
    echo "✅ MinIO 已启动:"
    echo "   - 访问地址: http://$LOCAL_IP:9000"
    echo "   - 控制台地址: http://$LOCAL_IP:9001"
    echo "   - 数据目录: $MINIO_DATA_DIR"
    echo "   - 日志文件: $MINIO_LOG_FILE"
else
    echo "❌ MinIO 启动失败,请检查日志: $MINIO_LOG_FILE"
    exit 1
fi

停止脚本

#!/bin/bash

echo "[INFO] 正在查找 minio 用户下的 MinIO 进程..."

# 查找 minio 用户下的 minio server 进程
MINIO_PIDS=$(pgrep -u minio -f "minio server")

if [ -z "$MINIO_PIDS" ]; then
    echo "[INFO] 未找到正在运行的 MinIO 进程。"
    exit 0
fi

echo "[INFO] 找到以下 MinIO 进程: $MINIO_PIDS"
echo "[INFO] 正在尝试停止..."

# 发送 SIGTERM
sudo kill $MINIO_PIDS

sleep 2

# 检查是否已停止
if pgrep -u minio -f "minio server" > /dev/null; then
    echo "[WARN] MinIO 进程未能正常停止,尝试强制杀死..."
    sudo kill -9 $MINIO_PIDS
else
    echo "[INFO] MinIO 已成功停止。"
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EchoReminis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值