Konuyu Açan
#1
Bazı web yöneticileri, sitelerinin sitemap dosyalarını düzenli olarak güncelleyip kontrol etme ihtiyacı duyar. Ancak, büyük sitelerde veya sık güncellenen içeriklerde sitemap’in bütünlüğü ve erişilebilirliği zaman zaman sorun çıkarabilir. Bu noktada, Bash kullanarak otomatik bir sağlık kontrol scripti geliştirmek, hem zaman tasarrufu sağlar hem de olası sorunları erken tespit etmenize imkan tanır.
İlk adım olarak, sitemap dosyanızın URL’sini veya yerel yolunu belirlemelisiniz. Ardından, script aşağıdaki temel kontrolleri yapabilir:
Örnek temel bash scripti şu şekilde olabilir:
Bu temel yapı, düzenli olarak çalıştırıldığında sitenizin sitemap’ini otomatik kontrol eder. Gelişmiş versiyonlarda, hataları günlükleyebilir veya e-posta ile bildirim gönderecek şekilde de geliştirebilirsiniz.
Sizce, otomatik sitemap sağlık kontrolü dışında başka hangi kontrolleri eklemek faydalı olur? Ayrıca, bu scripti kendi sitenize uyarlarken karşılaştığınız sorunlar veya ek ihtiyaçlar var mı?
İlk adım olarak, sitemap dosyanızın URL’sini veya yerel yolunu belirlemelisiniz. Ardından, script aşağıdaki temel kontrolleri yapabilir:
- Dosya erişilebilirliği: URL veya dosya yolu doğru mu? Sunucu yanıt veriyor mu?
- XML formatı doğruluğu: Dosyanın geçerli bir XML formatında olup olmadığını kontrol etmek. Bunun için
xmllint --validkomutunu kullanabilirsiniz. - Sitemap içeriği ve yapısı: Anahtar elementler (örneğin
<urlset>,<url>,<loc>) var mı? - URL doğruluğu:
<loc>tagleri içerisindeki URL’lerin erişilebilir olup olmadığını test etmek. Bunun içincurlveyawgetkullanabilirsiniz. - Güncellik ve bozuk link kontrolü: Hatalı veya 404 dönen URL’leri raporlamak.
Örnek temel bash scripti şu şekilde olabilir:
KOD
12345678910111213141516171819202122232425262728293031#!/bin/bash
[b]Sitemap URL veya yerel yol[/b]
SITEMAP_URL="https://ornek.com/sitemap.xml"
[b]Geçici dosya[/b]
TMP_FILE="/tmp/sitemap.xml"
[b]Dosya erişimi ve XML doğruluğu[/b]
curl -s -o "$TMP_FILE" "$SITEMAP_URL"
if [ $? -ne 0 ]; then
echo "Sitemap erişilemiyor veya indirme hatası."
exit 1
fi
xmllint --noout "$TMP_FILE"
if [ $? -ne 0 ]; then
echo "Geçersiz XML formatı!"
exit 1
fi
[b]URL'leri çıkarma ve kontrol[/b]
urls=$(xmllint --xpath "//url/loc/text()" "$TMP_FILE")
for url in $urls; do
status_code=$(curl -s -o /dev/null -w "%{http_code}" "$url")
if [ "$status_code" -ne 200 ]; then
echo "Hata: $url erişilebilir değil (HTTP $status_code)"
fi
done
echo "Kontrol tamamlandı."Bu temel yapı, düzenli olarak çalıştırıldığında sitenizin sitemap’ini otomatik kontrol eder. Gelişmiş versiyonlarda, hataları günlükleyebilir veya e-posta ile bildirim gönderecek şekilde de geliştirebilirsiniz.
Sizce, otomatik sitemap sağlık kontrolü dışında başka hangi kontrolleri eklemek faydalı olur? Ayrıca, bu scripti kendi sitenize uyarlarken karşılaştığınız sorunlar veya ek ihtiyaçlar var mı?
