Jak uruchamiać usługi lub kontenery tylko gdy host jest dostępny – systemd + ping + docker
Linux

Jak uruchamiać usługi lub kontenery tylko gdy host jest dostępny – systemd + ping + docker

🕹️ Jak uruchamiać usługi lub kontenery tylko gdy host jest dostępny – systemd + ping + docker

Czasami chcemy, aby konkretna usługa (np. kontener Docker, backup, rsync lub mount NFS) startowała dopiero wtedy, gdy zdalny host (np. serwer, NAS, baza danych) odpowiada. W Linuksie możemy to osiągnąć przy pomocy systemd i prostego skryptu z ping.

Ten mechanizm:

  • zapobiega błędom uruchomienia zależnych usług,
  • zmniejsza liczbę restartów kontenerów i logów błędów,
  • pozwala na warunkowe uruchamianie usług tylko przy dostępności sieci.

🎯 Przykład celu:

Uruchom kontener Dockera db-backup tylko, gdy host 192.168.1.10 (serwer z bazą) odpowiada na ping.

Jak uruchamiać usługi lub kontenery tylko gdy host jest dostępny – systemd + ping + docker
Jak uruchamiać usługi lub kontenery tylko gdy host jest dostępny – systemd + ping + docker

🧾 Krok 1: Skrypt sprawdzający hosta

Utwórz skrypt, który pinguje host i uruchamia usługę tylko gdy host jest dostępny:

sudo nano /usr/local/bin/hostcheck.sh

Zawartość:

#!/bin/bash

TARGET="192.168.1.10"
COUNT=3

if ping -c $COUNT -W 2 $TARGET > /dev/null; then
    docker start db-backup
else
    echo "$(date): $TARGET niedostępny, pomijam uruchomienie kontenera"
fi

Ustaw prawa:

chmod +x /usr/local/bin/hostcheck.sh

🔧 Krok 2: Usługa systemd

Utwórz jednostkę .service, która będzie oparta na tym skrypcie:

sudo nano /etc/systemd/system/db-backup-check.service

Zawartość:

[Unit]
Description=Sprawdzenie hosta i uruchomienie kontenera db-backup
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/hostcheck.sh

[Install]
WantedBy=multi-user.target

🔁 Krok 3: Automatyczne uruchamianie po starcie systemu

sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable db-backup-check.service

Możesz uruchomić ręcznie:

sudo systemctl start db-backup-check

🔄 Alternatywa: automatyczne próby co X minut – systemd.timer

Stwórz plik timera:

sudo nano /etc/systemd/system/db-backup-check.timer

Zawartość:

[Unit]
Description=Co 10 minut sprawdzaj dostępność hosta

[Timer]
OnBootSec=1min
OnUnitActiveSec=10min
Unit=db-backup-check.service

[Install]
WantedBy=timers.target

Aktywuj:

sudo systemctl enable --now db-backup-check.timer

🛠️ Możliwe rozszerzenia

  • mount zasobu NFS tylko, gdy serwer jest dostępny
  • rsync danych z hosta tylko przy połączeniu
  • uruchamianie backupu do lokalizacji sieciowej
  • startowanie LXC/Docker/Podman po warunku ping
  • integracja z monit lub fail2ban
Czytaj  Monitorowanie systemu Debian: Konfiguracja narzędzi Nagios, Zabbix i Prometheus

🔒 Bezpieczeństwo

  • Używaj ping -c z ograniczoną liczbą prób
  • Ogranicz dostęp do skryptu tylko dla root/admin
  • Możesz dodać logowanie do systemd journal

✅ Podsumowanie

Taka konfiguracja:
✔️ pozwala na warunkowe uruchamianie usług,
✔️ poprawia stabilność systemu,
✔️ eliminuje błędy wynikające z braku dostępności hostów,
✔️ jest bardzo elastyczna i łatwa do rozbudowy.

 

Polecane wpisy
Ubuntu – Kompletny przewodnik po instalacji i konfiguracji sterowników
Ubuntu – Kompletny przewodnik po instalacji i konfiguracji sterowników

Ubuntu – Kompletny przewodnik po instalacji i konfiguracji sterowników Ubuntu to jeden z najpopularniejszych systemów operacyjnych opartych na Linuksie, jednak Czytaj dalej

Problemy z konfiguracją serwera WWW (Apache, Nginx): Błędy konfiguracji wirtualnych hostów, uprawnień dostępu i modułów
Problemy z konfiguracją serwera WWW (Apache, Nginx): Błędy konfiguracji wirtualnych hostów, uprawnień dostępu i modułów

Problemy z konfiguracją serwera WWW (Apache, Nginx): Błędy konfiguracji wirtualnych hostów, uprawnień dostępu i modułów 📘 Wprowadzenie Konfiguracja serwerów WWW, Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.