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)
* * *
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.Kolay gelsin.
-n parametresi numerik olarak sıralayacaktır.
-u parametresi de tekrarlayan satırları silecektir.
yorum yok:
Yorum Gönder