curla-1

Si estás considerando escribir un script que requiera descargar (o cargar) archivos a través de una red, uno de tus mejores amigos será el comando curl.

El comando curl es bastante útil y flexible. El objetivo de la herramienta es transferir datos, sin interacción del usuario, hacia o desde un servidor, utilizando uno de los muchos protocolos admitidos. Es esa lista de protocolos que ayuda a curl a ser tan flexible, ya que el comando admite:

  • DICT
  • FILE
  • FTP
  • FTPS
  • GOPHER
  • HTTP
  • HTTPS
  • IMAP
  • IMAPS
  • LDAP
  • LDAPS
  • POP3
  • POP3S
  • RTMP
  • RTSP
  • SCP
  • SMB
  • SMBS
  • SMTP
  • SMTPS
  • TELNET
  • TFTP

Esa es una lista saludable de posibilidades. También significa que curl puede transferir casi cualquier tipo de datos. Curl incluso puede mostrar el código fuente de una URL. Todo esto sin requerir la interacción del usuario (una característica crucial para la creación de scripts).

Quiero mostrarte cómo hacer uso de este comando (uno que encontrará con frecuencia en howtos y scripts de Linux). Lo demostraré en el sistema operativo Elementary, pero el comando funciona en casi todas las distribuciones de Linux disponibles. Curl también está disponible en macOS y Windows.

Instalando curl

Tu distribución de Linux debe tener Curl instalado por defecto. Si no, la instalación es bastante simple. En un derivado de Debian, el comando de instalación sería:

sudo apt install curl

Puedes verificar la instalación emitiendo el comando curl -version. Deberías ver el número de versión de la aplicación instalada (en mi máquina es 7.47.0).

Usando curl

Primero veamos cómo se puede usar curl en su forma más simple. Digamos que quieres ver el origen de un sitio web. Usaremos el sitio curl como un ejemplo. Emite el comando:

curl https://curl.haxx.se | less

Ahora puedes desplazarte por el HTML de ese sitio (Figura A).

curla

Esta es una gran manera de descubrir cómo se ha creado un sitio o incluso solucionar tus propios sitios

Por supuesto, ese ejemplo es bastante limitado. Usemos curl para desplegar un archivo desde un sitio. Sigamos con el mismo ejemplo. Supongamos que deseas descargar el HTML del sitio curl para verlo más tarde. Para esto, usaremos el indicador -o así:

curl https://curl.haxx.se -o curl.html

El comando anterior descargaría el código HTML del sitio curl y lo guardaría como curl.html. Por supuesto, curl no solo es capaz de descargar HTML fuente. Supongamos que tiene un archivo que deseas descargar de un sitio. Curl puede manejar esto así:

curl http://SERVER_ADDRESS/FILENAME -o FILENAME

Donde SERVER_ADDRESS es la URL del servidor y FILENAME es el nombre del archivo que se descargará. Digamos, por ejemplo, que deseas descargar la última versión de Ubuntu Server. Eso se puede hacer así:

curl http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso -o ubuntu-server-18.04.iso

Si ese archivo está protegido por contraseña, curl puedes manejarlo de la siguiente manera:

curl -u USERNAME:PASSWORD http://SERVER_ADDRESS -o FILENAME

Donde:

USERNAME es el nombre de usuario en el servidor.
PASSWORD es la contraseña para el usuario en el servidor.
FILENAME es el archivo que se descargará.
SERVER_ADDRESS es el enlace directo al archivo.
También puedes usar curl con un servidor FTP. Supongamos que necesitas descargar un archivo de un servidor FTP que está protegido por contraseña. El comando para esto sería:

curl ftp://SERVER_ADDRESS/FILENAME -user USERNAME:PASSWORD -o FILENAME

Dónde:

SERVER_ADDRESS es la dirección del servidor FTP.
FILENAME es el nombre del archivo que se descargará.
USERNAME es el nombre de usuario en el servidor FTP.
PASSWORD es la contraseña para el usuario en el servidor FTP.
Para cargar un archivo a un servidor FTP, el comando sería:

curl -T FILENAME SERVER_ADDRESS -user USERNAME: PASSWORD

Nuevamente donde:

SERVER_ADDRESS es la dirección del servidor FTP.
FILENAME es el nombre del archivo que se descargará.
USERNAME es el nombre de usuario en el servidor FTP.
PASSWORD es la contraseña para el usuario en el servidor FTP.
En algún momento, los desarrolladores de curl quitaron el soporte de SFTP de libcurl. Si necesitas descargar un archivo, a través de SSH, deberás usar el comando sftp.

Por qué usar curl

Uno de los mayores beneficios de curl es que puede usarse sin interacción. Por eso, es perfectamente adecuado para secuencias de comandos. Te encontrarás con muchas instancias de scripts de instalador de Linux que hacen uso de curl. A medida que se ejecuta una secuencia de comandos del instalador, es muy posible que curl haga lo suyo descargando las dependencias necesarias. Entonces, si estás escribiendo un script Linux bash (o instalador), curl seguramente será tu amigo. Para obtener más información sobre curl (y hay una gran cantidad), ejecuta el comando man curl y lee la página del manual.

 

Fuente: Original | maslinux

¿Quién está en línea?

Hay 8880 invitados y ningún miembro en línea