ES自启动脚本
背景
产品的ES服务近期自动挂掉,影响业务访问。故对这种服务自动崩溃的情况,使用自启动脚本监控。
脚本
1.在服务器上的某一个目录编写脚本,一般情况下ES启动都是在普通用户,故以下命令均在ES的启动用户下执行。
- cd /home/SHELL/
- touch ES_restart.sh
- chmod 755 *
- vim ES_restart.sh
#!/bin/bash
#2020年10月28日
#auto ES restart
#by author sytu
###########################################################
proc_name="Elasticsearch" #进程名
TIME=`date +%Y-%m-%d_%H` #定义时间
ES_DIR="/tpdata/iflytek/elasticsearch-1.7.5/bin/" #ES的启动目录
#定义es的java变量,这里如果不定义,在定时任务执行时会报错.crontab会以用户的身份执行配置的命令,但是不会加载用户的环境变量
export JAVA_HOME=/tpdata/iflytek/jdk1.7.0_67/
proc_num() #查询进程数量
{
num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
return $num
}
proc_num
number=$? #获取进程数量
#如果进程数量为0 ,重新启动服务,或者扩展其它内容。
if [ $number -eq 0 ];then
echo "进程不存在,重启服务!!!"
cd $ES_DIR
mv nohup.out nohup_$TIME.out
nohup ./elasticsearch &
else
echo "进程存在,拜佛!"
fi