Automatyczne monitorowanie dostępności domeny w DNS - kompleksowy skrypt Bash
Kontroluj propagację DNS i dowiedz się natychmiast, kiedy Twoja domena jest gotowa do użycia
Kluczowe informacje
- Natychmiastowa weryfikacja DNS - sprawdź czy Twoja domena została już rozpoznana i jest dostępna w systemie DNS
- Wielokrotne automatyczne sprawdzanie - skrypt monitoruje dostępność domeny w określonych odstępach czasu
- Elastyczna konfiguracja - łatwe dostosowanie parametrów sprawdzania do własnych potrzeb
Kompletny skrypt do monitorowania DNS
Poniższy skrypt w Bash pozwala na monitorowanie dostępności domeny w systemie DNS. Automatycznie wykrywa, kiedy wpisy DNS dla Twojej domeny zostały już propagowane i domena jest dostępna.
#!/bin/bash
# ======================================================
# Skrypt monitorujący dostępność domeny w DNS
# ======================================================
# Sprawdzenie, czy podano argument
if [ $# -ne 1 ]; then
echo "Użycie: $0 <nazwa_domeny>"
echo "Przykład: $0 example.com"
exit 1
fi
# Konfiguracja
DOMENA=$1
TYP_REKORDU="A"
ODSTEP_CZASU=60 # Interwał sprawdzania w sekundach
MAKS_PROB=10 # Maksymalna liczba prób
# Funkcja sprawdzająca DNS przy użyciu dig
sprawdz_dig() {
local wynik=$(dig +short "$DOMENA" "$TYP_REKORDU")
if [ -n "$wynik" ]; then
echo "✓ Znaleziono rekord $TYP_REKORDU dla domeny $DOMENA: $wynik"
return 0
else
echo "✗ Brak rekordu $TYP_REKORDU dla domeny $DOMENA"
return 1
fi
}
# Funkcja sprawdzająca DNS przy użyciu nslookup
sprawdz_nslookup() {
local wynik=$(nslookup "$DOMENA" | grep "Address:" | tail -n1 | awk '{print $2}')
if [ -n "$wynik" ]; then
echo "✓ nslookup potwierdza dostępność domeny $DOMENA: $wynik"
return 0
else
echo "✗ nslookup nie może zidentyfikować domeny $DOMENA"
return 1
fi
}
# Główna pętla sprawdzania
echo "🔍 Rozpoczynam sprawdzanie dostępności DNS dla domeny: $DOMENA"
echo "⏱️ Będę sprawdzać co $ODSTEP_CZASU sekund, maksymalnie $MAKS_PROB razy"
echo "====================================================================="
liczba_prob=0
while [ $liczba_prob -lt $MAKS_PROB ]; do
liczba_prob=$((liczba_prob + 1))
echo -e "\n📡 Próba $liczba_prob z $MAKS_PROB:"
# Sprawdzanie za pomocą dig
if sprawdz_dig; then
# Dodatkowe sprawdzenie za pomocą nslookup dla pewności
if sprawdz_nslookup; then
echo -e "\n🎉 SUKCES! Domena $DOMENA jest dostępna w DNS."
echo "⏰ Czas oczekiwania: $((liczba_prob * ODSTEP_CZASU / 60)) min $((liczba_prob * ODSTEP_CZASU % 60)) sek"
exit 0
fi
fi
# Jeśli to nie ostatnia próba, czekaj
if [ $liczba_prob -lt $MAKS_PROB ]; then
echo -e "⏳ Domena jeszcze nie jest dostępna. Czekam $ODSTEP_CZASU sekund..."
sleep $ODSTEP_CZASU
fi
done
echo -e "\n❌ Brak sukcesu po $MAKS_PROB próbach."
echo "🔧 Sprawdź poprawność nazwy domeny lub skontaktuj się z dostawcą usług DNS."
exit 1
Jak używać skryptu
Aby skorzystać z powyższego skryptu, wykonaj następujące kroki:
- Zapisz kod w pliku, np.
sprawdz_dns.sh - Nadaj plikowi uprawnienia do wykonania:
chmod +x sprawdz_dns.sh - Uruchom skrypt, podając nazwę domeny jako argument:
./sprawdz_dns.sh twojadomena.pl
Skrypt będzie sprawdzał dostępność domeny co 60 sekund (domyślnie) i zakończy działanie, gdy domena będzie dostępna w DNS lub gdy osiągnie maksymalną liczbę prób.
Jak działa sprawdzanie DNS
Poniższy diagram pokazuje, jak działa proces propagacji DNS i jak nasz skrypt sprawdza dostępność domeny:
Diagram przedstawia główne metody sprawdzania DNS, proces propagacji i opcje monitorowania, które uwzględnia nasz skrypt.
Porównanie narzędzi do sprawdzania DNS
Istnieje kilka różnych narzędzi, których możemy użyć do sprawdzania dostępności domeny w DNS. Każde z tych narzędzi ma swoje zalety i wady:
| Narzędzie | Zalety | Wady | Przykład użycia |
|---|---|---|---|
| dig | Szczegółowe informacje, wiele typów rekordów, elastyczne opcje | Może nie być zainstalowane domyślnie na wszystkich systemach | dig example.com A +short |
| nslookup | Powszechnie dostępne, proste w użyciu | Mniej opcji niż dig, mniej szczegółowe wyniki | nslookup example.com |
| host | Bardzo proste, czytelne wyniki | Ograniczone opcje | host example.com |
| ping | Sprawdza nie tylko DNS, ale także dostępność serwera | Nie pokaże szczegółów rekordów DNS, niektóre serwery blokują ping | ping -c 1 example.com |
W naszym skrypcie używamy głównie dig ze względu na jego wszechstronność i możliwość sprawdzania różnych typów rekordów DNS, z dodatkowym potwierdzeniem przez nslookup.
Wizualizacja skuteczności różnych metod sprawdzania DNS
Poniższy wykres radarowy pokazuje porównanie skuteczności różnych metod sprawdzania DNS pod względem różnych kryteriów:
Obserwacja procesu propagacji DNS
Nasz skrypt sprawdza dostępność domeny w systemie DNS, ale co dokładnie dzieje się podczas propagacji DNS? Poniżej przedstawiam przykładowy widok z narzędzia do sprawdzania propagacji DNS:
Przykładowy obraz stanu propagacji DNS
Przykładowa wizualizacja procesu propagacji DNS na różnych serwerach DNS na całym świecie
Przykładowy raport stanu serwera DNS z informacjami o poprawności konfiguracji i szybkości odpowiedzi
Praktyczne wykorzystanie sprawdzania DNS
Sprawdzanie dostępności DNS jest szczególnie przydatne w następujących sytuacjach:
Uruchomienie nowej witryny
Po zakupie nowej domeny i skonfigurowaniu serwera, możesz użyć skryptu do monitorowania, kiedy domena będzie dostępna i gotowa do użycia.
Zmiana dostawcy hostingu
Podczas migracji do nowego dostawcy usług hostingowych, skrypt pomoże Ci monitorować proces propagacji zmian DNS.
Dodawanie subdomen
Kiedy dodajesz nowe subdomeny (np. blog.twojadomena.pl), skrypt pozwoli Ci monitorować, kiedy będą one dostępne.
Rozwiązywanie problemów z DNS
Jeśli masz problemy z dostępnością swojej witryny, skrypt może pomóc zdiagnozować, czy problem leży po stronie konfiguracji DNS.
Wdrożenie w systemach CI/CD
Skrypt można zintegrować z systemami ciągłej integracji/wdrażania, aby automatycznie weryfikować dostępność nowych domen lub subdomen po wdrożeniu.
Weryfikacja DNS z YouTube
Poniższy film prezentuje, jak używać polecenia dig do sprawdzania rekordów DNS, co jest kluczowym elementem naszego skryptu:
W filmie pokazano, jak używać polecenia dig do pobierania informacji o rekordach DNS, co jest podstawową funkcjonalnością naszego skryptu. Warto obejrzeć, aby lepiej zrozumieć, jak działa sprawdzanie DNS za pomocą polecenia dig.
Najczęściej zadawane pytania
Referencje
- Checking whether specific website is up in the terminal - StackOverflow
- How to Check Whether a DNS Server Is Working - Baeldung
- Automating DNS Propagation Checks with dig on Linux - WP Bullet
-
Linux Command to Check Website is Up, Down or Alive - 2DayGeek
- 10 Best Sites to Check DNS Propagation - Hongkiat
- DNS Checker - DNS Check Propagation Tool
- DNS Propagation Checker - Global DNS Testing Tool
Polecane zapytania
Last updated April 3, 2025