在Ubuntu系統中,MinIO是一個高性能的對象存儲服務器,適用于大數據和云計算環境。為了方便地啟動和管理MinIO服務,可以編寫一個啟動腳本。以下是一個示例腳本,展示了如何在Ubuntu系統中創建和使用MinIO的啟動腳本。
創建啟動腳本文件:
首先,創建一個新的腳本文件,例如 /etc/init.d/minio。
sudo nano /etc/init.d/minio
編寫啟動腳本: 在腳本文件中添加以下內容:
#!/bin/sh
### BEGIN INIT INFO
# Provides: minio
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: MinIO server startup script
### END INIT INFO
# MinIO configuration
MINIO_BINARY="/usr/local/bin/minio"
MINIO_ARGS="--address :9000 --console-address :9001"
MINIO_DATA="/var/lib/minio"
MINIO_LOG="/var/log/minio/minio.log"
MINIO_ACCESS_KEY="your-access-key"
MINIO_SECRET_KEY="your-secret-key"
# Create data directory if it doesn't exist
if [ ! -d "$MINIO_DATA" ]; then
sudo mkdir -p "$MINIO_DATA"
fi
# Start MinIO server
start() {
if [ ! -f "$MINIO_BINARY" ]; then
echo "MinIO binary not found at $MINIO_BINARY. Please install MinIO first."
return 1
fi
if [ -f "$MINIO_LOG" ]; then
rm "$MINIO_LOG"
fi
echo "Starting MinIO server..."
nohup $MINIO_BINARY server $MINIO_ARGS >> $MINIO_LOG 2>&1 &
echo "MinIO server started."
}
# Stop MinIO server
stop() {
echo "Stopping MinIO server..."
pkill -f "$MINIO_BINARY server $MINIO_ARGS"
echo "MinIO server stopped."
}
# Check the status of MinIO server
status() {
if pgrep -f "$MINIO_BINARY server $MINIO_ARGS" > /dev/null; then
echo "MinIO server is running."
else
echo "MinIO server is not running."
fi
}
# Handle command line arguments
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
start
;;
*)
echo "Usage: /etc/init.d/minio {start|stop|status|restart}"
exit 1
;;
esac
exit 0
設置腳本權限: 確保腳本具有可執行權限。
sudo chmod +x /etc/init.d/minio
注冊啟動腳本: 將腳本注冊為系統服務,以便在系統啟動時自動運行。
sudo update-rc.d minio defaults
啟動和管理MinIO服務: 現在可以使用以下命令來啟動、停止和檢查MinIO服務的狀態。
sudo service minio start
sudo service minio stop
sudo service minio status
請注意,上述腳本中的 MINIO_BINARY、MINIO_ARGS、MINIO_DATA、MINIO_LOG、MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY 需要根據實際情況進行配置。特別是 MINIO_ACCESS_KEY 和 MINIO_SECRET_KEY,它們是用于訪問MinIO服務器的憑證,請確保它們的安全性。