Wget Nedir Wget Komutları Nelerdir Wget Nasıl Kullanılır
Merhaba arkadaşlar bu makalemde sizlerle linux tabanlı sunucular ve işletim sistemleri üzerinde sürekli kullandığımız ve internetteki içerikleri kolay bir şekilde panellere veya indirme programlarına ihtiyaç duymadan sunucularımıza yada işletim sistemlerimizin içerisine çektiğimiz wget komutununun ayrıntılı olarak komutlarını sizlerle paylaşmaya çalışacağım. Önce wget komutumuzu tanımlayalım ve daha sonra wget ile beraber kullanacağımız ek komutları görelim.
Wget Nedir ?
Gnu Wget (veya sadece Wget, eskiden Geturl), içerik web sunucularında kullanılır ve gnu Projesi’nin bir parçası bir bilgisayar programıdır. Onun adı World Wide Web’den türetilmiştir ve adını bu isimlerden almıştır. Via http, https, bağlantılarının ve ftp protokollerinin indirilmesini desteklemektedir.
Özellikleri
Özyinelemeli indirme, dönüşüm yerel html, proxy desteği ve çok daha fazlasını çevrimdışı görüntülemek için bağlantılar içerir. Unix kullanıcıları ve dağıtımları arasındaki geniş kullanımı ile en büyük gnu/Linux tabanlı dağıtımlar arasında popülerlik patlaması yapmıştır ve 1996 yılında ortaya çıkmıştır.
Wget herhangi bir Unix sistem üzerine kolayca yüklenebilir ve birçok ortama taşınabilir C’de yazılmış Microsoft Windows, Mac os x, OpenVMS, MorphOS dâhil yada AmigaOS.GNU wget, Linux altıdaki internetten dosya veya dizin indirmek için kullanılan çok pratik bir araçtır WGET’deki birçok parametre sayesinde hertürlü indirme yöntemini uygulamak mümkündür. Ancak bu parametrelerin ne kadarını biliyoruz ne kadarını bilmiyoruz. İşte size pratikte benim ençok kullandığım parametreler ve kullanımları hakkında pratik bilgiler:
Kaldığı yerden devam etme özelliği:
Bunun için wget komutunu eklemeniz gereken parametre “-c” . Bu sayede yarıda kalmış downloadları veya başka bir zaman devam etmek istediğinizde kullanabilirsiniz. Genelde boyutu büyük olan dosyalarda da kullanabilirsiniz. Mesela bir .iso dosyası indirirken kullanabilirsiniz.
Örnek:
wget -c http://siteadı.org/manjaro.iso
NOT: Bu aşamadan bilmeniz gereken elektirikler gitse bile veya unutsanızda 2 gün sonra aklınıza gelse ve indirmeye devam etmek isteseniz dahi tekrar kaldıgınız yerden devam edebilirsiniz indirme işlemine.
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.
Dizini bütünüyle indirmek:
İnternetteki bir siteyi veya bir dizini komple olarak indirmek istediğinizde “-r” veya “–recursive” parametresini kullanabilisiniz.
Örneğin:
wget -r http://siteadı.org/yenidizin/
NOT: URL olarak verdiğiniz adres dizin ise indireceğiniz yere önce indireceğiniz alanadı ile bir dizin açılır içersinede o alan adı içerisindeki bütün dizinler ve dosyalar olduğu gibi indirilir yanlız burada bilmeniz gereken şey indirilen dosyalar sunucu yorum aşamasında kullanılan .php yada .asp gibi dinamik içerik sayfaları ise indirme işlemi sırasında bu sayfalar .htm yada .html şeklinde indirilecektir. Ancak diğer resim yada tema dosyaları yada javascript vs gibi sunucu tabanlı olmayan içerikler direkt olarak varoldukları dizinlere göre inecektir.
İndirireceğiniz içerik illa bir dizin olmak zorunda değildir. Örneğin bir alandadi.com indireceksiniz o indireceğiniz alan adı içerisindeki bütün dizinleri -r komutu sayesinde indireceğiniz bölüme alınacaktır.
“-r” parametresi ile “yeniklasör” dizini benim bilgisayarıma dizin olarak indirildi. Eğer “yeniklasör” dizininin yapı olarak inmesini istemiyorsa “-r -nd” parametresini kullanabilirim. Bu sayede “yeniklasör” diye extra bir dizin oluşmaz ve sadece internetteki “yeniklasör” dizinindeki ve altındaki dosyalar indirilir.
DIKKAT: “-r -nd” komutunu verirsem, aynı isimli dosya varsa, enson indirilen dosya kaydolur. Diğeri ise otomatikman taşınmaz olur.
Eğer indirmek istediğiniz internet adresinin domain ön takısını almak istemiyorsanız, “-nH” ekleyebilirsiniz:
Örnek:
wget -r -nH http://siteadı.org/yenidizin/
NOT: Bu komutla domain dizin yapısı yerine sadece “yeniklasör” dizin yapısı alınır.
(Sadece “/yeniklasör” dizini şeklinde)
Alan adı içerisindeki diğer dizinleri değil sadece tek bir dizini indirmek istiyorsanız.
Sizin belirlediğiniz bir dizinden başka bir dizinin indirilmesini istemiyorsanız “-m” veya “–mirror” paremetresine “-np” (–no-parent) eklediğinizde istediğiniz olur
Örnek:
wget -m -np http://siteadı.org/yenidizin/
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” komutunu kullanarak bu işinizi halledebilirsiniz.
Örnek:
wget -r -A jpg,png http://siteadı.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” komutunu kullanabilirsiniz.
Örnek:
wget -r -R tar.gz,jpg http://siteadı.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 yapmaktır.
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 xxxxxxxxxxxxxxxxxxxxx
ş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:PASSWORT@siteadı.../test.tar.gz
wget ftp://KULLANICI:PASSWORT@siteadı.../test.tar.gz
Uzun yol:
wget ----http-user=KULLANICI --http-passwd=SIFRE http://siteadı.org/test/
İndirme işlemini 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.
Örnek:
wget -c --limit-rate=10k http://siteadı.org/manjaro.iso
NOT: Bu sayede sadece 10k 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.
Örnek:
wget -c --input-file=/home/sitedizini/download_dosyası
NOT: 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 iyi güzel ama komutu nereye verirsem oraya kaydediyor. Halbuki ben komutu verdiğim yere değil, aksine benim istedğimi bir yere kaydetmesini istiyorum.
Sorun değil, bunun için “-P” veya “–directory-prefix” parametresini kullanabilirsiniz.
Örnek:
wget -c http://siteadı.org/manjaro.iso -P /home/sitedizini/indirmelerim/
NOT: 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 do
syaları indirmek en doğrusu olacaktır. Bunun için kullanılacak parametre ise “-N” veya “–timestamping” olacaktır.
Örnek:
21.08.2003 de aşağıdaki komutu verdiniz:
wget -r -nH http://siteadı.org/yeniklasör
ve 21.09.2003 tarihinde aynı URL de acaba yeni dosya varmı yokmu diye kontrol edip, eğer varsa bunları indirmek istiyorsunuz
wget -r -nH -N http://siteadı.org/yeniklasör/
NOT: 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. Neden?
Bazı FTP serverleri sadece passive-ftp modunda izin verebilir. Bu durumda wget ile işlem yaparken
“–passive-ftp” parametresini eklemenizde fazda var.
Örnek:
wget -c --passive-ftp http://siteadı.org/manjaro.iso
LOG tutturmak:
İstatistiklere önem veriyorsanız. WGET ile Log tutabilirsiniz?
Bunun için “-o” veya “–output-file” parametresini kullanmanız yeterli olacaktır.
Örnek:
wget -r -nH http://siteadı.org/yeniklasör/ -o log_dosyasi
NOT: Komuttan sonra bir “log_dosyasi” isminde dosya oluşur . İnceleyin.
Aslında komutlar bunlar ile sınırlı değil komut ekranını hakkında yardım görüntülemek için wget –help yazıp gönderirseniz gerekli bütün komutlar gözünüzün önüne gelecektir.ben yinede size alt bölümde ayrıntılı olarak bir kaç komut daha göstereceğim.
Uzun seçeneklerdeki zorunlu argümanlar kısa seçeneklerde de zorunludur.
Başlangıç:
-V, --version Wget sürümünü gösterir ve çıkar.
-h, --help bu yardım metnini basar.
-b, --background artalanda başlatılır.
-e, --execute=KOMUT `.wgetrc' tarzı bir komut çalıştırmak için.
Günlük kaydı ve girdi dosyası:
-o, --output-file=DOSYA Günlük kayıtları DOSYAya yazılır.
-a, --append-output=DOSYA iletiler DOSYAya eklenir.
-d, --debug hata ayıklama bilgileri basılır.
-q, --quiet hiçbir bilgi verilmez (sessiz çalışma).
-v, --verbose ayrıtılı bilgi verilir (öntanımlıdır).
-nv, --no-verbose daha az ayrıntılı bilgi verilir.
-i, --input-file=FILE download URLs found in local or external FILE.
-F, --force-html girdi dosyasının HTML olduğu varsayılır.
-B, --base=URL resolves HTML input-file links (-i -F)
relative to URL.
İndirme:
-t, --tries=SAYI yineleme SAYIsı (0: sınırsız).
--retry-connrefused bağlantı reddedilse bile yeniden dener.
-O, --output-document=DOSYA
belgeler DOSYAya yazılır.
-nc, --no-clobber Mevcut dosyalar tekrar indirilmez.
-c, --continue dosya yarım kalmışsa kaldığı yerden devam
ettirilir.
--progress=TÜR süreç göstergesi TÜRü.
-N, --timestamping mevcuttan daha yeni olmayan dosyalar indirilmez.
-S, --server-response sunucunun yanıtını basar.
--spider hiçbir şey indirilmez (araştırma kipi).
-T, --timeout=SÜRE saniye cinsinden zamanaşımı SÜREsi.
--dns-timeout=SÜRE saniye cinsinden isim çözümleme SÜREsi.
--connect-timeout=SÜRE saniye cinsinden bağlantı zamanaşımı SÜREsi
--read-timeout=SÜRE saniye cinsinden okuma zamanaşımı SÜREsi
-w, --wait=SÜRE saniye cinsinden alımlar arasındaki bekleme
SÜREsi
--waitretry=BSÜRE saniye cinsinden alımın yinelenmesini bekleme
SÜREsi
--random-wait alımlar arasında 0 ile 2*BSÜRE saniye arasında
bekleme yapar.
--no-proxy vekil kullanılmaz.
-Q, --quota=SAYI alım kotasını SAYIya ayarlar.
--bind-address=ADRES makinenizin adresi (isim ya da IP) olarak bu
ADRES gösterilir.
--limit-rate=HIZ indirme HIZ sınırı.
--no-dns-cache isim çözümlemesi kayıtları tutulmaz.
--restrict-file-names=İŞLETİM-SİSTEMİ
dosya ismi uzunluğunu İŞLETİM-SİSTEMİnin izin
verdiği uzunluğa ayarlar.
--ignore-case dosya/dizin eşleştirmesinde büyük/küçük harf ayrımını gözardı et.
-4, --inet4-only sadece IPv4 adreslere bağlanılır.
-6, --inet6-only sadece IPv6 adreslere bağlanılır.
--prefer-family=AİLE ilk bağlantı belirtilen AİLEdeki adrese yapılır.
IPv6, IPv4 ya da none belirtilebilir.
--user=İSİM ftp ve http kullanıcı ismi olarak bu İSİM
kullanılır.
--password=PAROLA ftp ve http kullanıcı parolası olarak bu
PAROLA kullanılır.
--ask-password şifre bilgisi iste.
--no-iri IRI desteğini kapat.
--local-encoding=ENC IRI'ler için yerel kodlama olarak ENC kullan.
--remote-encoding=ENC varsayılan uzak kodlama olarak ENC kullan.
Dizinler:
-nd, --no-directories dizin oluşturulmaz.
-x, --force-directories mutlaka dizin oluşturulur.
-nH, --no-host-directories
karşı tarafın dizin yapısına uyulmaz.
--protocol-directories
dizinlerde protokol ismi kullanılır.
-P, --directory-prefix=DİZİN dosyalar belirtilen DİZİN altına kaydedilir.
--cut-dirs=SAYI belirtilen SAYIda uzak dizin bileşeni yoksayılır
HTTP seçenekleri:
--http-user=İSİM http kullanıcı İSMİ.
--http-password=PAROLA http kullanıcı PAROLASI.
--no-cache sunucu-arabellekli veriye izin verilmez.
--default-page=NAME Varsayılan sayfa adını değiştir (genellikle
`index.html' dosyasıdır.).
-E, --adjust-extension HTML/CSS belgelerini uygun uzantılarla kaydet.
--ignore-length `Content-Length' başlık alanı yoksayılır.
--header=DİZGE başlık yerine DİZGE konur.
--max-redirect sayfa başına izin verilen en fazla yönlendirme sayısı.
--proxy-user=İSİM vekil kullanıcı İSMİ.
--proxy-password=PAROLA
vekil kullanıcı PAROLASI.
--referer=ADRES HTTP isteğinde `Referer: ADRES' başlığı
kullanılır.
--save-headers HTTP başlıkları dosyaya kaydedilir.
-U, --user-agent=AJAN Wget/SÜRÜM yerine AJAN kullanılır.
--no-http-keep-alive HTTP keep-alive (sürekli bağlantı) iptal edilir.
--no-cookies çerezler kullanılmaz.
--load-cookies=DOSYA çerezler oturumdan önce DOSYAdan yüklenir.
--save-cookies=DOSYA çerezler oturumdan sonra DOSYAya kaydedilir.
--keep-session-cookies çerezleri sadece oturum için yükler ve kaydeder
--post-data=DİZGE POST yöntemi kullanılır; veri olarak DİZGE
gönderilir.
--post-file=DOSYA POST yöntemi kullanılır; veri olarak DOSYA
içeriği gönderilir
--content-disposition honor the Content-Disposition header when
choosing local file names (EXPERIMENTAL).
--auth-no-challenge send Basic HTTP authentication information
without first waiting for the server's
challenge.
HTTPS (SSL/TLS) seçenekleri:
--secure-protocol=PR güvenlik protokolü belirtilir;
auto, SSLv2, SSLv3 veya TLSv1 belirtilebilir.
--no-check-certificate sunucu sertifikası doğrulatılmaz.
--certificate=DOSYA istemci sertifika DOSYAsı.
--certificate-type=TÜR istemci sertifika TÜRü; PEM veya DER.
--private-key=DOSYA gizli anahtar DOSYAsı.
--private-key-type=TÜR gizli anahtar TÜRü; PEM veya DER.
--ca-certificate=DOSYA sertifika yetkilisinin (CA) bohçası için DOSYA.
--ca-directory=DİZİN sertifika yetkilisinin (CA) çırpılarının yeri.
--random-file=DOSYA SSL PRNG'sini tohumlamak için rasgele veri
içeren DOSYA.
--egd-file=DOSYA EGD soketini isimlendirmek için rasgele veri
içeren DOSYA.
FTP seçenekleri:
--ftp-user=İSİM ftp kullanıcı İSMİ.
--ftp-password=PAROLA ftp kullanıcı PAROLAsı.
--no-remove-listing `.listing' uzantılı dosyalar silinmez.
--no-glob FTP dosya ismi arama kalıpları kullanılmaz.
--no-passive-ftp "passive" aktarım kipini iptal eder.
--retr-symlinks alt dizinlerdeki sembolik bağlı dosyalar
(dizinler değil) alınır.
Ne varsa indirme seçenekleri:
-r, --recursive ne varsa indirilir.
-l, --level=SAYI inilecek azami dizin derinliği
(sonsuz için inf veya 0 belirtin).
--delete-after indirilen dosyaları indirdikten sonra siler.
(tabii ki yerel)
-k, --convert-links make links in downloaded HTML or CSS point to
local files.
-K, --backup-converted dosyayı dönüştürmeden önce .orig uzantılı
yedeğini alır.
-m, --mirror -N -r -l inf--no-remove-listing için kısayol.
-p, --page-requisites HTML sayfada gösterilmesi gerekli herşeyi
(resimler, v.s.) indirir.
--strict-comments HTML açıklama alanlarında belirtime uyulur.
Ne varsa indirmede kabul/red seçenekleri:
-A, --accept=LISTE izin verilecek dosya uzatılarının virgül ayraçlı
listesi
-R, --reject=LISTE reddedilecek dosya uzatılarının virgül ayraçlı
listesi
-D, --domains=LISTE izin verilecek alan isimlerinin virgül ayraçlı
listesi
--exclude-domains=LISTE
reddedilecek alan isimlerinin virgül ayraçlı
listesi
--follow-ftp HTML belgelerdeki FTP bağları izlenir.
--follow-tags=LISTE izin verilen HTML etiketlerinin virgül
ayraçlı listesi.
--ignore-tags=LISTE yoksayılacak HTML etiketlerinin virgül
ayraçlı listesi.
-H, --span-hosts rastlandıkça başka makinelerdekilerde alınır.
-L, --relative sadece göreli bağlar izlenir.
-I, --include-directories=LISTE
izin verilen dizinlerin listesi.
--trust-server-names use the name specified by the redirection url last component.
-X, --exclude-directories=LISTE
dışlanacak dizinlerin listesi.
-np, --no-parent üst dizine çıkılmaz.
archman.org - Bizi bilen iyi bilir, bilmeyen de kendi gibi bilir.!
Çok yararlı bir konu, emeğinize sağlık.
Sent from my iPhone using Tapatalk
Çok ayrıntılı bir şekilde yazmışsınız teşekkür ederim. işime çok yarayacağı kesin peki bu Yenidizin
wget -r
komutu ile birlikte /home diskinde bir yere mi indirme yapıyor yoksa farklı bir yere mi.
PenguTR // Özünde ara kendini. Üret ki devam edebilesin.
Uçbirim default olarak kullanıcı dizininde açılır. Bu durumda /home/$USER altına indirecektir. örneğin: /home/asukaki dizinine indirecektir. İndirmek için belirlediğiniz dizine girdikten komutları kullanmak daha mantıklı
archman.org - Bizi bilen iyi bilir, bilmeyen de kendi gibi bilir.!
teşekkürler tulliana 🙂
PenguTR // Özünde ara kendini. Üret ki devam edebilesin.