最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Elasticsearch?自動(dòng)重啟腳本創(chuàng)建實(shí)現(xiàn)

 更新時(shí)間:2023年08月09日 11:13:37   作者:志哥  
這篇文章主要為大家介紹了Elasticsearch?自動(dòng)重啟腳本創(chuàng)建實(shí)現(xiàn)詳解分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

產(chǎn)品需求

應(yīng)產(chǎn)品要求,讓寫個(gè)es的自動(dòng)重啟的腳本,如果es掛了,要在分分鐘之內(nèi)重啟,當(dāng)時(shí)我的內(nèi)心是崩潰的,像我這種Linux只會(huì)cd、 ls 的哪會(huì)寫什么腳本啊,無奈,只能去谷歌了,邊看邊改,沒想到還真給寫出來了,貌似還不難,是不是有什么漏洞我就母雞了。

es自動(dòng)重啟,首先要知道es是怎么啟的,下載,配置,啟動(dòng),這里就略過了。直接看腳本吧。

創(chuàng)建腳本

首先創(chuàng)建個(gè)sh文件,es_monitor.sh,內(nèi)容很簡單,判斷es進(jìn)程是否存在,存在就算了,不存在就重啟。

#!/bin/bash
cd `dirname $0`
BIN_DIR=`pwd`
# jdk路徑,這里有個(gè)坑,下文會(huì)講
export JAVA_HOME=/home/pangu/soft/jdk1.8.0_111
# 獲取es進(jìn)程ID,我的es目錄是/home/pangu/app/elastic/elasticsearch-master
ES_ID=`ps -ef |grep elasticsearch |grep -w 'elasticsearch-master'|grep -v 'grep'|awk '{print $2}'`
#啟動(dòng)腳本目錄
StartES=/home/pangu/app/elastic/elasticsearch-master/bin/elasticsearch
# 日志輸出
ESMonitorLog=$BIN_DIR/es-master-monitor.log
Monitor()
{
  if [[ $ES_ID ]];then # 這里判斷ES進(jìn)程是否存在
    echo "[info]當(dāng)前ES進(jìn)程ID為:$ES_ID"
  else
    echo "[error]ES進(jìn)程不存在!ES開始自動(dòng)重啟..."
    sh $StartES -d
  fi
}
Monitor>>$ESMonitorLog

crontab 定時(shí)任務(wù)

crond 是 Linux 下用來周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程。

當(dāng)前用戶(pangu)下crontab -e,把下面這個(gè)放進(jìn)去,保存,路徑是自己腳本的路徑,一分鐘檢測一次。ps: es默認(rèn)不能用root啟動(dòng),這里所說用戶都是pangu。

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

遇到的問題

過程中遇到了一個(gè)問題,./bin/elasticsearch -d直接啟動(dòng)es是可以的 ,直接運(yùn)行es_monitor.sh 也是可以的,如果es進(jìn)程被殺死,是會(huì)啟動(dòng)的,但是用crontab怎么都不行,一直報(bào) 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大神旭哥了,旭哥看到后,表示很無語,罵了一句傻逼,說這都是最基礎(chǔ)的東西。原來我配置在 pangu 用戶下的.bash_profile Java環(huán)境變量在 cron 下是不生效的,去網(wǎng)上查了一下,發(fā)現(xiàn)好多人都被這個(gè)環(huán)境變量的問題坑過,crontab會(huì)以用戶的身份執(zhí)行配置的命令,但是不會(huì)加載用戶的環(huán)境變量。這個(gè)可以用交互、非交互shell來解釋,.bash_profile是交互的,以login的方式進(jìn)入bash運(yùn)行的。

什么是交互式模式呢?就是shell等待你的輸入,并且立即執(zhí)行你提交的命令。這種模式被稱作交互式是因?yàn)閟hell與用戶進(jìn)行交互。這種模式也是大多數(shù)用戶非常熟悉的:登錄、執(zhí)行一些命令、簽退。當(dāng)你簽退后,shell也終止了。而非交互式模式,是以shell script(非交互)方式執(zhí)行的,在這種模式下,shell不與你進(jìn)行交互,而是讀取存放在文件中的命令,并且執(zhí)行它們,當(dāng)它讀到文件的結(jié)尾,shell也就終止了??梢娢覀兊腸rontab是非交互的模式。這樣就懂了吧,看來要好好學(xué)學(xué)Linux了,噗噗噗。

以上就是Elasticsearch 自動(dòng)重啟腳本實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Elasticsearch 重啟腳本的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring中的REST分頁的實(shí)現(xiàn)代碼

    Spring中的REST分頁的實(shí)現(xiàn)代碼

    本文將介紹在REST API中實(shí)現(xiàn)分頁的基礎(chǔ)知識(shí)。我們將專注于使用Spring Boot和Spring Data 在Spring MVC中構(gòu)建REST分頁,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • javax.validation.constraints如何校驗(yàn)參數(shù)合法性

    javax.validation.constraints如何校驗(yàn)參數(shù)合法性

    本文將深入探討javax.validation.constraints的基本用法和高級(jí)應(yīng)用,幫助讀者更好地理解和運(yùn)用這個(gè)強(qiáng)大的校驗(yàn)框架,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBoot中使用websocket出現(xiàn)404的解決方法

    SpringBoot中使用websocket出現(xiàn)404的解決方法

    在Springboot中使用websocket時(shí),本地開發(fā)環(huán)境可以正常運(yùn)行,但部署到服務(wù)器環(huán)境出現(xiàn)404問題,所以本文小編講給大家詳細(xì)介紹一下SpringBoot中使用websocket出現(xiàn)404的解決方法,需要的朋友可以參考下
    2023-09-09
  • Java利用for循環(huán)輸出空心三角形、空心菱形和空心矩形的代碼

    Java利用for循環(huán)輸出空心三角形、空心菱形和空心矩形的代碼

    今天小編就為大家分享一篇關(guān)于Java利用for循環(huán)輸出空心三角形、空心菱形和空心矩形的代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • JAVA下單接口優(yōu)化實(shí)戰(zhàn)TPS性能提高10倍

    JAVA下單接口優(yōu)化實(shí)戰(zhàn)TPS性能提高10倍

    今天小編就為大家分享一篇關(guān)于JAVA下單接口優(yōu)化實(shí)戰(zhàn)TPS性能提高10倍,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • java.net.SocketException:?Connection?reset異常的幾種原因分析和解決方法

    java.net.SocketException:?Connection?reset異常的幾種原因分析和解決方法

    這篇文章主要介紹了java.net.SocketException:?Connection?reset異常的幾種原因分析和解決方法,這個(gè)錯(cuò)誤通常是由于連接被遠(yuǎn)程主機(jī)關(guān)閉導(dǎo)致的,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-09-09
  • 深入了解Java ServletContext

    深入了解Java ServletContext

    這篇文章主要介紹了Java ServletContext的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • java正則表達(dá)式使用示例

    java正則表達(dá)式使用示例

    這篇文章主要介紹了java正則表達(dá)式使用示例,實(shí)現(xiàn)拆分字符串、替換字符串、判斷字符串是否與制定模式匹配等功能,需要的朋友可以參考下
    2014-03-03
  • SpringBoot集成Redis之配置、序列化與持久化方式

    SpringBoot集成Redis之配置、序列化與持久化方式

    本文介紹了Redis的基本概念、常用數(shù)據(jù)類型及操作、SpringBoot整合Redis的方法、高級(jí)特性與安全性、性能優(yōu)化、測試與部署、數(shù)據(jù)一致性及版本更新等內(nèi)容,通過本文的學(xué)習(xí),讀者可以掌握Redis的使用方法,并在實(shí)際項(xiàng)目中發(fā)揮其優(yōu)勢
    2024-11-11
  • Java之Spring整合Junit

    Java之Spring整合Junit

    Java Spring框架是一個(gè)輕量級(jí)的開源框架,具有很高的凝聚力和吸引力,本篇文章帶你了解如何配置數(shù)據(jù)源、注解開發(fā)以及整合Junit
    2023-04-04

最新評(píng)論

海门市| 宜昌市| 福贡县| 长春市| 耒阳市| 滕州市| 方正县| 如皋市| 怀安县| 乌兰浩特市| 郎溪县| 磴口县| 石河子市| 固阳县| 清原| 吉安县| 容城县| 贡觉县| 光山县| 大城县| 顺平县| 任丘市| 礼泉县| 洛扎县| 乌拉特中旗| 伊吾县| 蛟河市| 遂宁市| 任丘市| 囊谦县| 宁陕县| 枣阳市| 芒康县| 大宁县| 龙州县| 昭苏县| 安仁县| 阳信县| 灌云县| 石城县| 沅陵县|