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:
- Wget kurulum kontrolü
- Tekli / çoklu dosya indirme
- Dizin seçimi (-P), sessiz mod (-q), hız limitleme (--limit-rate), sürdürme (-c), arka plan (-b)
- 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 Belirtisi | Olası Neden | Çözüm Komutu / Taktik |
|---|---|---|
| Dosya.1, .2 olarak kaydoldu | Aynı isimli dosya mevcut | wget -O dosya.zip URL |
| İndirme 0%’dan yeniden başladı | -c eksik veya sunucu desteklemiyor | wget -c URL |
| İndirme çok yavaş / kararsız | Ağ çekişmesi veya sunucu limiti | wget --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 eksik | sudo timedatectl set-ntp true + sudo update-ca-certificates |
| Takılı kaldı (no response) | Sunucu yanıt vermiyor | wget -T 10 --tries=5 URL |
⚖️ 5. Wget vs Curl: Hangisini Ne Zaman Kullanmalı?
| Durum | Wget | Curl |
|---|---|---|
| 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!