Archivo

Archive for 24 marzo 2014

Uso indebido de WGET

Extraído de  http://www.linuxtotal.com.mx/?cont=info_admon_017

wget es una herramienta que puede ser usado en multiples  plataformas, en entornos *nix suele venir integrado y en entornos windows hay que descargarla a parte. Es un dowloader con multitud de opciones,  soporta http, https y ftp.

Ejemplos básicos

La forma más básica es descargar un archivo o varios escribiendo las direcciones separadas por espacios, independientemente de los protocolos:

wget http://ejemplo.com/programa.ext [protocolo://servidor.ext/programa.ext] [] []

Incluso podemos usar comodines para descargar un determinado tipo de archivos de un sitio:

wget http://ejemplo.com/*.pdf

También podemos automatizar las descargas guardando en un archivo las direcciones (linea/archivo) a descargar y luego pasándole a wget dicho archivo

(creamos una lista en archivos.txt que serán descargados)
http://ejemplo.com/programa.tar.gz
http://ejemplo.com/rpm/paquete.rpm
ftp://otrositio.com/descargas/distro.iso

(descargamos todos indicando el archivo)
wget -i archivos.txt

Un problema común en las descargas, sobretodo cuando son grandes, es que se interrumpan. Pero estamos de suerte wget lo resuelve con la opción -c:

wget -c http://ejemplo.com/distro.iso
wget -i -c archivos.txt

Otro detalle de wget es que las descargas usan el nombre de la dirección dada. Para solventar esto usamos la opción  -o para darle el nombre que queramos al archivo descargado:

wget -o reporte.txt http://ejemplo.com/programa.tar.gz

También podemos limitar el ancho de banda utilizado por wget:

wget -o /reporte.log --limit-rate=50k ftp://ftp.centos.org/download/centos5-dvd.iso

Si el sitio requiere de usuario/contraseña:

wget –http-user=admin –http-password=contraseña http://ejemplo.com/archivo.mp3

wget realiza 20 intentos de conexión, por defecto, para iniciar la descarga pero podemos varias este comportamiento con -t <num> (si num = inf se entiende infinito)

wget -t 50 http://ejemplo.com/pelicula.mpg
wget -t inf http://ejemplo.com/pelicula.mpg

Ejemplos avanzados

Descargar un sitio web completo:

wget www.sitioweb.ext

Con la opción -p se descargan además todos los elementos externos de la página (CSS, IMGs…)

wget -p www.sitioweb.ext

Para llegar a todos los niveles del sitio hacemos una descarga recursiva -r :

wget -r www.ejemplo.com -o reporte.log

Para indicar el número de niveles de recursividad añadimos la opción <em>-l</em> indicando el número de niveles ('inf' = infinito):

wget -r -l10 www.ejemplo.com -o reporte.log

Uno de los problemas que surgen al descargar un sitio es que los enlaces apuntan a una dirección de internet. Wget lo resuelve con la opción convert-links ó -k  que convertirá los enlaces en locales:

wget --convert-links -r http://www.sitio.com/ (o también) wget -k -r http://www.sitio.com/

Por defecto, el sitio se descarga en el mismo directorio donde se ejecute wget con la opción –P(MAYS) se puede indicar otro directorio:

wget -r -l3 -P/tmp/sitio ftp://www.unsitio.com/

Todas éstas opciones se agrupan en la opción –mirror ó -m equivalente a -r -linf -N (-N obtiene la marca de tiempo original de cada archivo descargado):

wget --mirror http://www.linuxtotal.com.mx/
(o también)
wget -m http://www.linuxtotal.com.mx/

Cuando descargas un sitio completo los archivos de código (.cgi, .asp o .php) pasarán desapercibidos a wget, salvo que se use la opción E o –html-extension que convierta estos archivos a .html:

wget --mirror --convert-links --html-extension http://www.linuxtotal.com.mx
(o tambíen)
wget -m -k -E http://www.linuxtotal.com.mx

La opción H extiende la recursividad a sitios externos a la dirección original:

 wget -H -r -l3 -k -E -p http://miblog.sitiodeblogs.com</span>

Un ejemplo extremo de la potencia de wget

Busca archivos mp3 desde una lista definida, recuerda, un renglón por cada sitio.

wget -r -l1 -H -t1 -nd -N -np -A.mp3 -erobots=off -i sitiosmp3.txt

Detalle de las opciones:

  • [-r -l1] recursivo en solo un nivel, solo buscará un nivel en cada subdirectorio que encuentre por sitio.
  • [-H] seguir enlaces externos.
  • [-t1] -t es igual –tries, solo hará un intento de conexión.
  • [-nd] indica no crear subdirectorios para cada archivo descargado
  • [-N] conserva la fecha y hora (timestamp) del archivo original que se descargue
  • [-np] no parent, no seguir enlaces a directorios superiores desde el actual
  • [-A.mp3] -A indica el tipo de archivo a descargar
  • [-erobots=off] evita los archivos ‘robots.txt’, ya que podrían dificultar la búsqueda
  • [-i sitiosmp3.txt] el archivo con la lista de los sitios desde donde buscar.

PD: http://musik.antville.org/stories/676094/ contiene una lista de blogs donde descargar MP3 😉

Manual de APT

1. apt-cache search <paquete> [options]

<paquete> puede ser:

  • el nombre del paquete con caracteres de expresión regular por ejemplo:
    • $ apt-cache search ^apache2$
      
      apache2 - Apache HTTP Server metapackage
      
  • la descripción del paquete
    • $apt-cache search "Apache HTTP Server"
      
      apache2 - Apache HTTP Server metapackage
      apache2-doc - Apache HTTP Server documentation
      apache2-mpm-event - Apache HTTP Server - event driven model
      apache2-mpm-prefork - Apache HTTP Server - traditional non-threaded model
      apache2-mpm-worker - Apache HTTP Server - high speed threaded model
      apache2.2-common - Apache HTTP Server common files
      
  • el nombre de un fichero del paquete
    • $ apt-file search apache2.conf
      
      apache2.2-common: /etc/apache2/apache2.conf
      apache2.2-common: /usr/share/doc/apache2.2-common/examples/apache2/apache2.conf.gz
      

2. apt-cache show <paquete>

Muesta información sobre un paquete desarrollador, mantenedor, versión, tamaño, dependencias….

3. apt-cache showpkg <paquete>

Muestra información detallada del paquete como dependencias inversas, MD5, nombre del paquete completo…

4. apt-file list <paquete>

Muestra todos los ficheros contenidos en el paquete

5. apt-cache depends<paquete> 

Muestra las dependencias del paquete, obviamente esto es útil antes de instalarlo

6. dpkg -l | grep <paquete>

Con este comando veremos si el paquete en cuestión ya está instalado.

$ <strong>dpkg -l | grep -i apache

7. apt-get install <paquete>

Instala el paquete en el sistema

8. apt-get remove <paquete> / apt-get purge <paquete>

Eliminan un paquete del sistema

  • apt-get remove, no elimina ficheros de configuración
  • apt-get purge, eliminará ficheros de configuración

9. apt-get -u install <paquete>

Actualiza un paquete específico

10. apt-get -u upgrade / aptitude safe-upgrade

Actualiza todos los paquetes del sistema

Categorías:Linux, Sistemas Operativos Etiquetas: ,

Herramientas y Recursos Online