Örneklerle Linux’ta Curl Komutu Nasıl Kullanılır

Merhabalar,

 

Curl, kullanıcı etkileşimi olmadan çalışmak üzere tasarlanmış bir sunucudan veya sunucuya veri aktarmak için bir komut satırı yardımcı programıdır. Curl ile HTTP, HTTPS, SCP, SFTP ve FTP dahil olmak üzere desteklenen protokollerden birini kullanarak verileri indirebilir veya yükleyebilirsiniz. curl, aktarımları sürdürmenize, bant genişliğini sınırlamanıza, proxy desteğine, kullanıcı kimlik doğrulamasına ve çok daha fazlasına izin veren bir dizi seçenek sunar.

 

Bu eğitimde, pratik örnekler ve en yaygın curl seçeneklerinin ayrıntılı açıklamaları aracılığıyla curl aracının nasıl kullanılacağını göstereceğiz.

 

Curl Kurulumu:

 

Curl paketi bugün çoğu Linux dağıtımına önceden yüklenmiştir.

Curl paketinin sisteminizde kurulu olup olmadığını kontrol etmek için konsolunuzu açın, curl yazın ve enter tuşuna basın. Eğer curl kuruluysa, sistem curl yazdıracaktır: daha fazla bilgi için ‘curl –help’ veya ‘curl –manual’ı deneyin. Aksi takdirde, curl komutu bulunamadı gibi bir şey göreceksiniz.

 

Curl kurulu değilse, dağıtımınızın paket yöneticisini kullanarak kolayca kurabilirsiniz.

 

Curl’i Ubuntu ve Debian’a yükleyin:

sudo apt update
sudo apt install curl

Curl’i Centos  ve Fedora’ya yükleyin:

sudo yum install curl

Curl Nasıl Kullanılır

 

curl komutunun sözdizimi aşağıdaki gibidir:

curl [Seçenek] [URL...]

 

En basit haliyle, herhangi bir seçenek olmadan çağrıldığında curl, belirtilen kaynağı standart çıktıya görüntüler.

Örneğin, example.com ana sayfasını almak için şunu çalıştırırsınız:

curl example.com

Komut, terminal pencerenizde example.com ana sayfasının kaynak kodunu yazdıracaktır.

Herhangi bir protokol belirtilmemişse curl, kullanmak istediğiniz protokolü tahmin etmeye çalışır ve varsayılan olarak HTTP olur.

 

Çıktıyı Bir Dosyaya Kaydetme:

curl komutunun sonucunu kaydetmek için -o veya -O seçeneğini kullanın.

Küçük harf -o, dosyayı aşağıdaki örnekte gibi merhaba.html olan önceden tanımlanmış bir dosya adıyla kaydeder.Dosya adını biz belirliyoruz.

Büyük harf -O, dosyayı orijinal dosya adıyla kaydeder.

curl -o merhaba.html example.com
curl -O http://example.com/index.html

 

Birden fazla dosya indirme:

 

Aynı anda birden fazla dosya indirmek için birden çok -O seçeneğini ve ardından indirmek istediğiniz dosyanın URL’sini kullanın.

Aşağıdaki örnekte zimbra nın RHEL ve Ubuntu  versiyonlarını indiriyorum.

curl -O https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_3953.RHEL8_64.20200629025823.tgz \ -O https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_3869.UBUNTU18_64.20190918004220.tgz

 

 

İndirmeye Devam Etme:

-C – seçeneğini kullanarak indirme işlemine devam edebilirsiniz. Bu, büyük bir dosyanın indirilmesi sırasında bağlantınız kesilirse kullanışlıdır ve indirmeyi sıfırdan başlatmak yerine öncekine devam edebilirsiniz.

Örneğin, aşağıdaki komutu kullanarak Zimbra RHEL dosyasını indiriyoruz.

curl -C - -O https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_3953.RHEL8_64.20200629025823.tgz

 

Aniden bağlantınız kesilirse, indirmeye devam edebilirsiniz.

 

 

Bir URL’nin HTTP Header (Başlık)` ını  Alma:

HTTP üstbilgileri, kullanıcı aracısı, içerik türü ve kodlama gibi bilgileri içeren iki nokta üst üste ayrılmış anahtar/değer çiftleridir. Başlıklar, istek veya yanıtla birlikte istemci ve sunucu arasında iletilir.

Yalnızca belirtilen kaynağın HTTP header (başlıklarını) ını almak için -I seçeneğini kullanın:

curl -I --http2 https://www.linuxdata.net

 

 

Bir Web Sitesinin HTTP/2’yi Destekleyip Desteklemediğini Test Etme:

Belirli bir URL’nin yeni HTTP/2 protokolünü destekleyip desteklemediğini kontrol etmek için –http2 seçeneğiyle birlikte -I ile HTTP header’ı getirin:

curl -I --http2 -s https://www.linuxdata.net | grep HTTP

-s seçeneği, curl’e sessiz  çalışmasını ve progress meter (ilerleme ölçer) ve hata mesajlarını gizlemesini söyler.

Uzak sunucu HTTP/2’yi destekliyorsa, curl HTTP/2.0 200’ü yazdırırBizim çalıştırdığımız kodunda değeri bu şekilde benim sunucum HTTP/2 yi destekliyor.

Aksi takdirde, yanıt HTTP/1.1 200’dür ve HTTP/2 desteği yok demektir.

curl 7.47.0 veya daha yeni bir sürümünüz varsa, HTTP/2 varsayılan olarak tüm HTTPS bağlantıları için etkinleştirildiğinden –http2 seçeneğini kullanmanız gerekmez.

 

 

Yönlendirmeleri Takip Etme:

Varsayılan olarak curl, HTTP Konumu başlıklarını takip etmez.

google.com’un www olmayan sürümünü almaya çalışırsanız, sayfanın kaynağını almak yerine www sürümüne yönlendirileceğinizi fark edeceksiniz:

curl google.com

 

-L seçeneği, curl’e, son hedefe ulaşana kadar tüm yönlendirmeleri izlemesini söyler

curl -L google.com

User Agent (Kullanıcı Aracısı9 değiştirme:

Bazen bir dosya indirilirken, uzak sunucu Curl User-Agent’ı engelleyecek veya ziyaretçi cihazına ve tarayıcısına bağlı olarak farklı içerikler döndürecek şekilde ayarlanabilir.

Bunun gibi durumlarda farklı bir tarayıcıyı taklit etmek için -A seçeneğini kullanın.

Örneğin, Firefox 60’ı taklit etmek için aşağıdakini komutu kullanabiliriz.

curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" https://google.com

 

 

Maksimum Aktarım Hızı Belirtme:

–limit-rate seçeneği, veri aktarım hızını sınırlamanıza olanak tanır. Değer, bayt, k ekiyle kilobayt, m ekiyle megabayt ve g son ekiyle gigabayt cinsinden ifade edilebilir.Aşağıdaki örnekte curl, Zimbra RHEL indirme hızını 512 Kb ile sınırlayacaktır

curl --limit-rate 512k -O https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_3953.RHEL8_64.20200629025823.tgz

 

Bu seçenek, mevcut tüm bant genişliğini tüketmesini önlemek için kullanışlıdır.

 

 

Dosyaları FTP ile Aktarma:

Curl,  korunan bir FTP sunucusuna erişmek için -u seçeneğini ile  ve aşağıda gösterildiği gibi kullanıcı adı ve şifreyi belirterek erişim sağlayabilir.

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Giriş yaptıktan sonra komut, kullanıcının ana dizinindeki tüm dosyaları ve dizinleri listeler.

Aşağıdaki sözdizimini kullanarak FTP sunucusundan tek bir dosya indirebilirsiniz

curl -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/file.tar.gz

 

FTP sunucusuna bir dosya yüklemek için -T’yi ve ardından yüklemek istediğiniz dosyanın adını kullanın:

curl -T newfile.tar.gz -u FTP_USERNAME:FTP_PASSWORD ftp://ftp.example.com/

Cookies (Çerez) Gönder:

 

Bazen uzak bir kaynağa erişmek veya bir sorunda hata ayıklamak için belirli tanımlama bilgileriyle bir HTTP isteği yapmanız gerekebilir.

Varsayılan olarak, curl ile bir kaynak istenirken hiçbir cookies (çerez) gönderilmez veya saklanmaz.

 

Cookies (Çerezler)  sunucuya göndermek için -b anahtarını ve ardından bir dosyan’ı kullanın.

Örneğin, Oracle Java JDK rpm dosyasını jdk-10.0.2_linux-x64_bin.rpm indirmek için a değerine sahip oraclelicense adlı bir tanımlama bilgisini iletmeniz gerekir:

curl -L -b "oraclelicense=a" -O http://download.oracle.com/otn-pub/java/jdk/10.0.2+13/19aef61b38124481863b1413dce1855f/jdk-10.0.2_linux-x64_bin.rpm

Proxy’leri Kullanma:

curl, HTTP, HTTPS ve SOCKS dahil olmak üzere farklı proxy türlerini destekler. Bir proxy sunucusu aracılığıyla veri aktarmak için, proxy URL’sinin ardından -x (–proxy) seçeneğini kullanın.

curl -x Proxy-Sunucu-IP-Adresi http://linuxdata.net

Yukarıdaki komut, belirtilen kaynağı Proxy-Sunucu-IP-Adresi  de yazılan proxy  sunucusunu kullanarak indirir

 

Proxy sunucusu kimlik doğrulama gerektiriyorsa, -U (–proxy-user) seçeneğini ve ardından iki nokta üst üste (kullanıcı:parola) ile ayrılmış kullanıcı adı ve parolayı kullanın:

curl -U username:password -x Proxy-Sunucu-IP-Adresi http://linuxdata.net

 

Birden Fazla Dosyayı Sırayla İndirmek:

Curl ile xargs’ı birleştirirseniz, bir dosyadaki URL listesinden dosyaları indirebilirsiniz.

xargs -n 1 curl -O < indir.txt 

 

curl, uzak bir ana bilgisayardan veya uzak bir ana bilgisayara veri aktarmanıza izin veren bir komut satırı aracıdır. Sorunları gidermek, dosyaları indirmek ve daha fazlası için kullanışlıdır. Bu eğitim yazımızında sonuna geldik.Umarım sizler için faydalı olur.

 

Bu eğiticiye oy ver
[Total: 2 Average: 5]
Firat CANOĞLU TAĞ