Wget

GNU Wget (ya da kısaca Wget, eskiden Geturl), internet ağı üzerinden dosyalar indirmeye yarayan, komut satırı üzerinden kullanılan bir indirme yöneticisi. GNU Tasarısının parçasıdır.

Özellikleri arasında özyinelemeli indirme, adreslerin çevrimdışı görüntülenmesi için ikizleme ve vekil sunucu desteği bulunur. Web kullanımının artması sonucu ilk sürümü 1996'da yayımlanmıştır, Unix ve Linux kullanıcıları sayesinde yaygın bir kullanıma ulaşmıştır. Taşınabilir C dilinde yazılmıştır, Unix benzeri düzene kolayca yüklenebilir. Microsoft Windows, Mac OS X, OpenVMS, HP-UX, MorphOS ve AmigaOS gibi ortamlara da taşınmıştır.

Wget, aynı yazarın 1995 sonlarında hazırlamaya başladığı Geturl adlı yazılımı taban almıştır. GetURL adlı başka bir Amiga yazılımının varlığı fark edildikten sonra adı Wget olarak değiştirilmiştir.

Wget, 1990 ortalarındaki "internetten indirme yazılımı" boşluğunu doldurmuştur. Hiçbir yazılım güvenilir bir şekilde aynı anda HTTP ve FTP'den indirmeyi desteklemiyordu. Var olan yazılımlar ya yalnızca FTP'yi destekliyordu (NcFTP ve dl gibi) ya da yaygın olmayan Perl dilinde yazılmıştı. Wget, var olan yazılımlardan esinlendiği sırada hem HTTP hem FTP desteği sunmayı amaçladı ve kullanıcıların her Unix düzeninde bulunan ölçünlü geliştirme araçlarıyla derlemesini sağladı.

Unix kullanıcıları aşırı düşük üniversite ve çevirmeli ağ bağlatılarıyla boğuştuğu o zamanlarda, insan eli değmeden kısa süreli ağ sorunlarıyla başa çıkabilecek bir "indirme aracı" gereksinimini karşıladı.

2010'da Amerika Birleşik Devletleri Ordusu istihbarat çözümleyicisi olan Chelsea Manning 250,000 ABD uluslararası siyasi belgesini ve 500,000 Ordu layihasını Wget kullanarak indirdi. Bu belgeler Afgan Savaş belgeleri ve Irak Savaş belgeleri olarak tanındı ve Wikileaks'e gönderildi.

Wget düşük ya da kararlı olmayan ağ bağlantılarında sağlam olacak şekilde tasarlanmıştır. Eğer bir indirme ağ sorunu nedeniyle başarısız olduysa, Wget kendiliğinden kaldığı yerden devam etmek için deneyecektir. Tüm dizin alınana dek bunu tekrar edecektir. Bunu desteklemesi için HTTP'nin Range özelliğini kullanan ilk istemcidir.

Wget, isteğe bağlı olarak arama robotu gibi çalışabilir. HTML sayfalarından bağlantılanan kaynakları ayrıştırır ve indirme işlemini tüm sayfalar indirilene ya da kullanıcı tarafından belirlenen azami derinliğe ulaşana dek yineler. İndirilen sayfalar uzak sunucuyla benzeşen bir şemayla dosyaya kaydedilir. Bu "özyinelemeli indirme", HTTP yolu ile web sitelerini kısmi ya da tam olarak ikizleyebilir. İndirilen HTML sayfalarındaki bağlantılar çevrimdışı görüntüleme için yeniden yapılandırılabilir. Wget, bu tür ikizleme işlemi yapılırken Robot engelleme ölçününü destekler (-e robots=off değişkeni kullanılmazsa).

Özyinelemeli indirme elbette FTP'de de çalışır. Wget LIST komutunu indirilecek ek dosyaları bulmak için kullanır. Bu işlemi tepe adresin altındaki tüm dizinleri ve dosyaları bulana dek tekrarlar. Eğer istenirse, FTP adreslerinin indirmesi sırasında wildcard kullanılabilir.

Wget, HTTP ve FTP üzerinden özyinelemeli olarak indirme yapılırken yerel ve uzak dosyaların zaman damgalarını denetlemek için ayarlanabilir. Yalnızca yerel dosyadan yeni olan dosyaları indirebilir. Bu, HTTP ve FTP sitelerinin kolayca ikizlenmesini sağlar ama rsync gibi her yönüyle ikizleme için tasarlanmış yazılımlarla karşılaştığında yetersiz ve hataya eğimlidir. Diğer bir yanda, Wget bu görevi yapmak için sunucu tarafında özel bir yazılıma gereksinim duymaz.

Wget bir kez başlatıldığında kullanıcının etkileşimini ve bir uçbirimden denetlenmeyi gerektirmez. Daha sonra incelenmek üzere kendi ilerlemesini ayrı bir dosyada günlük biçiminde kayıt altına alır. Kullanıcılar Wget'i çalıştırıp, çıkış yapıp kendi haline bırakabilirler. Bu bağlamda, birçok çizge veya metin tabanlı arayüze sahip internet tarayıcıları kullanıcının düzende bulunmasını ve başarısız indirmeleri elle yeniden başlatmasını gerektirir ki bu da birçok veriyi aktarırken büyük bir engel teşkil eder.

Wget, C diliyle yazılmıştır. Bir C derleyicisinden biraz çoğunu ve BSD benzeri TCP/IP arayüzünü gerektirir, üçüncü taraf kütüphanelere asgari düzeyde gereksinim duyacak yüksek derece taşınabilir şekildedir.

Unix kabuğundan çalışacak Unix yazılımı olarak tasarlanmıştır, yazılım sayısız Unix benzeri ortamlara ve düzenlere taşınmıştır. Mac OS X'te ve Cygwin aracılığıyla Microsoft Windows'ta çalışabilir. Ayrıca bir GnuWin çıkını olarak da Microsoft Windows üzerinde bulunmaktadır.