摘要:自動重啟,首先要知道是怎么啟的,下載,配置,啟動,這里就略過了。當前用戶下把下面這個放進去,保存,路徑是自己腳本的路徑,一分鐘檢測一次。默認不能用啟動,這里所說用戶都是。這種模式被稱作交互式是因為與用戶進行交互。當你簽退后,也終止了。
應產品要求,讓寫個es的自動重啟的腳本,如果es掛了,要在分分鐘之內重啟,當時我的內心是崩潰的,像我這種Linux只會cd、 ls 的哪會寫什么腳本啊,無奈,只能去谷歌了,邊看邊改,沒想到還真給寫出來了,貌似還不難,是不是有什么漏洞我就母雞了。
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了,噗噗噗。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67457.html
閱讀 3118·2021-11-23 09:51
閱讀 1982·2021-09-09 09:32
閱讀 1092·2019-08-30 15:53
閱讀 2964·2019-08-30 11:19
閱讀 2473·2019-08-29 14:15
閱讀 1441·2019-08-29 13:52
閱讀 559·2019-08-29 12:46
閱讀 2826·2019-08-26 12:18
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要