Utilizar la tecnología con el fin de acceder a una determinada información es una acción que realizamos diariamente desde nuestra casa o incluso en la calle a través de dispositivos móviles y que se ha convertido en algo cotidiano a lo largo de los últimos años. La descarga de información y elementos es algo que hacemos de forma constante ya sea con fines personales, laborales, administrativos o de soporte.
En este caso este tutorial va enfocado cuando nuestro fin es el de realizar la descarga de programas o aplicaciones que serán usadas en diferentes distribuciones de Linux.
En el caso de las distribuciones basadas en terminal, especialmente las distribuciones de servidor, la tarea de descarga puede ser algo más complejo debido al uso de comandos. Para que esto no sea una pesadilla, existen el comando curl, el cual hará que el proceso de descarga sea algo mucho más simple pero completo.
Es por esta razón que hoy en este tutorial Solvetic explicará como podemos hacer uso de cURL en Linux para llevar a cabo tareas de descarga de una forma integral paso a paso.
Curl es un comando integral ya que está en la capacidad de soportar protocolos como DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, Telnet y TFTP.
Del mismo modo, cURL soporta certificados SSL, HTTP POST, HTTP PUT, subidas FTP, cargas HTTP, proxies, HTTP/2, cookies, autenticación de usuario y contraseña (Basic, Plain, Digest, CRAM-MD5, NTLM, Negotiate y Kerberos), transferencia de archivos, proxy tunneling y más.
cURL además puede ser usado en líneas de comando o scripts con la tarea de transferir datos, pero también podemos implementarlo en dispositivos como televisores, enrutadores, impresoras, equipos de audio, teléfonos móviles, reproductores de medios ya que curl se impone como una red troncal de transferencia de Internet para las aplicaciones de software que pueden ser usadas en este tipo de elementos o dispositivos.
- Admite cookies, formularios y SSL.
- Compatible con archivos de configuración.
- Permite la carga múltiple con un solo comando.
- Barra de progreso, limitación de velocidad y detalles del tiempo de descarga integrada
- Soporte IPV6.
A continuación, veremos cómo usar cURL en Linux y así contar con una practica utilidad para la descarga de elementos de la red.
1. Cómo ver la versión de cURL en Linux
Con el uso de los parámetros -V o - -version, accederemos tanto a la versión de curl como a los protocolos y características admitidos en dicha versión:
curl –version
2. Cómo descargar un archivo simple con cURL en Linux
Sera posible obtener contenido de la URL y mostrar su salida en STDOUT con cURL de la siguiente forma:
curl http://www.centos.orgTambién podemos usar curl con las opciones -O y -o, con la primera opción se guardará el archivo en el directorio de trabajo actual con el mismo nombre que en la ubicación remota, mientras que con el segundo parámetro se permite especificar un nombre de archivo y / o ubicación diferente:
curl -O http://dominio.com/archivo.tar.gz #
curl -o archivo.tar.gz http://dominio.com/archivo.tar.gz #
3. Cómo ver encabezados Query HTTP con cURL Linux
Los encabezados HTTP permiten que el servidor web remoto realice el proceso de envió de información adicional sobre sí junto con la solicitud real, esto es usado para ofrecer al cliente detalles sobre cómo se está administrando la solicitud actual.
Para consultar los encabezados HTTP desde un sitio web, ejecutamos lo siguiente:
curl -I www.solvetic.com
4. Cómo almacenar cookies de sitio web con cURL Linux
Es posible a través de comando cURL descargar las cookies de un sitio web y luego verlas, para ello, usaremos el siguiente comando con el fin de guardarlas en un archivo .txt. y luego será posible usar el comando cat para ver el archivo generado:
curl --cookie-jar solveticcookies.txt https://www.solvetic.com/index.html -O cat solveticcookies.txt
5. Cómo limitar tasa de descarga con cURL Linux
Con el fin de evitar que cURL haga un uso indebido del ancho de banda, es posible limitar la velocidad de descarga a la velocidad requerida así como el siguiente ejemplo:
curl --limit-rate 1K http://dominio.com/archivo.tar.gz -OEn este caso se limita a 1 Kilobyte.
6. Cómo seguir ubicación de los encabezados HTTP con cURL Linux
Por defecto, cURL no sigue los encabezados de la ubicación HTTP de los sitios visitados, así, cuando una página web solicitada es movida a otro lugar, se enviará un encabezado de ubicación HTTP como respuesta y se obtendrá la ubicación donde se encuentra la página web real, para ello ejecutamos:
curl http://www.solvetic.comEn la parte inferior observamos que dicho encabezado fue movido.
7. Cómo listar o descargar usando rangos con cURL Linux
La utilidad del comando cURL admite rangos alojados en la URL, con estos rangos, se descargarán los archivos que coincidan dentro de ese rango, es útil para descargar paquetes de los sitios de réplica FTP por ejemplo:
curl ftp://ftp.uk.debian.org/debian/pool/main/[a-z]/
8. Obtener más información de sitio web con comando cURL Linux
Al usar el parámetro -v en el comando cURL, se habilita el modo detallado e imprimirá los detalles de el sitio de una forma completa:
curl -v http://www.solvetic.com
9. Otras acciones con el comando cURL en Linux
curl -C - -O http://dominio.com/archivo.tar.gz
curl -O http://sitio.com/1.html -O http://sitio.com/2.html
curl -x proxy.dominio.com:8080 -U user:password -O http://dominio.com/yourfile.tar.gz
Podemos hacer uso del siguiente comando para descargar archivos a través de un servidor FTP:
curl -u username:password -O ftp://servidorFTP/archivo.tar.gz
En el caso de desear subir un archivo FTP ejecutamos lo siguiente:
curl -u username:password -T archivo.tar.gz ftp://servidorFTP
Será posible usar las cookies almacenadas hacia solicitudes posteriores al mismo sitio, para ello ejecutamos lo siguiente:
curl --cookie solveticcookies.txt https://www.solvetic.com
curl -z 25-Aug-17 http://www.sitio.com/yy.html
Así, el comando cURL nos da una serie de opciones útiles para todo lo relacionado con la descarga y administración de elementos en la red.