← Vissza

Curl – Bevezetés

A curl egy eszköz adatátvitelre szerverek között, számos protokollt támogat:

HTTP, HTTPS, FTP, IMAP, LDAP, POP3, SCP, SFTP, SMB, SMTP, stb...

Forrás: GitHub | Hivatalos oldal

Curl – Alap opciók

Hasznos opciók a curl parancshoz:

-o <file>    # --output: fájlba írás  
-u user:pass # --user: autentikáció  

-v   # --verbose: részletes futás  
-vv  # még részletesebb  
-s   # --silent: nincs progress/error  
-S   # --show-error: hibák megjelenítése silent módban  

-i   # --include: HTTP fejlécek is  
-I   # --head: csak fejlécek

Curl – Kérések

HTTP kérések beállítása:

-X POST   # --request: POST kérés  
-L        # követi a redirecteket  
-F        # --form: multipart/form-data

Curl – Adatküldés

Adatok küldése POST vagy GET módszerrel:

-d 'data'     # --data: POST adat  
-d @file      # fájlból adatküldés  
-G            # -d adat GET módszerrel

Curl – Fejlécek

HTTP fejlécek beállítása:

-A <str>       # --user-agent  
-b name=val    # --cookie érték  
-b FILE        # --cookie fájlból  
-H "X-Foo: y"  # --header  
--compressed   # gzip/deflate használata

Curl – SSL opciók

SSL/TLS kapcsolatok beállítása:

--cacert <file>   # CA tanúsítvány  
--capath <dir>    # CA könyvtár  

-E, --cert <cert> # kliens cert fájl  
--cert-type       # der/pem/eng  
-k, --insecure    # self-signed engedélyezése

Curl – GET/HEAD

HTTP GET és HEAD kérések példái:

curl -I https://quickref.me              # HEAD request  
curl -v -I https://quickref.me           # részletes HEAD request  
curl -X GET https://quickref.me          # explicit GET  
curl --noproxy 127.0.0.1 http://stackoverflow.com # proxy nélkül  
curl --connect-timeout 10 -I -k https://quickref.me # timeout beállítás  
curl --verbose --header "Host: www.mytest.com:8182" quickref.me # extra header  
curl -k -v https://www.google.com        # válasz fejlécekkel

Curl – Több fájl feltöltése

Több fájl feltöltése form-data használatával:

curl -v --include \
--form key1=value1 \
--form upload=@localfilename URL

Curl – JSON válasz formázása

JSON válasz szépen formázva Python eszközzel:

curl -XGET http://${elasticsearch_ip}:9200/_cluster/nodes | python -m json.tool

Curl – POST kérések

Adatok küldése POST módszerrel:

curl -d "name=username&password=123456" <URL>  
curl <URL> -H "content-type: application/json" -d "{ \"woof\": \"bark\"}"

Curl – Script telepítés

RVM telepítése scriptből:

curl -sSL https://get.rvm.io | bash

Curl – Haladó használat

Haladó példák:

curl -L -s http://ipecho.net/plain  
curl -u $username:$password http://repo.dennyzhang.com/README.txt  
curl -v -F key1=value1 -F upload=@localfilename <URL>  
curl -k -v --http2 https://www.google.com/  
curl -T cryptopp552.zip -u test:test ftp://10.32.99.187/  
curl -u test:test ftp://10.32.99.187/cryptopp552.zip -o cryptopp552.zip  
curl -v -u admin:admin123 --upload-file package1.zip http://myserver:8081/dir/package1.zip

Curl – Weboldal válaszidő

Weboldal válaszidő mérése:

curl -s -w '\nLookup time:\t%{time_namelookup}\nConnect time:\t%{time_connect}\nAppCon time:\t%{time_appconnect}\nRedirect time:\t%{time_redirect}\nPreXfer time:\t%{time_pretransfer}\nStartXfer time:\t%{time_starttransfer}\n\nTotal time:\t%{time_total}\n' \
-o /dev/null https://www.google.com

Curl – Erőforrás ellenőrzése

Ellenőrzi, hogy egy távoli erőforrás elérhető-e:

curl -o /dev/null --silent -Iw "%{http_code}" https://example.com/my.remote.tarball.gz

Curl – Fájl letöltés

PNG fájlok letöltése weboldalról:

curl https://example.com | \
grep --only-matching 'src="[^"]*.[png]"' | \
cut -d \" -f2 | \
while read i; do curl https://example.com/"${i}" -o "${i##*/}"; done

Curl – Letöltés és fájl mentés

Fájlok letöltése és mentése:

curl --remote-name "https://example.com/linux-distro.iso"  
curl --remote-name "http://example.com/index.html" --output foo.html  
curl --remote-name --continue-at -"https://example.com/linux-distro.iso"  
curl "https://www.{example,w3,iana}.org/index.html" --output "file_#1.html"  
curl "https://{foo,bar}.com/file_[1-4].webp" --output "#1_#2.webp"

Curl – Alap autentikáció

Felhasználónév/jelszó alapú autentikáció:

curl --user username:password http://example.com/  
curl -u username:password http://example.com/

Curl – Kimenet fájlba

Kimenet fájlba írása stdout helyett:

curl -o file http://url/file  
curl --output file http://url/file

Curl – Fejlécek letöltése

Csak a HTTP fejlécek megjelenítése:

curl -I url

Curl – Távoli script futtatása

Távoli script letöltése és futtatása:

curl -s http://url/myscript.sh