Etiquetado: línea de comandos

Wget 2. Descargas Recursivas

Para variar, en esta ocasión intentaré ser breve, mientras seguimos explorando los usos de mi gestor de descargas favorito: Gnu Wget.
Hagamos un breve repaso de la primera parte, si no entiendes estos comandos, te recomiendo que estudies la 1a. lección completa.

1. Descargar un sólo archivo.

wget http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.1. Por si se nos corta la descarga, continuar y ver progreso

wget -c -v http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.2. Limitar la velocidad de descarga.

wget -cv --limit-rate=10k http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.3. Descarga en Background (segundo plano).

wget -b -cv http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.4. En Background, Continuando, Volcando información y Limitando Rate (tasa).

wget -b -cv --limit-rate=5k http://devel.trisquel.info/trisquel_3.5RC_i686.iso

1.5. Descargar página con todos los archivos de los que depende para mostrarse correctamente.

wget -pE -cv http://mexico.indymedia.org/?article1288

Hasta aquí hemos descargado un sólo elemento, o una página con todos los archivos asociados, ahora veremos unos cuantos ejemplos solamente de como usar wget para descargar colecciones de páginas.

Sigue leyendo

Tutorial de WGet (gestor de descargas) 1a. parte

Es un hecho, la línea de comandos puede ser un poquito difícil de aprender, pero no necesariamente. Hay herramientas con las que podemos comenzar a jugar e ir tomando confianza, además de comprobar su utilidad y eficacia.

Con esto quiero decir, que si enseñar introducir a la línea de comandos de GNU/Linux (o cualquier herramienta GNU, aunque el núcleo no sea Linux), empieza por emular los viejos cursos de MS-DOS con las típicas órdenes para listar directorios, cambiar de directorio, abrir un documento, y de ahí lanzamos a los compas a las páginas de manual, o a los foros que muchas veces no son de gran ayuda; la gente no va a obtener resultados tangibles en el corto plazo.

A mí una herramienta GNU que me ha encantado desde la primera vez que la usé es WGet. La verdad es que si miramos su página "man" (man wget) nos puede abrumar la cantidad de opciones que encontraremos, cuando en realidad su uso cotidiano puede ser de lo más amigable y sencillo. Sin embargo es enormemente flexible, y con un poco de paciencia y ganas de trastear, podemos adaptarla a los más variados usos. Como hacer mirrors completos de sitios para leerlos sin conexión o transportarlos en nuestra USB, o incluso crear nuestro propio gestor de descargas, y que funcione incluso, en windows.

Ejemplo 1. Descargar un sólo archivo.

Digamos, la nueva versión de Trisquel GNU/Linux, una derivación de Ubuntu española, pero 100% Libre, no incluye software privativo, en contraste con la distribución de canonical.

wget http://gnulinuxlibre.net/wp-content/uploads/mirror/trisquel/trisquel_3.0.1_i686.iso

Más simple no podría ser. Pero tomemos en cuenta que la descarga es un tanto larga, sobre todo si, por ejemplo, no podemos esperar hasta que termine, digamos que estamos en el café internet. ¿cómo le hacemos para continuar la descarga desde otro sitio, o en otra ocasión? Variamos el comando un poquitín, así:

Ejemplo 1.1. Continuar descargas y Ver progreso:

wget -c -v http://gnulinuxlibre.net/wp-content/uploads/mirror/trisquel/trisquel_3.0.1_i686.iso

En realidad, podemos ver que la línea de comandos puede ser, de una lógica muy sencilla, sólo hemos agregado las opciones:

-c   continuar        y     -v    verbosity

¿Simple no? No puedo recordar la cantidad de veces que no tenía ni mi propia compu y en donde me dejaban trabajar, no siempre había internet, así que cuando podía pagarme una o dos horas de renta del café internet, mientras leía mis correos y publicaba notas, tenía funcionando el GNU WGet como gestor de descargas, sin importar que en ese café no pudiese instalar mi programa favorito de entonces: Firefox con el plugin DownThemAll! que era lo mejor que conocía antes de wget.

Sólo me bastaba con traer mi USB a donde quiera que fuese, con mi versión de GNU WGet para windows en una carpeta, desde la que podía correr desde la ventanita de MS-DOS mi descarga, y wget iba poniendo todo en la misma carpeta en que lo ejecutaba. Por si no te habías dado cuenta, dije GNU WGet en Windows, porque las herramientas GNU no dependen forzosamente del kernel Linux, aunque Linux sin GNU, no sea funcional. Claro que GNU con Linux es una mejor combinación, pero rara vez podía usar GNU/Linux en las compus de mis amigos y familia, por no decir que nunca me dieron chance en un café internet.

Justo entonces ¿qué pasa cuando en la casa de amigos o familia, no seria justo usar todo el ancho de banda disponible? Digamos que nos dan chance de ir descargando lo que queramos pero nuestrx amigx necesita usar al mismo tiempo el internet. De nuevo, es muy simple, limitamos la tasa (rate) de descarga con una opción o switch:

Ejemplo 1.2. Limitar la tasa de descarga.

wget -cv --limit-rate=10k http://gnulinuxlibre.net/wp-content/uploads/mirror/trisquel/trisquel_3.0.1_i686.iso

En este caso, le pedí que descargue a sólo 10 kilobytes por segundo, pero dependiendo del ancho de banda disponible, podemos especificar más o menos.

A veces me pasó en los cafés internet que eran unos fantoches ignorantes que no me permitían tener abierta una línea de comandos porque sospechaban que estaba hackeando o les daba miedo de que hacía cosas raras. Entonces disponía de sólo un minuto para entrar en la ventanita de MS-DOS, ir a mi carpeta en la USB donde tenía mi GNU Wget, y disparar el comando, pero podía dejarlo descargando sin tener abierta la terminal. En esos casos, agregaba otro switch al comando.

Ejemplo 1.3. Descarga en Background (segundo plano).

wget -b -cv http://gnulinuxlibre.net/wp-content/uploads/mirror/trisquel/trisquel_3.0.1_i686.iso

Del mismo modo que con las anteriores, continuaba la descarga del archivo hasta completarla. Una vez terminada, el proceso se cerraba. Sólo que no podía ver en pantalla el progreso pero eso me permitía cerrar la terminal inmediatamente. Y como yo les pagaba por usar la PC, no estaba dañando nada y sólo me estaban fastidiando, no limitaba en absoluto la velocidad, la dejaba usar la máxima disponible.

Podría darse el caso que un estimadx amigx o familiar nos permita dejar descargando en su PC lo que queramos, pero también el va a usar la conexión y bueno, es nuestrx amigx y no vamos a abusar de su confianza. En ese caso, vamos a agregar también el switch limit-rate, y para que no haya necesidad de tener la terminal de MS-DOS abierta, también background.

Ejemplo 1.4. En Background, Continuando descargas, Volcando información y Limitando Rate (tasa).

wget -b -cv --limit-rate=5k http://gnulinuxlibre.net/wp-content/uploads/mirror/trisquel/trisquel_3.0.1_i686.iso

Ahora lo reduje a 5 kilobytes por segundo ya que no sabemos que tanto necesite consumir de internet nuestrx amigx, y así contamos con ese(a) valedor(a) para posteriores apoyos.

¿Pero que pasa si queremos descargar no un archivo, sino una página que incluye gráficos, estilos, y toda una serie de monadas que sin ellas perderíamos buena parte de la diversión? Pues basta con usar el switch -p (Page), y si no termina en html, usaremos también el switch E (extension), para que agregue al final .html y lo reconozca cualquier navegador (hasta Iexplorer).

Ejemplo 1.5. Descargar página con todos los archivos de los que depende para mostrarse correctamente.

wget -pE -cv http://mexico.indymedia.org/?article999

Para el ejemplo esta vez usamos sólo los switches page, extension, continue y verbosity. No es una página enorme así que podemos apreciar la descarga de cada archivo, y en este caso, buscaremos en la carpeta en que ejecutamos wget, el archivo article999.html

Finalmente, para terminar esta primera parte del tutorial de GNU WGet, vamos a empezar a usarlo como un gestor de descargas 100% funcional, digamos que tenemos una lista de archivos que descargar, no necesitamos arrancar un proceso de wget cada vez y estar pendientes de si ya terminó la anterior o no. Sólo necesitamos escribir en cualquier archivo de texto sencillo (lleve extensión .txt o no, eso no importa), la lista de URLs de cada objeto que vamos a bajar (las direcciones que comienzan por http o ftp). Podemos usar notepad incluso.

Ejemplo 2. Input (entrada) de una lista de direcciones.

wget -b --limit-rate=20k -cv -Ep -i mis_páginas.txt

Analicemos el comando anterior de modo que resumamos la lección de hoy,

Notamos que estamos usando todos los switches que hemos usado hasta ahora, sin embargo podríamos omitir cualquiera aunque tendría diferentes efectos:

  • si omitimos -b (background), no podemos cerrar la terminal, nos mostrará lo que va haciendo, aunque sí podemos minimizarla si es una ventana.
  • omitiendo –limit-rate=20k usa el máximo ancho de banda disponible, podemos cambiar también el máximo al que pedimos que haga las bajadas.
  • omitiendo -c (continue) si se nos ha cortado alguna descarga previa, descargará de nuevo todo el archivo, lo que nos lleva a desperdicir espacio y tiempo valiosos.
  • omitiendo -v (verbosity) no generará un archivo de registro tan grande, pero tampoco podremos diagnosticar revisándolo en que punto falló y que progreso llevaba la última descarga.
  • omitiendo -E (extension) si los archivos no terminan en html, y se trata de páginas web, no cambiará su extensión en cuyo caso puede que le cueste trabajo a los navegadores reconocer que se trata de una página y no las abra correctamente.
  • omitiendo -p (page), tampoco descargará los archivos que en dichas páginas se muestren, en cuyo caso, nos quedaremos con páginas con sólo texto y sin siquiera estilos en caso de haberlos.

También podemos cambiar el orden de los switches, no es necesario un orden en particular, excepción hecha del switch -i (Input) antes del archivo que lista las direcciones con las que va a trabajar el gestor. Esto por si no te acuerdas de algún switch y poco antes de ingresar el comando, recuerdas que te hace falta una opción, simplemente la agregas al final seprándola con un espacio del resto.


Te invito a que juegues con las opciones que ya conoces, puedes escribirme tus dudas o si te atoraste en algo, con gusto te ayudaré.

En la siguiente lección, abordaremos como usar GNU Wget para crear copias locales (mirrors) de algún sitio en particular o de una pequeña parte.

Por lo pronto, te dejó con la página de wget para windows por si necesitas bajártelo. Si ya usas GNU/Linux, no la necesitas, Wget ya es una de las utilidades básicas que de hecho muchos otros programas usan para descargar lo que necesiten, por ejemplo, synaptic y aptitude en debian.

http://gnuwin32.sourceforge.net/packages/wget.htm WGet para windows

Archivos zip que puedes descargar y descomprimir en tu USB (o hasta en un cd o mini-CD grabables), hay que descomprimirlos en una sóla carpeta, no funcionan separados.

Hay también un instalador, por si puedes instalarlo en la PC en que vas a trabajar:

http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-setup.exe Gnu Wget para windows, instalador

Happy hacking!

Algunas cosas en GNU/Linux son difíciles. ¡Supéralo!

En la continua promoción de los varios sistemas operativos hay un recurrente argumento contra GNU/Linux de que ‘es difícil de usar’. Enfáticamente *no estoy de acuerdo*. Usar una distribución de GNU preconfigurada no es diferente de usar cualquier otro sistema operativo. Prendes el ordenador, juegas por ahí con el mouse y le entras a bash con los comandos. Las cosas pueden tener diferentes nombres y estar en diferentes posiciones pero esas diferencias son, para alguien con inteligencia promedio, trivialidades.

El verdadero problema es que GNU/Linux, como cualquier sistema operativo no es todo juegos y diversión. Es fácil de entender ciertas partes, y es difícil de entender otras partes. A lo largo de la vida de GNU/Linux evolucionando rápidamente, han llegado a ser super faciles ciertas tareas rutinarias. Cuando quieres empezar a hacer magia aparte de la ruta trazada, es cuando algunas neuronas que estaban dormidas empiezan a activarse aunque sea a velocidad de caracol. Entonces es cuando GNU/Linux empieza a hacerse difícil.

Bajo la deslumbrante y glamorosa interfaz gráfica de usuario hay un abrumador poder. Aquellos que viajen a estas cavernosas regiones deberían hacerlo solamente con experiencia y conocimiento como guía, o se arriesgan a caer en insondables pozos de destrucción de datos.

Bueno, suficiente de ‘poesía’. En serio. Algunas cosas en GNU/Linux son difíciles. Difíciles de entender y difíciles de lograr y a menudo es difícil encontrar información acerca de ellas. Pero igual ocurre mucho con otros sistemas operativos. Cualquiera que pretenda otra cosa ha ‘usado la harina incorrecta para sus galletas’, o comido hongos de otra clase en su almuerzo si entiendes a que me refiero.

Pero usar el argumento de que GNU/Linux es difícil es nada más que ‘el comal diciéndole a la olla’ (…que quemada estás, o ‘la olla a la tetera’), esparciendo miedo, incertidumbre y duda (Fear, Uncertainty and Doubt – FUD). Eso es todo. Si deseas intentar con GNU/Linux debes aceptar las diferencias como entre manejar una motocicleta y conducir un auto. Si no puedes aceptar estas diferencias, entonces mantén la boca cerrada y sigue usando tu viejo sistema operativo.

No, espera. Regreso a lo último que dije. Abre la boca y habla tanto de GNU/Linux como puedas. NO hay tal cosa como un mal anuncio 🙂 Sólo haría una simple petición al respecto. Sopesa lo que dices (piensa antes de hablar). Tal vez lo que parezca muy difícil para ti sea como comerse un pastel (o coser y cantar) para alguien más. Sólo no llames basura a GNU/Linux porque no es la copia exacta de algo más por ahí. GNU/Linux es único y merece ser tratado como tal.

Acometer cualquier tarea en GNU/Linux puede ser duro si no sabes como hacerlo. Todo es difícil la primera vez (lo que sea que hagas en cualquier campo) a menos que seas un absoluto genio. En ese caso yo no voy a lamer la suela de tus zapatos :D. Nosotros mortales que tenemos que aprender y practicar algunas cosas primero. Sólo entonces, cuando somos igual de eficientes en varios métodos, podemos adecuadamente juzgar que es más difícil o más fácil de hacer.

Por ejemplo, en GNU/Linux hay a menudo muchas diferentes formas de lograr algo. Digamos que hay una forma gráfica y otra escribiendo comandos. Cuando migré de un sistema orientado gráficamente, deseaba hacer las cosas de la misma manera. No estaba a gusto con la línea de comandos. La veía demasiado difícil. Ahora, después de algo de experiencia tanto con el método gráfico como con la línea de comandos, para lograr los mismos resultados, a menudo encuentro escribir órdenes más fácil y más rápido.

¿Encuentras GNU/Linux difícil? Sé honestx y expón bien tus razones. Es por inexperiencia, flojera o sólo porque estás en otro bando. Y del lado opuesto. ¿Qué es eso acerca de GNU/Linux que encuentras fácil? Otra vez, manifiesta tus razones.

"Solía pagar soporte a Windows. Hoy uso GNU/Linux para que el trabajo se haga."

Traducción libérrima de: http://it.toolbox.com/blogs/locutus/some-things-in-linux-are-hard-get-over-it-36400 con notas y añadidos míos entre paréntesis.