curl
və wget
istifadə edərək faylların yüklənməsi
1. curl
ilə tanışlıq
Sən heç vaxt müsahibədə internetdən fayl yükləməyini istəyiblər, amma sən ekran qarşısında oturub "necə edəcəyimi unutmuşam" deyərək durmuşsan? Bu gün biz curl
və wget
istifadə etməyi öyrənəcəyik və bunlar şəbəkə məlumatları ilə işləmək üçün sənin daimi köməkçilərin olacaq.
Bu utilitlər veb-səhifələri yükləməyə, faylları yükləməyə, HTTP sorğularını göndərməyə, API ilə işləməyə və hətta avtomatlaşdırma skriptlərini icra etməyə imkan verir. Gəlin onların funksionallığını, üstünlüklərini və istifadə ssenarilərini nəzərdən keçirək.
curl
— şəbəkə protokolları ilə məlumat ötürmək üçün bir terminal utilitidir. curl
-un əsas gücü onun elastikliyindədir: 20-dən çox protokola dəstək (HTTP, HTTPS, FTP, SCP və hətta SMTP). Tərtibatçılar baxımından bu, internetlə işləmək üçün əla bir "isveç bıçağıdır".
curl
-un əsas sintaksisi
curl [opsiyalar] URL
Sadə dillə desək, komandaya curl
yazırsan, lazımi ünvanı göstərirsən — və nəticədən zövq alırsan. Gəlin bu prosesi nəzərdən keçirək.
Veb-səhifənin yüklənməsi
Təsəvvür edin ki, Google-un əsas səhifəsini yükləmək istədiniz. Bu belə edilir:
curl http://www.google.com
Ekranda səhifənin HTML kodunu görəcəksiniz. Əgər saytın strukturunu araşdırmaq və ya onunla bağlı bir şey avtomatlaşdırmaq istəyirsinizsə, bu kifayət qədər faydalıdır.
Məzmunu fayla saxlamaq
Əgər bu mətn axını sizi narahat edirsə, nəticəni fayla saxlamaq olar:
curl -o google.html http://www.google.com
-o
(output) açarı curl
-a çıxışı fayla yönləndirməyi istədiyimizi bildirir. İndi səhifənin HTML kodu google.html
faylında saxlanıb. Gülməli bir şey istəyirsən? Faylı dostuna ver və de ki, “bütün interneti yüklədim”.
Faylın yüklənməsi
Təsəvvür edin ki, internetdən fayl yükləmək lazımdır (məsələn, hansısa .zip
). Bunun öhdəsindən curl
çox yaxşı gəlir:
curl -O http://example.com/file.zip
-o
-dan fərqli olaraq, -O
açarı faylı URL-də göstərilən orijinal adla saxlayır. Bu eyni mənbədən bir çox fayl yükləmək istədiyiniz zaman faydalıdır.
HTTP autentifikasiyası
Bəzən fayl və ya API resursa giriş login və parol ilə qorunur. Bu halda curl
-dan -u
açarı ilə istifadə edin:
curl -u istifadeciadi:parol http://example.com/private-data
Bu, xüsusilə bağlanmış API-lərlə işləmək üçün faydalıdır, məsələn, GitHub və ya Docker Registry.
API vasitəsilə yükləmə
curl
-un ən sərin imkanlarından biri — API ilə işləməkdir. Məsələn, serverə sorğu göndərmək və JSON formatında məlumat almaq lazımdır:
curl -X GET "https://api.exchangerate-api.com/v4/latest/USD"
Burada -X
açarı HTTP sorğusunun metodunu (GET, POST, DELETE və s.) göstərir. Xarici xidmətlərlə inteqrasiyanı avtomatlaşdırmaq üçün bu, əla vasitədir.
2. wget
nədir?
Əgər curl
İsveçrə bıçağıdırsa, wget
buldozerdir. Onun əsas işi faylları yükləməkdir. curl
ilə əsas fərqi bundadır ki, wget
xüsusi olaraq böyük faylları etibarlı şəkildə yükləmək üçün yaradılıb, həmçinin yükləməni davam etdirməyi dəstəkləyir. Bu xüsusiyyət zəif internet bağlantısı zamanı çox faydalıdır.
wget
komandalarının əsas sintaksisi
wget [opsiyalar] URL
Sadə fayl yükləmə
wget http://example.com/file.zip
Bu komanda faylı yükləyəcək və onu orijinal adı ilə cari direktoriya daxilində saxlayacaq. Sadə və effektiv.
Başqa adla saxlamaq
Əgər faylın orijinal adı xoşunuza gəlmirsə, öz adınızı təyin edə bilərsiniz:
wget -O newfile.zip http://example.com/file.zip
Yükləməni davam etdirmək
Tutalım, böyük bir fayl yükləyirsiniz və qoşulma kəsilir. Problem deyil: sadəcə -c
(continue) flag istifadə edin:
wget -c http://example.com/largefile.iso
wget
yükləməni dayandığı yerdən davam etdirəcək. Həmçinin, bu bir neçə gündən sonra da işləyir, əgər server bu rejimi dəstəkləyirsə.
Bütün saytın yüklənməsi
Bəli, wget
ilə tam saytı (və ya onun nüsxəsini) yükləmək mümkündür. Sadəcə --mirror
opsiyasını istifadə edin:
wget --mirror http://example.com
Bu komanda saytın qovluq strukturunu saxlamaqla onu yükləyəcək. İndi sizin offline rejimdə istifadə üçün saytın "güzgüsü" var.
3. curl
və wget
-in müqayisəsi
Funksiya | curl | wget |
---|---|---|
Çoxlu protokolu dəstəkləmə | Bəli | Yalnız HTTP/HTTPS və FTP |
Yükləməni avtomatik bərpa etmə | Xeyr (skriptlə mümkündür) | Bəli |
API ilə iş | Bəli | Xeyr |
Faylların idarə edilməsinin sadəliyi | Orta | Mükəmməl |
Bütün veb saytların yüklənməsi | Xeyr | Bəli |
Ümumilikdə, əgər sizə API ilə işləmək və ya xüsusi bir şey lazımdırsa, curl
-dan istifadə edin. Amma sizə sadəcə faylları yükləmək lazımdırsa — wget
daha yaxşı seçim olacaq.
4. Praktiki tətbiq
Faylın yüklənməsi və işlənməsi
wget
ilə mətn üzərində işləmə bacarıqlarımızı birləşdiririk:
wget -O data.txt http://example.com/data.txt
cat data.txt | grep "keyword" | awk '{print $2, $4}'
Burada faylı yüklədik, açar sözlə sətirləri filtr etdik və lazımlı sütunları çıxardıq.
API ilə iş
curl
istifadə edərək valyuta məzənnələrini yükləyirik və lazım olan valyutanı tapırıq:
curl -s "https://api.exchangerate-api.com/v4/latest/USD" | grep "EUR"
Bu, valyuta mübadiləsi üçün avtomatlaşdırılmış bir sistem qurmaq istədiyinizdə faydalıdır.
Yeniləmələrin avtomatlaşdırılması
Təsəvvür edin, hər gün faylı yeniləmələrlə yükləməlisiniz. Budur sadə bir skript nümunəsi:
#!/bin/bash
wget -O updates.zip http://example.com/daily-updates.zip
unzip -o updates.zip -d /path/to/updates
Skripti saxlayırıq və onu cron
-a əlavə edirik. İndi o, avtomatik olaraq yerinə yetiriləcək — xoşdur, elə deyilmi?
5. Ümumi səhvlər və xüsusiyyətlər
403 (Forbidden) səhvi:
Bu o zaman baş verir ki, server əlavə başlıqlar tələb edir (məs., User-Agent). Belə həll olunur:
curl -A "Mozilla/5.0" http://example.com
Yönləndirmələr:
Əgər server sizi başqa URL-yə yönləndirirsə, curl
üçün -L
flagını əlavə edin:
curl -L http://example.com
SSL səhvləri:
Bəzən wget
ya da curl
SSL haqqında şikayət edə bilər. Sertifikatın yoxlanmasını söndürə bilərsiniz (amma bu təhlükəsiz deyil!):
wget --no-check-certificate https://example.com
curl -k https://example.com
Bu güclü arsenal ilə siz terminalda interneti zəbt etməyə hazırsınız. İndi heç bir fayl və ya API sizdən qaça bilməz — yükləmə, işləmə və avtomatlaşdırma vaxtıdır!
GO TO FULL VERSION