GNU/Linux >> Belajar Linux >  >> Linux

15 Contoh Perintah Linux cURL Praktis (Contoh Unduhan cURL)

cURL adalah paket perangkat lunak yang terdiri dari alat baris perintah dan pustaka untuk mentransfer data menggunakan sintaks URL.

cURL mendukung berbagai protokol seperti, DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet, dan TFTP.

Artikel ini memberikan 15 contoh penggunaan cURL praktis.

1. Unduh Satu File

Perintah berikut akan mendapatkan konten URL dan menampilkannya di STDOUT (yaitu di terminal Anda).

$ curl http://www.centos.org

Untuk menyimpan output dalam file, Anda mengarahkan ulang seperti yang ditunjukkan di bawah ini. Ini juga akan menampilkan beberapa statistik unduhan tambahan.

$ curl http://www.centos.org > centos-org.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 27329    0 27329    0     0   104k      0 --:--:-- --:--:-- --:--:--  167k

2. Simpan Output cURL ke file

Kita dapat menyimpan hasil dari perintah curl ke file dengan menggunakan opsi -o/-O.

  • -o (huruf kecil o) hasilnya akan disimpan dalam nama file yang disediakan di baris perintah
  • -O (huruf besar O) nama file di URL akan diambil dan akan digunakan sebagai nama file untuk menyimpan hasil
$ curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html

Sekarang halaman gettext.html akan disimpan dalam file bernama 'mygettext.html'. Anda juga dapat mencatat bahwa saat menjalankan curl dengan opsi -o, ini akan menampilkan pengukur kemajuan untuk unduhan sebagai berikut.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 66 1215k   66  805k    0     0  33060      0  0:00:37  0:00:24  0:00:13 45900
100 1215k  100 1215k    0     0  39474      0  0:00:31  0:00:31 --:--:-- 68987

Ketika Anda menggunakan curl -O (huruf besar O), itu akan menyimpan konten dalam file bernama 'gettext.html' itu sendiri di mesin lokal.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html

Catatan:Ketika curl harus menulis data ke terminal, itu menonaktifkan Pengukur Kemajuan, untuk menghindari kebingungan dalam pencetakan. Kita dapat menggunakan opsi ‘>’|’-o’|’-O’ untuk memindahkan hasilnya ke file.

Mirip dengan cURL, Anda juga dapat menggunakan wget untuk mengunduh file. Lihat contoh wget untuk memahami cara menggunakan wget secara efektif.

3. Ambil Banyak File sekaligus

Kita dapat mengunduh banyak file dalam satu bidikan dengan menentukan URL pada baris perintah.
Sintaks:

$ curl -O URL1 -O URL2

Perintah di bawah ini akan mengunduh index.html dan gettext.html dan menyimpannya dengan nama yang sama di bawah direktori saat ini.

$ curl -O http://www.gnu.org/software/gettext/manual/html_node/index.html -O http://www.gnu.org/software/gettext/manual/gettext.html

Harap dicatat bahwa ketika kami mengunduh banyak file dari server yang sama seperti yang ditunjukkan di atas, curl akan mencoba menggunakan kembali koneksi.

4. Ikuti Header Lokasi HTTP dengan opsi -L

Secara default, CURL tidak mengikuti header Lokasi HTTP. Ini juga disebut sebagai Redirect. Ketika halaman web yang diminta dipindahkan ke tempat lain, maka header Lokasi HTTP akan dikirim sebagai Respons dan akan ada di mana halaman web sebenarnya berada.

Misalnya, ketika seseorang mengetik google.com di browser dari India, itu akan secara otomatis dialihkan ke 'google.co.in'. Ini dilakukan berdasarkan header Lokasi HTTP seperti yang ditunjukkan di bawah ini.

$ curl http://www.google.com

<TITLE>302 Moved</TITLE>
<H1>302 Moved</H1>
The document has moved
<A HREF="http://www.google.co.in/">here</A>

Output di atas mengatakan bahwa dokumen yang diminta dipindahkan ke ‘http://www.google.co.in/’.

Kita dapat memaksa curl untuk mengikuti pengalihan menggunakan opsi -L, seperti yang ditunjukkan di bawah ini. Sekarang ia akan mengunduh kode sumber html google.co.in.

$ curl -L http://www.google.com

5. Lanjutkan/Lanjutkan Unduhan Sebelumnya

Menggunakan opsi curl -C, Anda dapat melanjutkan unduhan yang sudah dihentikan karena suatu alasan. Ini akan membantu saat Anda mengunduh file besar, dan unduhan terputus.

Jika kita mengatakan '-C -', maka curl akan menemukan dari mana untuk memulai melanjutkan unduhan. Kami juga dapat memberikan offset '-C '. Byte offset yang diberikan akan dilewati dari awal untuk file sumber.

Mulai unduhan besar menggunakan curl, dan tekan Ctrl-C untuk menghentikannya di antara unduhan.

$ curl -O http://www.gnu.org/software/gettext/manual/gettext.html
##############             20.1%

Catatan:-# digunakan untuk menampilkan bilah kemajuan alih-alih pengukur kemajuan.

Sekarang unduhan di atas dihentikan pada 20,1%. Dengan menggunakan "curl -C -", kita dapat melanjutkan unduhan dari tempat yang ditinggalkan sebelumnya. Sekarang unduhan berlanjut dari 20,1%.

curl -C - -O http://www.gnu.org/software/gettext/manual/gettext.html
###############            21.1%

6. Batasi Kecepatan Transfer Data

Anda dapat membatasi jumlah transfer data menggunakan opsi –limit-rate. Anda dapat menentukan kecepatan transfer maksimum sebagai argumen.

$ curl --limit-rate 1000B -O http://www.gnu.org/software/gettext/manual/gettext.html

Perintah di atas membatasi transfer data hingga 1000 Bytes/detik. curl dapat menggunakan kecepatan transfer yang lebih tinggi untuk rentang waktu yang singkat. Tapi rata-rata, itu akan mencapai 1000B/detik.

Berikut ini adalah pengukur kemajuan untuk perintah di atas. Anda dapat melihat bahwa kecepatan saat ini mendekati 1000 Bytes.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  1 1215k    1 13601    0     0    957      0  0:21:40  0:00:14  0:21:26   999
  1 1215k    1 14601    0     0    960      0  0:21:36  0:00:15  0:21:21   999
  1 1215k    1 15601    0     0    962      0  0:21:34  0:00:16  0:21:18   999

7. Unduh file hanya jika diubah sebelum/setelah waktu yang ditentukan

Kita bisa mendapatkan file yang dimodifikasi setelah waktu tertentu menggunakan opsi -z di curl. Ini akan bekerja untuk FTP &HTTP.

$ curl -z 21-Dec-11 http://www.example.com/yy.html

Perintah di atas akan mengunduh yy.html hanya jika diubah lebih lambat dari tanggal dan waktu yang ditentukan

$ curl -z -21-Dec-11 http://www.example.com/yy.html

Perintah di atas akan mengunduh yy.html, jika diubah sebelum tanggal dan waktu yang ditentukan.

Silakan merujuk 'man curl_getdate' untuk berbagai sintaks yang didukung untuk ekspresi tanggal

8. Lewati Otentikasi HTTP di cURL

Terkadang, situs web akan memerlukan nama pengguna dan kata sandi untuk melihat konten (dapat dilakukan dengan file .htaccess). Dengan bantuan opsi -u, kami dapat meneruskan kredensial tersebut dari cURL ke server web seperti yang ditunjukkan di bawah ini.

$ curl -u username:password URL

Catatan:Secara default curl menggunakan Otentikasi HTTP Dasar. Kita dapat menentukan metode otentikasi lain menggunakan –ntlm | – intisari.

9. Unduh File dari server FTP

cURL juga dapat digunakan untuk mengunduh file dari server FTP. Jika jalur FTP yang diberikan adalah direktori, secara default ia akan mencantumkan file di bawah direktori tertentu.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/xss.php

Perintah di atas akan mengunduh file xss.php dari server ftp dan menyimpannya di direktori lokal.

$ curl -u ftpuser:ftppass -O ftp://ftp_server/public_html/

Di sini, URL yang diberikan merujuk ke direktori. Jadi cURL akan mencantumkan semua file dan direktori di bawah URL yang diberikan

Jika Anda baru mengenal FTP/sFTP, lihat tutorial ftp sftp untuk pemula.

10. Daftar/Unduh menggunakan Rentang

cURL mendukung rentang yang akan diberikan dalam URL. Saat rentang diberikan, file yang cocok dengan rentang tersebut akan diunduh. Akan sangat membantu untuk mengunduh paket dari situs mirror FTP.

$ curl   ftp://ftp.uk.debian.org/debian/pool/main/[a-z]/

Perintah di atas akan menampilkan semua paket dari rentang a-z di terminal.

11. Unggah File ke Server FTP

Curl juga dapat digunakan untuk mengunggah file ke server FTP dengan opsi -T.

$ curl -u ftpuser:ftppass -T myfile.txt ftp://ftp.testserver.com

Perintah di atas akan mengupload file bernama myfile.txt ke server FTP. Anda juga dapat mengunggah beberapa file sekaligus menggunakan operasi jangkauan.

$ curl -u ftpuser:ftppass -T "{file1,file2}" ftp://ftp.testserver.com

Secara opsional kita dapat menggunakan "." untuk mendapatkan input dari STDIN dan mentransfer ke remote.

$ curl -u ftpuser:ftppass -T - ftp://ftp.testserver.com/myfile_1.txt

Perintah di atas akan mendapatkan input dari pengguna dari Input Standar dan menyimpan konten di server ftp dengan nama 'myfile_1.txt'.

Anda dapat memberikan satu '-T' untuk setiap URL dan pasangan menentukan apa yang akan diunggah di mana.

12. Informasi Lebih Lanjut menggunakan Opsi Verbose dan Trace

Anda dapat mengetahui apa yang terjadi menggunakan opsi -v. -v opsi mengaktifkan mode verbose dan itu akan mencetak detailnya

curl -v http://google.co.in

Perintah about akan menampilkan berikut

* About to connect() to www.google.co.in port 80 (#0)
*   Trying 74.125.236.56... connected
* Connected to www.google.co.in (74.125.236.56) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.21.0 (i486-pc-linux-gnu) libcurl/7.21.0 OpenSSL/0.9.8o zlib/1.2.3.4 libidn/1.15 libssh2/1.2.6
> Host: www.google.co.in
> Accept: */*
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Date: Tue, 10 Apr 2012 11:18:39 GMT
< Expires: -1
< Cache-Control: private, max-age=0
< Content-Type: text/html; charset=ISO-8859-1
< Set-Cookie: PREF=ID=7c497a6b15cc092d:FF=0:TM=1334056719:LM=1334056719:S=UORpBwxFmTRkbXLj; expires=Thu, 10-Apr-2014 11:18:39 GMT; path=/; domain=.google.co.in
.
.

Jika Anda membutuhkan informasi lebih detail maka Anda dapat menggunakan opsi –trace. Opsi pelacakan akan mengaktifkan dump jejak penuh dari semua data masuk/keluar ke file yang diberikan

=> Send header, 169 bytes (0xa9)
0000: 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a GET / HTTP/1.1..
0010: 55 73 65 72 2d 41 67 65 6e 74 3a 20 63 75 72 6c User-Agent: curl
..
0060: 2e 32 2e 33 2e 34 20 6c 69 62 69 64 6e 2f 31 2e .2.3.4 libidn/1.
0070: 31 35 20 6c 69 62 73 73 68 32 2f 31 2e 32 2e 36 15 libssh2/1.2.6
0080: 0d 0a 48 6f 73 74 3a 20 77 77 77 2e 67 6f 6f 67 ..Host: www.goog
0090: 6c 65 2e 63 6f 2e 69 6e 0d 0a 41 63 63 65 70 74 le.co.in..Accept
00a0: 3a 20 2a 2f 2a 0d 0a 0d 0a                      : */*....
== Info: HTTP 1.0, assume close after body
<= Recv header, 17 bytes (0x11)
0000: 48 54 54 50 2f 31 2e 30 20 32 30 30 20 4f 4b 0d HTTP/1.0 200 OK.
0010: 0a

Opsi verbose dan trace ini akan berguna ketika curl gagal karena beberapa alasan dan kami tidak tahu mengapa.

13. Mendapatkan Definisi Kata menggunakan Protokol DICT

Anda dapat menggunakan cURL untuk mendapatkan definisi kata dengan bantuan protokol DICT. Kita perlu memberikan URL Server Kamus ke sana.

$ curl dict://dict.org/d:bash

Perintah di atas akan mencantumkan arti bash sebagai berikut

151 "Bash" gcide "The Collaborative International Dictionary of English v.0.48"
Bash \Bash\, v. t. [imp. & p. p. {Bashed}; p. pr. & vb. n.
   {Bashing}.] [Perh. of imitative origin; or cf. Dan. baske to
   strike, bask a blow, Sw. basa to beat, bas a beating.]
   To strike heavily; to beat; to crush. [Prov. Eng. & Scot.]
   --Hall Caine.
   [1913 Webster]

         Bash her open with a rock.               --Kipling.
   [Webster 1913 Suppl.]
.
151 "Bash" gcide "The Collaborative International Dictionary of English v.0.48"
Bash \Bash\, n.
   1. a forceful blow, especially one that does damage to its
      target.
      [PJC]
.
.

Sekarang Anda dapat melihat bahwa itu menggunakan "The Collaborative International Dictionary of English". Ada banyak kamus yang tersedia. Kami dapat membuat daftar semua kamus menggunakan

$ curl dict://dict.org/show:db

jargon "The Jargon File (version 4.4.7, 29 Dec 2003)"
foldoc "The Free On-line Dictionary of Computing (26 July 2010)"
easton "Easton's 1897 Bible Dictionary"
hitchcock "Hitchcock's Bible Names Dictionary (late 1800's)"
bouvier "Bouvier's Law Dictionary, Revised 6th Ed (1856)"

Sekarang untuk menemukan arti sebenarnya dari Bash di komputer kita dapat mencari bash di kamus “foldoc” sebagai berikut

$ curl dict://dict.org/d:bash:foldoc

Hasilnya adalah,

bash

   Bourne Again SHell.  {GNU}'s {command interpreter} for {Unix}.
   Bash is a {Posix}-compatible {shell} with full {Bourne shell}
   syntax, and some {C shell} commands built in.  The Bourne
   Again Shell supports {Emacs}-style command-line editing, job
   control, functions, and on-line help.  Written by Brian Fox of
   {UCSB}.

Untuk detail lebih lanjut mengenai DICT, silakan baca RFC2229

14. Gunakan Proxy untuk Mengunduh File

Kita dapat menentukan cURL untuk menggunakan proxy untuk melakukan operasi tertentu menggunakan opsi -x. Kita perlu menentukan host dan port proxy.

$ curl -x proxysever.test.com:3128 http://google.co.in

15. Kirim Email menggunakan Protokol SMTP

cURL juga dapat digunakan untuk mengirim email menggunakan protokol SMTP. Anda harus menentukan from-address, to-address, dan ip-address mailserver seperti yang ditunjukkan di bawah ini.

$ curl --mail-from [email protected] --mail-rcpt [email protected] smtp://mailserver.com

Setelah perintah di atas dimasukkan, itu akan menunggu pengguna untuk memberikan data ke email. Setelah Anda menyusun pesan, ketik . (titik) sebagai baris terakhir, yang akan segera mengirimkan email.

Subject: Testing
This is a test mail
.

Linux
  1. Perintah cp di Linux:7 Contoh Praktis

  2. Perintah Shutdown Linux:5 Contoh Praktis

  3. 5 Contoh Praktis Perintah dd di Linux

  1. Contoh perintah curl Linux – Bagian 2

  2. Contoh perintah curl Linux – Bagian 1

  3. 10 Contoh Perintah Linux nm Praktis

  1. Perintah Wget di Linux dengan Contoh

  2. Perintah Curl di Linux dengan Contoh

  3. 16 Contoh Praktis perintah LS Linux untuk Pemula