Elasticsearch 自動重啟腳本节预,同樣適用于其他應用

應產(chǎn)品要求棚饵,讓寫個 es 的自動重啟的腳本,如果 es 掛了亮钦,要在分分鐘之內重啟馆截,當時我的內心是崩潰的,像我這種 Linux 只會cdls 的哪會寫什么腳本啊蜡娶,無奈混卵,只能去谷歌了,邊看邊改窖张,沒想到還真給寫出來了幕随,貌似還不難,是不是有什么漏洞我就母雞了宿接。

es 自動重啟赘淮,首先要知道 es 是怎么啟的,下載睦霎,配置梢卸,啟動,這里就略過了副女。直接看腳本吧蛤高。

創(chuàng)建腳本

首先創(chuàng)建個 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 下用來周期性的執(zhí)行某種任務或等待處理某些事件的一個守護進程涧黄。

當前用戶(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 環(huán)境變量的啊,想不通就去求助 Linux 大神旭哥了,旭哥看到后扁位,表示很無語准潭,罵了一句傻逼,說這都是最基礎的東西域仇。原來我配置在 pangu 用戶下的.bash_profile Java環(huán)境變量在 cron 下是不生效的刑然,去網(wǎng)上查了一下,發(fā)現(xiàn)好多人都被這個環(huán)境變量的問題坑過殉簸,crontab 會以用戶的身份執(zhí)行配置的命令闰集,但是不會加載用戶的環(huán)境變量。這個可以用交互般卑、非交互 shell 來解釋武鲁,.bash_profile是交互的,以 login 的方式進入 bash 運行的蝠检。什么是交互式模式呢沐鼠?就是 shell 等待你的輸入,并且立即執(zhí)行你提交的命令叹谁。這種模式被稱作交互式是因為 shell 與用戶進行交互饲梭。這種模式也是大多數(shù)用戶非常熟悉的:登錄、執(zhí)行一些命令焰檩、簽退憔涉。當你簽退后,shell 也終止了析苫。而非交互式模式兜叨,是以 shell script (非交互)方式執(zhí)行的,在這種模式下衩侥,shell 不與你進行交互国旷,而是讀取存放在文件中的命令,并且執(zhí)行它們茫死,當它讀到文件的結尾跪但,shell 也就終止了÷臀可見我們的 crontab 是非交互的模式屡久。這樣就懂了吧,看來要好好學學 Linux 了爱榔,噗噗噗涂身。

微信公眾號:志哥 (ID: zhige-me)
期待與你相遇,一同成長前行搓蚪!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末蛤售,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌悴能,老刑警劉巖揣钦,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異漠酿,居然都是意外死亡冯凹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門炒嘲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宇姚,“玉大人,你說我怎么就攤上這事夫凸』肜停” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵夭拌,是天一觀的道長魔熏。 經(jīng)常有香客問我,道長鸽扁,這世上最難降的妖魔是什么蒜绽? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮桶现,結果婚禮上躲雅,老公的妹妹穿的比我還像新娘。我一直安慰自己骡和,他們只是感情好相赁,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著即横,像睡著了一般。 火紅的嫁衣襯著肌膚如雪裆赵。 梳的紋絲不亂的頭發(fā)上东囚,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機與錄音战授,去河邊找鬼页藻。 笑死,一個胖子當著我的面吹牛植兰,可吹牛的內容都是我干的份帐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼楣导,長吁一口氣:“原來是場噩夢啊……” “哼废境!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤噩凹,失蹤者是張志新(化名)和其女友劉穎巴元,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體驮宴,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡逮刨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了堵泽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片修己。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖迎罗,靈堂內的尸體忽然破棺而出睬愤,到底是詐尸還是另有隱情,我是刑警寧澤佳谦,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布戴涝,位于F島的核電站,受9級特大地震影響钻蔑,放射性物質發(fā)生泄漏啥刻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一咪笑、第九天 我趴在偏房一處隱蔽的房頂上張望可帽。 院中可真熱鬧,春花似錦窗怒、人聲如沸映跟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽努隙。三九已至,卻和暖如春辜昵,著一層夾襖步出監(jiān)牢的瞬間荸镊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工堪置, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留躬存,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓舀锨,卻偏偏與公主長得像岭洲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子坎匿,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內容