脚本概述
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