Bash ile Timeout Olan URL'leri Algılama Scripti

0 Respuestas 2 Visitas
·
Participantes
Autor del tema #0
Birçok durumda, çeşitli URL’lerin erişilebilirliğini kontrol etmek ve zaman aşımı nedeniyle başarısız olanları tespit etmek gerekebilir. Bash kullanarak bu işlemi otomatik hale getirmek, özellikle büyük liste halinde URL kontrolü yaparken oldukça faydalı olur. İşte bu amaçla kullanılabilecek temel bir script örneği ve detaylı açıklamaları.

İlk olarak, curl komutunun --max-time seçeneği, belirli bir süre içerisinde yanıt alınamazsa işlemi durdurur. Bu sayede, yanıt vermeyen veya çok yavaş olan URL’leri kolayca tespit edebilirsiniz. Ayrıca, curl’un --fail parametresi, HTTP hatası veya zaman aşımı durumunda çıkış kodu ile başarısız olduğunu gösterir.

Örneğin, aşağıdaki script, bir liste dosyasındaki URL’leri tek tek kontrol eder ve zaman aşımına uğrayanlar ile başarısız olanları ayırt eder:

CODE
1234567891011121314151617181920212223242526272829303132
#!/bin/bash

[b]URL listesinin bulunduğu dosya[/b]
URL_LISTE="url_listesi.txt"

[b]Zaman aşımı süresi (saniye)[/b]
ZAMAN_AŞIMI=5

[b]Hata ve zaman aşımı olan URL'leri kaydetmek için[/b]
ZAMAN_ASIMI_URL="timeout_url.txt"
BAŞARILI_URL="successful_url.txt"

[b]Boş dosya temizleme[/b]
[quote]
"$ZAMAN_ASIMI_URL"
"$BAŞARILI_URL"
[/quote]

while IFS= read -r url; do
    # curl ile URL'yi kontrol et
    curl --max-time "$ZAMAN_AŞIMI" --fail --silent "$url" > /dev/null
    if [ $? -ne 0 ]; then
        echo "$url" >> "$ZAMAN_ASIMI_URL"
    else
        echo "$url" >> "$BAŞARILI_URL"
    fi
done < "$URL_LISTE"

echo "Kontrol tamamlandı."
echo "Zaman aşımına uğrayanlar: $ZAMAN_ASIMI_URL"
echo "Başarılı olanlar: $BAŞARILI_URL"


Bu script şu şekilde çalışır:
  • url_listesi.txt dosyasını satır satır okur.
  • Her URL için curl komutu kullanılır; --max-time ile belirlenen sürede cevap alınamazsa veya HTTP hatası olursa, çıkış kodu 1 olur.
  • Zaman aşımı veya başarısızlık durumunda URL, timeout_url.txt dosyasına eklenir.
  • Başarılı olanlar ise successful_url.txt dosyasına kaydedilir.


Bu temel yapı, büyük ölçekli URL kontrolü ve raporlama işlemlerini otomatikleştirir. Ayrıca, curl yerine wget veya farklı araçlar kullanmak da mümkün; fakat curl esnekliği ve yaygın kullanımı nedeniyle tercih edilir.

İşte bu scripti ihtiyaçlarınıza göre özelleştirerek, daha gelişmiş raporlama veya paralel kontrol gibi ek özellikler ekleyebilirsiniz. Sizin kullanma alanınızda herhangi bir özel durum veya karşılaştığınız sorun olursa, detaylarıyla paylaşmanız halinde daha iyi çözümler sunabilirim.

Debes haber iniciado sesión para responder.

0 citas seleccionadas