Jun 18, 2026, 10:20 AM
This commit is contained in:
@@ -5,6 +5,34 @@
|
||||
# defunije funkce pushLog() Notify() makePID() removePID()
|
||||
# autor: Ales Cernik
|
||||
#
|
||||
/**
|
||||
Skrypt init_sets.sh to uniwersalny plik pomocniczy (tzw. plik konfiguracyjny/biblioteczny), który jest wczytywany (poprzez polecenie source lub .) przez inne skrypty Bash, aby zapewnić im standaryzowane środowisko pracy. Z komentarzy wynika, że jest on zarządzany automatycznie przez system Puppet.
|
||||
|
||||
Oto co dokładnie robi i jakie funkcje udostępnia:
|
||||
|
||||
1. Inicjalizacja zmiennych i środowiska
|
||||
Ustalenie nazwy uruchomionego skryptu (myScript) w celu ujednolicenia nazewnictwa plików.
|
||||
Ustalenie katalogu logów (logDir). Skrypt szuka katalogu /opt/log, a jeśli go nie ma, próbuje /srv/log. Jeśli żaden nie istnieje – przerywa działanie z błędem.
|
||||
Ustalenie ścieżki docelowego pliku z logami (logFile), np. /opt/log/nazwa_twojego_skryptu.sh.log.
|
||||
Pobranie nazwy hosta (myHost) oraz definicja adresu serwera monitoringu Nagios/Centreon (NAGIOSHOST="centreon.bisnode.cz").
|
||||
Utworzenie ścieżki do pliku blokady/PID w /tmp/ dla danego skryptu (lock_file).
|
||||
2. Definicje przydatnych funkcji (do użycia w innych skryptach)
|
||||
Skrypt definiuje cztery główne funkcje, z których mogą korzystać skrypty nadrzędne:
|
||||
|
||||
pushLog() Zwykła funkcja logująca, która dopisuje przekazane do niej argumenty (tekst) na koniec zdefiniowanego pliku logu.
|
||||
|
||||
Notify() Służy do wysyłania pasywnych powiadomień do systemu monitoringu (Centreon/Nagios). Przyjmuje kod statusu (0=OK, 1=Warning, 2=Error) oraz wiadomość. Zapisuje wiadomość do lokalnego logu używając pushLog, a następnie wysyła alert do serwera Nagios za pomocą narzędzia send_nsca.
|
||||
|
||||
makePID() Implementuje mechanizm wyłączności (mutex), zapobiegając równoległemu uruchomieniu kilku instancji tego samego skryptu.
|
||||
|
||||
Czyta identyfikator procesu (PID) z pliku blokady.
|
||||
Sprawdza w systemowym katalogu /proc/, czy proces o takim PID nadal żyje.
|
||||
Jeśli proces działa – funkcja bezgłośnie przerywa działanie kolejnej instancji skryptu.
|
||||
Jeśli proces nie działa, zapisuje bieżący PID ($$) do pliku blokady i pozwala skryptowi kontynuować działanie. W razie błędu przy zapisie powiadamia Nagiosa i kończy z błędem.
|
||||
removePID() Funkcja sprzątająca – po prostu usuwa plik blokady (PID), aby zwolnić "kolejkę" dla kolejnych uruchomień skryptu.
|
||||
|
||||
Podsumowując: Jest to klasyczna "namiastka biblioteki" dla skryptów administracyjnych, ujednolicająca sposób ich logowania, raportowania błędów do systemu monitoringu oraz chroniąca przed zduplikowanym uruchomieniem zadań w tle (cron).
|
||||
**/
|
||||
|
||||
myScript=${0##*/}
|
||||
#myPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #"
|
||||
|
||||
Reference in New Issue
Block a user