Elasticsearch 自动重启脚本,同样适用于其他应用

应产品要求,让写个 es 的自动重启的脚本,如果 es 挂了,要在分分钟之内重启,当时我的内心是崩溃的,像我这种 Linux 只会cdls 的哪会写什么脚本啊,无奈,只能去谷歌了,边看边改,没想到还真给写出来了,貌似还不难,是不是有什么漏洞我就母鸡了。

es 自动重启,首先要知道 es 是怎么启的,下载,配置,启动,这里就略过了。直接看脚本吧。

创建脚本

首先创建个 sh 文件,es_monitor.sh,内容很简单,判断 es 进程是否存在,存在就算了,不存在就重启。

#!/bin/bash
cd `dirname $0`
BIN_DIR=`pwd`
# jdk 路径,这里有个坑,下文会讲
export JAVA_HOME=/home/pangu/soft/jdk1.8.0_111
# 获取 es 进程 ID,我的 es 目录是/home/pangu/app/elastic/elasticsearch-master
ES_ID=`ps -ef |grep elasticsearch |grep -w 'elasticsearch-master'|grep -v 'grep'|awk '{print $2}'`
#启动脚本目录
StartES=/home/pangu/app/elastic/elasticsearch-master/bin/elasticsearch
# 日志输出
ESMonitorLog=$BIN_DIR/es-master-monitor.log

Monitor()
{
  if [[ $ES_ID ]];then # 这里判断 ES 进程是否存在
    echo "[info]当前 ES 进程 ID 为:$ES_ID"
  else
    echo "[error] ES 进程不存在! ES 开始自动重启..."
    sh $StartES -d
  fi
}

Monitor>>$ESMonitorLog

crontab 定时任务

crond 是 Linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。

当前用户(pangu)下crontab -e,把下面这个放进去,保存,路径是自己脚本的路径,一分钟检测一次。ps: es默认不能用 root 启动,这里所说用户都是 pangu。

*/1 * * * * /bin/sh /home/pangu/app/elastic/es-monitor/es_monitor.sh

遇到的问题:

过程中遇到了一个问题,./bin/elasticsearch -d直接启动 es 是可以的 ,直接运行es_monitor.sh 也是可以的,如果 es 进程被杀死,是会启动的,但是用 crontab 怎么都不行,一直报 JAVA_HOME 找不到的问题。

Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME

而 pangu 用户的.bash_profile里面是配的有 Java 环境变量的啊,想不通就去求助 Linux 大神旭哥了,旭哥看到后,表示很无语,骂了一句傻逼,说这都是最基础的东西。原来我配置在 pangu 用户下的.bash_profile Java环境变量在 cron 下是不生效的,去网上查了一下,发现好多人都被这个环境变量的问题坑过,crontab 会以用户的身份执行配置的命令,但是不会加载用户的环境变量。这个可以用交互、非交互 shell 来解释,.bash_profile是交互的,以 login 的方式进入 bash 运行的。什么是交互式模式呢?就是 shell 等待你的输入,并且立即执行你提交的命令。这种模式被称作交互式是因为 shell 与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell 也终止了。而非交互式模式,是以 shell script (非交互)方式执行的,在这种模式下,shell 不与你进行交互,而是读取存放在文件中的命令,并且执行它们,当它读到文件的结尾,shell 也就终止了。可见我们的 crontab 是非交互的模式。这样就懂了吧,看来要好好学学 Linux 了,噗噗噗。

微信公众号:志哥 (ID: zhige-me)
期待与你相遇,一同成长前行!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,013评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,205评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,370评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,168评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,153评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,954评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,271评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,916评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,382评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,877评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,989评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,624评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,209评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,199评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,418评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,401评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,700评论 2 345

推荐阅读更多精彩内容