Ana içeriğe geç

Wget Kullanımı: Dosya İndirme ve REST API Etkileşimi Kılavuzu 🚀

🎯 Bu Rehberde Ne Öğreneceksiniz​

Bu rehber, Wget komut satırı aracını kullanarak uzak sunuculardan dosya indirmenin ve REST API uç noktalarıyla etkileşim kurmanın pratik yollarını öğretir.
Ağ kesintilerini yönetme, indirme hızını limitleme, indirmeyi arka planda çalıştırma gibi becerileri öğrenirken, curl yüklemeden GET, POST, PUT ve DELETE çağrılarını da uygulayabileceksiniz.


🧠 Teknik Özet​

Ana Teknik Konu: Wget (Linux/Unix) komut satırı aracı
Çözülen Problem: HTTP/HTTPS/FTP üzerinden dosyaları kararlı, kesintilere dayanıklı ve özelleştirilebilir biçimde indirme; ek araç kurmadan REST API’lerle etkileşim kurma.
İzlenen Adımlar:

  1. Wget kurulum kontrolü
  2. Tekli / çoklu dosya indirme
  3. Dizin seçimi (-P), sessiz mod (-q), hız limitleme (--limit-rate), sürdürme (-c), arka plan (-b)
  4. HTTP metodları (--method), başlıklar (--header), veri gönderimi (--body-data)

⚙️ 1. Wget Kurulumu​

Çoğu Linux dağıtımında Wget varsayılan olarak yüklüdür. Kurulu değilse:

sudo apt-get install wget

Kurulum kontrolü için:


wget --version

📁 2. Dosya İndirme Özellikleri​

📂 Belirli Dizin İçine İndirme​


wget -P Dizinler/ https://code.jquery.com/jquery-3.7.1.min.js

-P parametresi hedef dizini belirtir.

🔇 Çıktıyı Kapatma (-q)​


wget -q https://code.jquery.com/jquery-3.7.1.min.js

İndirme çıktısını tamamen gizler.

📊 Sadece İlerleme Çubuğunu Gösterme​


wget -q --show-progress https://code.jquery.com/jquery-3.7.1.min.js

Sessiz modda yalnızca ilerleme barını gösterir.

🔁 Kesintiye Uğrayan İndirmeyi Sürdürme (-c)​


wget -c https://buyuk-dosya.rabisu.cloud/yedek.zip

İndirme kesintiye uğrasa bile kaldığı yerden devam eder.

🚦 İndirme Hızını Limitleme (--limit-rate)​


wget --limit-rate=100k https://buyuk-dosya.rabisu.cloud/yedek.zip

Bant genişliğini korumak için hızı sınırlar.

🧩 Arka Planda İndirme (-b)​


wget -b https://buyuk-dosya.rabisu.cloud/yedek.zip

Uzun indirmeleri terminali serbest bırakarak arka planda çalıştırır.


🌐 3. REST API Etkileşimi​

🧱 GET İsteği​


wget -qO- https://jsonplaceholder.typicode.com/posts?_limit=1

Yanıtı terminale JSON formatında yazar.

📨 POST İsteği​


wget -qO- \
--method=post \
--header="Content-Type: application/json" \
--body-data '{"baslik":"Wget Denemesi","icerik":"Örnek içerik","kullaniciId":1}' \
https://jsonplaceholder.typicode.com/posts

✏️ PUT İsteği​


wget -qO- \
--method=put \
--header="Content-Type: application/json" \
--body-data '{"baslik":"Güncellendi","icerik":"Yeni içerik","kullaniciId":1,"id":1}' \
https://jsonplaceholder.typicode.com/posts/1

❌ DELETE İsteği​


wget -qO- \
--method=delete \
https://jsonplaceholder.typicode.com/posts/1

🔐 Kimlik Doğrulama (Authorization Header)​


TOKEN="ErişimBelirteciniz"
wget -qO- \
--header="Authorization: Bearer $TOKEN" \
--header="Accept: application/json" \
https://api.rabisu.cloud/v1/sunucular

🧩 4. Wget Sorun Giderme (Troubleshooting)​

Sorun BelirtisiOlası NedenÇözüm Komutu / Taktik
Dosya.1, .2 olarak kaydolduAynı isimli dosya mevcutwget -O dosya.zip URL
İndirme 0%’dan yeniden başladı-c eksik veya sunucu desteklemiyorwget -c URL
İndirme çok yavaş / kararsızAğ çekişmesi veya sunucu limitiwget --limit-rate=50k ve --tries=10 -T 10
401 Unauthorized hatasıToken hatalı / süresi dolmuş--header="Authorization: Bearer $TOKEN" kontrol et
SSL bağlantı hatasıSaat yanlış veya sertifika eksiksudo timedatectl set-ntp true + sudo update-ca-certificates
Takılı kaldı (no response)Sunucu yanıt vermiyorwget -T 10 --tries=5 URL

⚖️ 5. Wget vs Curl: Hangisini Ne Zaman Kullanmalı?​

DurumWgetCurl
Büyük / batch indirmeler✅⚪
Arka plan veya otomasyon✅⚪
Basit JSON GET / POST✅✅
Gelişmiş kimlik doğrulama / HTTP2⚪✅
Website yansıtma (mirroring)✅⚪

👉 Kural: “Dosya indiriyorsan → Wget. API ile uğraşıyorsan → Curl.”


💡 Sıkça Sorulan Sorular (SSS)​

1. Wget bağlantı kesilirse ne yapar?

-c (continue) ile indirmeyi kaldığı yerden devam ettirir.

2. API çağrısında birden fazla başlık nasıl eklenir?

Her biri için ayrı --header kullanılır.

3. Wget günlük (log) dosyalarını nerede tutar?

Varsayılan olarak wget-log dosyasına yazar.

4. Arka plan indirmelerini nasıl izlerim?

tail -f wget-log komutu ile anlık izleme yapılabilir.

5. Curl yerine Wget kullanmak güvenli mi?

Evet, özellikle dosya indirme ve basit REST API işlemleri için gayet uygundur.


🚀 Sonuç​

Bu rehberde Wget’in hem dosya indirme hem de REST API çağrılarında nasıl güçlü bir araç olduğunu öğrendiniz. Kesintilere dayanıklı, hız limitlemeli, arka plan destekli işlemlerle terminalinizi daha verimli kullanabilirsiniz.

💡 Rabisu Bulut ortamında bu teknikleri kullanarak otomasyon ve API entegrasyon süreçlerinizi hemen optimize edebilirsiniz!