文件結構
install_emqx.sh
#!/bin/bash
# Filename: install_emqx.sh
# Description: EMQX離線一鍵部署腳本 (針對特殊目錄結構)# 檢查root權限
if [[ $EUID -ne 0 ]]; thenecho "請使用root權限運行此腳本!" exit 1
fi# 定義依賴包和安裝路徑
DEP_RPM="./libaio-0.3.111-22.el10.x86_64.rpm"
EMQX_TAR="./emqx-5.1.4-el7-amd64.tar.gz"
INSTALL_DIR=$(pwd)# 檢查文件是否存在
if [[ ! -f $DEP_RPM ]]; thenecho "錯誤:依賴包 $DEP_RPM 不存在!"exit 1
fiif [[ ! -f $EMQX_TAR ]]; thenecho "錯誤:EMQX安裝包 $EMQX_TAR 不存在!"exit 1
fi# 安裝依賴
echo "正在安裝依賴庫..."
yum localinstall -y $DEP_RPM# 解壓EMQX
echo "正在解壓EMQX到當前目錄..."
tar -zxvf $EMQX_TAR# 創建emqx目錄并移動所有解壓內容
echo "整理EMQX目錄結構..."
mkdir -p emqx
for dir in bin data dynlibs etc erts-* lib log plugins releases; doif [ -d "$dir" ] || [ -e "$dir" ]; thenmv "$dir" emqx/ 2>/dev/nullfi
done# 移動剩余文件
find . -maxdepth 1 -type f -exec mv {} emqx/ \; 2>/dev/null
find . -maxdepth 1 -type d -not -name "emqx" -exec mv {} emqx/ \; 2>/dev/nullEMQX_HOME="${INSTALL_DIR}/emqx"# 驗證安裝
if [[ ! -d "$EMQX_HOME" ]]; thenecho "錯誤:無法創建EMQX目錄!"exit 1
fi# 創建命令軟鏈接
echo "創建命令軟鏈接..."
ln -sf ${EMQX_HOME}/bin/emqx /usr/local/bin/emqx
ln -sf ${EMQX_HOME}/bin/emqx_ctl /usr/local/bin/emqx_ctl# 創建systemd服務
echo "創建systemd服務..."
cat > /etc/systemd/system/emqx.service <<EOF
[Unit]
Description=EMQX Broker
After=network.target[Service]
Type=forking
Environment=EMQX_ROOT_DIR=${EMQX_HOME}
ExecStart=${EMQX_HOME}/bin/emqx start
ExecStop=${EMQX_HOME}/bin/emqx stop
ExecReload=${EMQX_HOME}/bin/emqx restart
Restart=on-failure
RestartSec=30s
User=root
Group=root[Install]
WantedBy=multi-user.target
EOF# 重載systemd
systemctl daemon-reload# 啟動服務并設置開機自啟
systemctl enable emqx
systemctl start emqx# 驗證安裝
echo "等待5秒后檢查EMQX狀態..."
sleep 5
if ${EMQX_HOME}/bin/emqx_ctl status >/dev/null 2>&1; thenecho -e "\nEMQX 5.1.4 安裝成功!"echo -e "安裝目錄: ${EMQX_HOME}"echo -e "管理命令: systemctl [start|stop|status] emqx"echo -e "控制臺訪問: http://<服務器IP>:18083"echo -e "默認用戶名: admin"echo -e "默認密碼: public"
elseecho -e "\n警告:EMQX服務啟動異常,請檢查以下內容:"echo -e "1. 檢查配置文件: ${EMQX_HOME}/etc/emqx.conf"echo -e "2. 查看日志文件: tail -f ${EMQX_HOME}/log/*"echo -e "3. 手動調試命令: ${EMQX_HOME}/bin/emqx console"
fi
相對應的腳本、軟件和依賴
emqx-5.1.4-el7-amd64.tar.gz
libaio-0.3.111-22.el10.x86_64.rpm
鏈接:CentOs離線部署EMOX腳本資源-CSDN庫