BSDTR

Kırık linkleri bulmak - LinkChecker

Site veya blogunuz varsa kırık veya ölü dediğimiz linkler zamanla başınıza bela olabilmektedir. Bunların tespiti için bazı online sitelerde bulunmaktadır ama bunlarda da limit, zaman gibi bazı sıkıntılar vardır.

O yüzden LinkChecker gibi bir program, daha çok işinize yarayacaktır. Zira her hangi bir zaman, limit sınırı olmadığı gibi, her an elinizin altında ve localde de çalışabiliyor olması güzeldir. Windows ve Linux destekler

Tabi Debian depoda da  vardır.
$ apt-cache search linkchecker
linkchecker - check websites and HTML documents for broken links
linkchecker-gui - check websites and HTML documents for broken links (GUI client)
linkchecker-web - check websites and HTML documents for broken links (web client)


* * *
Eğer linkleriniz bir dosya da ise bunların durumlarını da LinkChecker 'e gerek kalmadan konsolla, komutlarla elle de tespit edebilirsiniz.
Tabi bundan sonrası kolaya kaçıp servise gitmek yerine, kaputun altına girip ellerini kirletenler içindir 😁

200, 301, 302, 404 gibi linklerin durunu neyse, pratik olarak alttaki komutlar verecektir.
Diyelim ki bu linkleriniz url.txt diye bir dosyaya aldınız, sayıları çok daha fazla olabilir tabi, ben yaklaşık 650 link ile çalışmıştım.

Örnek;
http://not-exist.com/abc.html
https://kernel.org/nothing.html
http://kernel.org/index.html
https://kernel.org/index.html
https://www.kernel.org/category/releases.html
https://www.kernel.org/category/signatures.html

Şimdi bul.sh diye bir de minik bir bash betiği hazırlayalım.

#!/bin/bash
while read -ru 4 LINE; do
    read -r REP < <(exec curl -IsS "$LINE" 2>&1)
    echo "$LINE: $REP"
done 4< "$1"

Konsolu açtığımız dizinde her iki dosyada olsun ve bu komutu verelim.
$ bash bul.sh url.txt

Çıkan sonuç buna benzeyecektir.
http://not-exist.com/abc.html: curl: (6) Could not resolve host: not-exist.com
https://kernel.org/nothing.html: HTTP/1.1 301 Moved Permanently
http://kernel.org/index.html: HTTP/1.1 301 Moved Permanently
https://kernel.org/index.html: HTTP/1.1 301 Moved Permanently
https://www.kernel.org/category/releases.html: HTTP/1.1 200 OK
https://www.kernel.org/category/signatures.html: HTTP/1.1 200 OK

Çıktı bir dosyada olsun derseniz komut böyle olsun.
$ bash bul.sh url.txt > url2.txt

Olay bu kadar aslında, artık bu linklere bakarak linklerin sağlam mı kırık mı olduğunu tespit edebilirsiniz ve buna bakarak düzenlemek artık çok daha kolaylaşacaktır.

Bu noktada grep gibi bazı küçük komutlar da işinizi kolaylaştırabilir.
Örn. çıktıda ki tüm "200 OK" döndürmüş komutları alıp başka bir dosyaya kayıt edebilirsiniz.

$ grep "200 OK" url2.txt > url200.txt

uniq komutu ise benzer satırları tespit eder. Yani dosyanızda bir birine benzyen çok sayıda aynı satırlar varsa, bunu da azaltmak istiyorsanız işe yarayacaktır.

$ uniq url.txt > url3.txt

Ayrıca sort komut da kullanılabilir. Bu alfabetik olarak sıralayacaktır.
$ sort url.txt > url3.txt

Bu parametreler de istenilen işleve göre eklenebilir.
-r parametresi alfabetik tersten sıralayacaktır.
-n parametresi numerik olarak sıralayacaktır.
-u parametresi de tekrarlayan satırları silecektir.
Kolay gelsin.

yorum yok:

Yorum Gönder

2010 - 2024 Beastie BSD Türkiye 🇹🇷