Giriş
Birçoğumuz herhangi bir siteden dosya indirmek için 'download' programları kullanırız . Aslında konsoldan kullanabileceğimiz çok basit bir uygulama olan wget'i kullanarak da bu işimizi görebiliriz . Hem de hiç tahmin edemeyeceğimiz muhteşem özelliklerle . Bunları anlatmaya çalışalım .
Neler Yapılabilir
* Normal olarak dosya indirebiliriz .
* Herhangi bir dosyayı indirmeyi yarım bırakıp , daha sonra devamını indirebiliriz .
* Bir sitenin tamamını veya sadece bir bölümünü arşiv olarak indirebilriz . Eğer yine yarım bırakırsak daha sonra devam edebiliriz .
* Bir sitenin herhangi bir bölümündeki , herhangi bir uzantıya sahip dosyayı/dosyaları belirleyerek indirebiliriz veya istemediğimiz dosyaları indirmemesini söyleyebiliriz .
* Toplu olarak dosya indirmek için bir liste hazırlayıp , buradan dosya indirmesini sağlayabiliriz .
* Dosya indirirken internette dolaşma hızımızı fazla düşürmemek için indirme hızımızı sınırlandırabiliriz .
Bu ve bu gibi bir çok özelliği wget ( web get ) bize sağlıyor .
Wget Kullanımı
GNU wget , Linux altıdaki internetten dosya veya dizin indirmek için kullanılan çok pratik bir araç . WGET'deki birçok parametre sayesinde hertürlü indirme yöntemini uygulamak mümkün . Ancak bu parametrelerin ne kadarını biliyoruz ne kadarını bilmiyoruz . İşte size pratikte benim ençok kullanilan parametreler ve kullanimlari hakkinda pratik bilgiler;
Kaldığı yerden devam etme özelliğini kullanmak:
Bunun için wget komutuna eklemeniz gereken parametre "
-c" . Bu sayede yarıda kalmış yüklemelere başka bir zaman devam etmek istediğinizde bu seçeneği kullanabilirsiniz . Genelde boyutu büyük olan dosyalarda kullanılabilir . Mesela bir ISO dosyası indirirken .
wget -c $http://switch . dl . sourceforge . net/sourceforge/pisibul/pisibul-0 . 2 . 4 . tar . bz2
NOT: Yükleme sırasında elektrikler gitse veya 3 gün sonra aklınıza gelse bile -c ( continue--devam et ) seçeneği ile kaldığı yerden yüklemeye devam eder .
TIPS: Mirror A da bir X dosyası var diyelim . Aynı X dosyası mirror B de de var . Herhangi bir sebebden dolayı , diyelimki %30 den sonra download hızı çok düştü . Sorun değil . Aynı dosya oldukları için mirror B den download etmeye "-c" parametresi ile devam edebilirsiniz . Gene kaldıgı yerden devam eder .
Komple dizini indirmek:
İnternetteki bir siteyi veya bir dizini komple olarak indirmek istediğinizde "
-r" veya "
--recursive" parametresini kullanabilisiniz .
wget -r http://chaylaq . org/wget/
NOT: URL olarak verdiğiniz yer bir dizin olmak zorunda . Download olurken domain ve alt dizin yapısı aynen iner . ( http://chaylaq . org/wget/ şeklinde ) "-r" parametresi ile "wget" dizini benim bilgisayarıma dizin olarak indirilir . Eğer "wget" dizininin yapı olarak inmesini istemiyorsa "-r -nd" parametresini kullanabilirim . Bu sayede "wget" diye extra bir dizin oluşmaz ve sadece internetteki "wget" dizinindeki ve altındaki dosyalar local PC me indirilir .
DIKKAT: "-r -nd" komutunu verirsem , aynı isimli dosya varsa , enson indirilen dosya local PC ye kaydolur . Diğeri ise otomatikman MOVE olur .
Eğer indirmek istediğiniz internet adresinin domain ön takısını almak istemiyorsanız , "-nH" ekleyebilirsiniz .
wget -r -nH http://chaylaq . org/wget/
NOT: Bu komutta domain dizin yapısı yerine sadece "wget" dizin yapısı alınır . ( Sadece "/wget" dizini şeklinde ) Soru: İyi güzel ama bu başka dizinleride download ediyor ? Oysa ben sadece belirli bir dizini download etsin istiyom .
Tabi . Eğer sizin belirlediğiniz bir dizinden başka dizinin download edilmesini istemiyorsanız "-m" veya "--mirror" paremetresine "-np" ( --no-parent ) eklediğinizde istediğiniz olur .
wget -m -np http://chaylaq . org/wget/
NOT: Bu sayede sadece verilen adresdeki dosyalar download edilir . Bunun dışına çıkılmaz .
Filter kullanmak veya sadece belirli dosyaları indirmek:
Bazen indirmek istediğiniz dizinde 100 lerce dosya vardır ama siz sadece bunlardan belirli dosyaları indirmek isteyebilirsiniz . Bu durumda JOKER ( yıldız ) "*" kullanamazsınız . Aksine "-A" veya "--accept" kullanarak bu işinizi halledebilirsiniz .
wget -r -A jpg , png http://chaylaq . org/
NOT: Verilen URL adresinde ve alt dizinlerinde sadece JPG ve PNG dosyaları indirilir .
Peki bunun tam tersi nasıl olacak ? Yani belirli bir filtre haricindeki bütün dosyaları nasıl indireceksiniz? Bunun içinde "-R" veya "--reject" kullanabilirsiniz .
wget -r -R tar . gz , jpg http://chaylaq . org/
NOT: Verilen URL adresinden tar . gz ve jpg dosyaları HARICINDE ne varsa indirir .
Proxy üzerinden kullanım:
Eğer bir proxy kullanıyorsanız , o zaman en güzel çözüm /etc/wgetrc dosyasını açıp , ayar dosyasındaki satırdaki yere gerekli ayar yapmak . Yada kısa süre için proxy kullanıyorsanız veya sadece o dosya için proxy kullanmak istiyorsanız;
export http_proxy=" http://meinproxy . provider . de:3128"; wget http://chaylaq . org/xxx . tar . gz
şeklinde kullanabilirsiniz .
Şifreli URL adreslerine wget ile erişim:
Download etmek istediğiniz bir adres herhangi bir şekilde şifrelenmiş ise ve bunu wget ile download etmek istiyorsanız , download işlemini 2 türlü yapabilirsiniz .
Kolay yol:
wget http://KULLANICI:PASSWORD@chaylaq . org/deneme/deneme . tar . gz
wget ftp://KULLANICI:PASSWORD@chaylaq . org/deneme/deneme . tar . gz
Uzun yol:
wget ----http-user=KULLANICI http-passwd=SIFRE http://chaylaq . org/deneme/
Download'ı sınırlandırmak :
İnternet çıkışınız fazla değil ve bunu download için harcamak istemiyorsanız "
--limit-rate=INT_DEGER" şeklinde sınırlandırabilirsiniz .
wget -c --limit-rate=4k http://chaylaq . org/cw . tar . gz
Bu sayede sadece 4k ile indirilir .
Dosya içindeki URL adreslerinden download etsin :
Her komut için tekrar tekrar wget komutunu vermek istemiyorsunuz en güzel çözüm bütün dosyaların adreslerini bir text dosyası haline getirip "-i" veya "--input-file" parametresini kullanmak .
wget -c --input-file=/home/chaylaq/Desktop/download . txt
Dosya içinde belirtilen adresler indirilir .
DIKKAT: Dosyanın içini 1/2 dosya 1/2 dizin şeklinde yapmayın . Yoksa istediğiniz sonucu alamazsınız .
Local bilgisayarımda belirli bir adrese/dizine kaydolsun:
wget -c http://chaylaq . org/cw . tar . gz -P /home/chaylaq/Dosyalarim
Bu komut ile indirme işlemi komutu verdiğiniz yere değil , aksine "-P" ile belirlediğiniz yere yapılır . Eğer belirtilen dizin yoksa otomatikman oluşturulur .
Sadece yeni / güncel dosyalar indirilsin:
Belirli bir adresden devamlı backup yapıyorsunuz veya dosya indiriyorsunuz . Aynı dosyaları tekrar indirmek biraz anlamsız olur . Peki napıcaksınız ?
Oda sorun değil . Bir adresden diyelim devamlı dosya indiriyuorsunuz . Ancak haftada bir kere . Ama her defasında aynı dosyaları indirmek istemiyosunuz . O zaman sadece en güncel dosyaları veya güncellenen dosyaları indirmek en doğrusu olacaktır . Bunun için kullanılacak parametre ise "-N" veya "--timestamping" olacaktır .
16-11-2007 de aşağıdaki komutu verdiniz:
wget -r -nH http://chaylaq . org/wget/
ve 16-12-2007 tarihinde aynı URL de acaba yeni dosya varmı yokmu diye kontrol edip , eğer varsa bunları indirmek istiyorsunuz:
wget -r -nH -N http://chaylaq . org/wget/
2 . işlemde sadece güncel olan dosyalar indirilir .
Passive FTP :
Bazı FTP adreslerinden dosya indiremiyorum . Ama Browserden indirmeye çalıştığımda normal olarak iniyor . Bazı FTP serverleri sadece passive-ftp modunda izin verebilir . Bu durumda wget ile işlem yaparken "--passive-ftp" parametresini eklemenizde fazda var .
wget -c --passive-ftp ftp://chaylaq . org/cw . tar . gz
LOG Tutturmak:
Ben çok fanatik bir insanım ve istatistiklere önem veriyorum . WGET Log tutar mı?
Elbette tutar . Bunun için "-o" veya "--output-file" parametresini kullanmanız yeterli olacaktır .
wget -r -nH http://chaylaq . org/wget/ -o log_dosyasi
Komuttan sonra bir "log_dosyasi" isminde dosya oluşur . İnceleyin .
Liste İndirme:
Çok fazla indireceğiniz bir şey olduğunda bunların hepsini bir text dosyası oluşturup bir seferde indirebilirsiniz . .
wget -i text_dosyasi
Hepsi bu kadarmı?
Elbette değil . Daha birçok özellik ve parametre var . Bunlar sadece benim pratik kullanımda ençok kullandığım parametreler . Birçok ayar için /etc/wgetrc dosyasına göz atmanız yeterli . Ayrıca wget için birkaçda GUI bulmanız mümkün:
gwget >
http://gwget . sourceforge . net/
gtm >
http://gtm . sourceforge . net/
kwebget >
http://www . kpage . de/de/
Diğer ayrıntılı detaylar için ,
man wget