Sphinx 搜索引擎管理脚本使用说明

脚本概述
sphinx_manage.sh 是一个用于管理多个 Sphinx 搜索引擎实例的 Shell 脚本。该脚本可以同时管理多个 Sphinx 配置文件,支持启动、停止、重启、重建索引和查看状态等基本操作。
环境要求

Sphinx 搜索引擎已安装
基础路径:/home/sphinx
配置文件:sphinx1.conf、sphinx2.conf、sphinx3.conf

使用方法
基本命令格式

./sphinx_manage.sh <command>

可用命令
1. 启动服务

./sphinx_manage.sh start

功能:启动所有 Sphinx 实例
执行过程:依次使用每个配置文件启动对应的 searchd 进程
输出:显示每个实例的启动状态

2. 停止服务

./sphinx_manage.sh stop

功能:停止所有运行中的 Sphinx 实例
执行过程:依次停止每个配置文件对应的 searchd 进程
特点:使用 --stopwait 参数确保进程完全停止

3. 重启服务

./sphinx_manage.sh restart

功能:重启所有 Sphinx 实例
执行过程:

首先停止所有实例
等待 2 秒
重新启动所有实例

4. 重建索引

./sphinx_manage.sh reindex

功能:重建所有 Sphinx 实例的索引
执行过程:为每个配置文件执行索引重建
特点:使用 --rotate 参数实现在线重建,不影响服务

5. 查看状态

./sphinx_manage.sh status

功能:查看所有 Sphinx 实例的运行状态
输出:显示每个实例的当前状态信息

错误处理

当使用无效的命令参数时,脚本将显示使用帮助信息
退出码说明:

0:命令执行成功
1:参数错误或执行失败

注意事项

在执行脚本前,请确保有适当的执行权限
建议使用 root 用户或具有足够权限的用户执行
重建索引操作可能需要较长时间,请耐心等待
确保 SPHINX_HOME 路径正确设置

配置文件说明
脚本默认管理三个配置文件:

sphinx1.conf
sphinx2.conf
sphinx3.conf

如需添加或修改配置文件,请编辑脚本中的 CONFIGS 数组。

sphinx_manage.sh

#!/bin/bash
# sphinx_manage.sh

SPHINX_HOME="/home/sphinx"
CONFIGS=("sphinx1.conf" "sphinx2.conf" "sphinx3.conf")

case "$1" in
    start)
        for config in "${CONFIGS[@]}"
        do
            echo "Starting searchd with $config..."
            $SPHINX_HOME/bin/searchd --config $SPHINX_HOME/$config
        done
        ;;
    stop)
        for config in "${CONFIGS[@]}"
        do
            echo "Stopping searchd with $config..."
            $SPHINX_HOME/bin/searchd --config $SPHINX_HOME/$config --stopwait
        done
        ;;
    restart)
        $0 stop
        sleep 2
        $0 start
        ;;
    reindex)
        for config in "${CONFIGS[@]}"
        do
            echo "Reindexing with $config..."
            $SPHINX_HOME/bin/indexer -c $SPHINX_HOME/$config --all --rotate
        done
        ;;
    status)
        for config in "${CONFIGS[@]}"
        do
            echo "Status for $config:"
            $SPHINX_HOME/bin/searchd --config $SPHINX_HOME/$config --status
        done
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|reindex|status}"
        exit 1
esac

exit 0
点赞

发表回复