Jun 18, 2026, 10:20 AM

This commit is contained in:
Paweł Domański
2026-06-18 08:20:40 +00:00
parent 2180641c3b
commit 7db6bbeb6f
2 changed files with 232 additions and 0 deletions
@@ -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 )" #"