Puncte:3

Scriptul Bash rulează de mai multe ori. Nu stiu de ce

drapel in

Am un script bash foarte simplu, care rulează ca job cron în fiecare minut. Face un jurnal pentru fișier.Totul funcționează bine, dar există un lucru ciudat. Scriptul face mai multe jurnale în același timp. Nu inteleg cum este posibil. Iată codul.

#!/bin/bash


# -c returnează numărul de linii în rezultatul grep
isActive=$(systemctl status elasticsearch | grep „activ (în rulare)” -c)

dacă (( $isActive == 0 )) 
atunci

  systemctl începe elasticsearch
  
  timestamp=$(data +"%Y-%m-%d %H-%M-%S")
  atingeți /root/custom-scripts/elasticsearch/start.log
  echo „${timestamp} Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.” >> /root/custom-scripts/elasticsearch/start.log

fi

Lucrarea cron

* * * * * bash /root/custom-scripts/elasticsearch/start-elasticsearch.sh

Fișierul jurnal arată ca

2021-07-13 16-17-45 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-17-45 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-17-45 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-17-45 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-20-15 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-20-15 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-20-15 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-23-11 Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-26-36 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-26-36 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-26-36 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-33-13 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-33-13 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-33-13 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-33-13 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-33-25 Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-34-10 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-35-10 Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-40-39 Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-40-39 Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-40-39 Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-40-39 Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-40-39 Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-41-13 Serviciul Elasticsearch trebuie repornit de către /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.
2021-07-13 16-42-07 Serviciul Elasticsearch trebuie repornit de /root/custom-scripts/elasticsearch/start-elasticsearch.sh deoarece starea serviciului nu era activă.

Există cineva care să-mi explice? Mulțumesc mult.

drapel hr
Fără legătură cu problema, dar systemctl are o acțiune „este activă” pe care o puteți testa direct de ex. `if systemctl --quiet is-active elasticsearch; apoi...`
drapel in
Mulțumesc, nu știam despre asta.
drapel hr
Singurul lucru la care mă gândesc care ar putea explica ceea ce vedeți este dacă fișierul elasticsearch.service are un „ExecStartPre” sau „ExecStartPost” care (direct sau indirect) invocă același script
drapel in
Nu inteleg. Elasticsearch nu știe despre script.
drapel in
Motivul este că nu am avut grija de Restart=on-failure și al doilea este fișierul jurnal care îmi arată cazurile de eșec.
drapel in
Uf nu a avut inima... Îmi pare rău, doamnă engleză.
drapel in
Nu știu despre systemd.timer. Aș dori să știu de ce s-a întâmplat acest lucru cu jobul cron standard. Nu sunt un expert Linux. Trebuie să mă descurc la „nivelul meu”. Care ar trebui să funcționeze.
drapel ng
Adăugați `$$` la mesajul dvs. pentru a afișa PID-ul procesului, pentru depanare
Puncte:0
drapel cn

As verifica cateva lucruri:

  1. Există două sau mai multe procese cron care rulează? Puteți verifica cu ps -ef|grep cron
  2. Există ceva în /etc/cron.d care apelează acest script? Pare puțin probabil, dar nu va strica să verifici.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.