Türkiye
Az konuş, çok çalış..

Forum

Bildirimler
Tümünü temizle

[Nasıl] Wget Nedir Wget Komutları Nelerdir Wget Nasıl Kullanılır

5 Yazılar
3 Üyeler
0 Likes
6,401 Görüntüleme
tulliana
(@tulliana)
Gönderiler: 3510
Famed Member Admin
Konu başlatıcı
 

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.

alıntı

archman.org - Bizi bilen iyi bilir, bilmeyen de kendi gibi bilir.!

 
Gönderildi : 02/12/2014 5:39 am
(@dewil)
Gönderiler: 58
Trusted Member
 

Çok yararlı bir konu, emeğinize sağlık.

Sent from my iPhone using Tapatalk

 
Gönderildi : 02/12/2014 6:15 am
(@asukaki)
Gönderiler: 245
Reputable Member
 

Ç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.

 
Gönderildi : 02/12/2014 9:07 am
tulliana
(@tulliana)
Gönderiler: 3510
Famed Member Admin
Konu başlatıcı
 

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.!

 
Gönderildi : 02/12/2014 2:28 pm
(@asukaki)
Gönderiler: 245
Reputable Member
 

teşekkürler tulliana 🙂

PenguTR // Özünde ara kendini. Üret ki devam edebilesin.

 
Gönderildi : 03/12/2014 4:12 am
Paylaş:
Translate »