Table of Contents

Formas alternativas de descargar archivos por consola

Dependiendo del sistema donde estemos trabajando es posible que no podamos instalar gestores de descarga por determinados motivos. Para ello, mostramos algunas formas de descargar ficheros alternativas con utilidades que se pueden encontrar comúnmente en instalaciones mínimas.

Fichero a descargar: http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3

aria2c

aria2c -o temuten.mp3 http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3

NetCat

echo -ne "GET /public/mp3/Queen/Queen%20%27Mustapha%27.mp3 HTTP/1.0\r\nHost: 195.122.253.112\r\n\r\n" | nc 195.122.253.112 80 | perl -pe 'BEGIN { while (<>) { last if $_ eq "\r\n"; } }' > fichero.mp3

Bash Sockets

WGET_HOSTNAME='195.122.253.112'
FILE='/public/mp3/Queen/Queen%20%27Mustapha%27.mp3'
OUTPUT='file.mp3'
 
exec {HTTP_FD}<>/dev/tcp/${WGET_HOSTNAME}/80
echo -ne 'GET' $FILE 'HTTP/1.1\r\nHost: '\
    ${WGET_HOSTNAME}'\r\nUser-Agent: '\
    'bash/'${BASH_VERSION}'\r\n\r\n'  >&${HTTP_FD}
sed -e '1,/^.$/d' <&${HTTP_FD} > $OUTPUT

Python

python
Python 2.6.6 (r266:84292, Feb 21 2013, 23:54:59)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os,sys,urllib
>>> f = open (os.path.basename ("http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3"), 'w')
>>> f.write (urllib.urlopen ("http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3").read ())
>>> f.close ()
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> exit()

En forma de script.

#!/usr/bin/env python
import os,sys,urllib
f = open (os.path.basename (sys.argv[1]), 'w')
f.write (urllib.urlopen (sys.argv[1]).read ())
f.close ()
python script.py http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3

Lynx

lynx -source http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3 > fichero.mp3

Extraer las direcciones de los enlaces de páginas webs (completa rutas relativas).

wget -k "https://downloads.skullsecurity.org/passwords/"
lynx -dump index.html | grep -oi "http.*\|ftp.*" > URLs_ficheros

Perl

#!/usr/bin/perl
 
use LWP::Simple;
 
#-- fetch the zip and save it as perlhowto.zip
my $status = getstore("http://195.122.253.112/public/mp3/Queen/Queen%20%27Mustapha%27.mp3", "temuten.mp3");
 
if ( is_success($status) )
{
  print "file downloaded correctly\n";
}
else
{
  print "error downloading file: $status\n";
}

Wget (ignorar robots.txt)

wget de manera predeterminada sigue las restricciones impuestas por el fichero robots.txt al usar la opción recursiva “-r”. Esto impide la descarga de ficheros enlazados. Se debe indicar la opción “robots=off” para resolver el problema. Leer.

wget -np --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla https://downloads.skullsecurity.org/passwords/