Linux Örnek 1

xReyx

Üye
5 Mar 2016
146
0
Türk
Konuya ait anahtar kelimeler : Shell script ile Web sayfası kontrol etme, curl

Bu dersimizde bir Web sayfasının olup olmadığını, eğer var ise ne türde bir sayfa olduğunu bizlere gösteren bir script hazırlayacağız. Tabi bunun için öncelikle Web sayfaları türlerini tanımamız gerekmektedir. Bazı Web sayfası hata ve sayfa geri dönüşleri aşağıda verilmiştir.

200 Sayfa VAR.
301, 302 Sayfa başka bir sayfaya YÖNLENDİRİLMİŞ.
404 Sayfa YOK.
500 Sayfada kodlama hatası mevcut.
501 Sayfada yanlış erişim izinleri bulunmaktadır(chmod).


Evet yukarıda, hazırlamak istediğimiz script için gerekli sayfa hataları bulunmakta. Bu durumda script algoritmamızı kurmamız artık çok kolay.

Bu işlemler için "curl" programını kullanacağız. Eğer sisteminizde kurulu değil ise lütfen "curl" programınızı kurunuz. Programın kurulu olup olmadığını önceki derslerimizde nasıl kontrol edeceğimizi gösterdik.

Script adı "web_sayfa_kontrol.sh" olsun. Script çalışma mantığı ise aşağıdaki gibi olacaktır.

Öncelikle kullanıcıdan bir Web sayfası adını girmesini isteyecek.
Eğer kullanıcı bir Web sayfa adresi yazmaz ise kullanıcıya hata yaptığını, hata mesajı ile yazacak ve tekrardan denemesini isteyecek.
Daha sonra bir değişkene, sayfa geri dönüş değeri atanacak ve "case" durum değerlendirmesi ile sayfanın olup olmadığını gösterecek.
Aksi belirtilmediği sürece script sürekli tekrarlanacak ve yeni bir Web sayfası yazması istenecek. Eğer kullanıcı "Q" harfine basarsa script çıkış yapacak.


Şimdi script dosyamıza geçmeden "curl" programınının istediğimiz parametreler ile çalıştığı zaman bizlere nasıl bir çıktı sunduğuna bakalım.

Kullanacağımız komut dizesi:
Kod:
curl -s --head -w %{http_code} http://www.shellskript.com/36

şeklinde olacaktır. Burada sayfanın üst bilgisini çekiyoruz. Şimdi örneğimizi yapalım ve çıktısının kaç satır ve sütundan oluştuğuna bakalım.

[[email protected] script]$  curl -s --head -w %{http_code} www.shellskript.com/36
HTTP/1.1 200 OK
X-Powered-By: PHP/5.3.29
Content-Type: text/html; charset=utf-8
Date: Sat, 05 Dec 2015 21:17:01 GMT
Accept-Ranges: bytes
Server: LiteSpeed
Connection: close
[[email protected] script]$


Gördüğünüz gibi istediğimiz sayfa geri dönüş numarası birinci satır, ikinci sütunda bulunuyor. Bu çıktı içerisinden, bu kısmı çektikten sonra işlemlerimize geçebiliriz.

istediğimiz kısmı çekebilmek için "head" ve "awk" komutlarını kullanacağız.

"web_sayfa_kontrol.sh" dosyamızın içeriği aşağıdaki gibi olacaktır.

[[email protected] script]$ nano web_sayfa_kontrol.sh
#!/bin/bash

# web_sayfa_kontrol.sh

# Web sayfası kontrol skripti.



while :

do

read -p "Lütfen bir Web sayfası adresini giriniz. Örn:\"www.shellskript.com/36\" Çıkış[Q]  :" sayfa

echo

if [ -s $sayfa ]; then

echo "Herhangi bir Web sayfa adresi girmediniz... Lütfen takrar deneyiniz.."

echo

elif [ "$sayfa" == "q" ] || [ "$sayfa" == "Q" ]; then

echo "Çıkış yapılıyor.."

exit 2

else

sonuc=$(curl -s --head -w %{http_code} $sayfa | head -1 | awk '{print $2}')



case $sonuc in


        "200" )
                echo "$sayfa Web sayfası MEVCUT..."
        ;;

        301|302 )
                echo "$sayfa Web sayfası YÖNLENDİRİLMİŞ bir sayfa..."
        ;;

        "404" )
                echo "$sayfa Web sayfası MEVCUT DEĞİL..."
        ;;

        500|501 )
                echo "$sayfa Web sayfasında HATALAR bulunmakta.."
        ;;

        *)
                echo "Herhangi bir hata meydana geldi.."
        ;;
esac


fi

done



Şimdi scripti çalıştıralım ve örnek sayfamızı test edelim. 

[[email protected] script]$ chmod u+x web_sayfa_kontrol.sh
[[email protected] script]$ ./web_sayfa_kontrol.sh
Lütfen bir Web sayfası adresini giriniz. Örn:"www.xreyx.com/36" Çıkış[Q]  :www.xreyx.com/36


www.xreyx.com/36  Web sayfası MEVCUT...
[[email protected] script]$


Gördüğünüz gibi script sorunsuz olarak çalıştı. Bu komutlar ile, ilgili Web sayfasının olup olmadığını kontrol edebilirsiniz. Web sayfası adresini "www.xreyx.com/13" yada "http://www.xyrey.com/13" şeklinde kullanabilirsiniz.


Lütfen komutların nerede nasıl çalıştığına dikkat ediniz. Neden "while" döngüsünü kullandığımızı anlamış olmalısınız.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.