===== 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.[[https://www.gnu.org/software/wget/manual/html_node/Robot-Exclusion.html| Leer.]]
wget -np --no-clobber --convert-links --random-wait -r -p -E -e robots=off -U mozilla https://downloads.skullsecurity.org/passwords/