Mostrando entradas con la etiqueta script. Mostrar todas las entradas
Mostrando entradas con la etiqueta script. Mostrar todas las entradas

domingo, 17 de febrero de 2013

Reinicio automático de amule [ACTUALIZADO]

Bien; voy a empezar por la "historia del arte" de esta entrada. Como indiqué en la entrada anterior, he instalado de forma limpia Fedora 18 en mi ordenador principal. La actualización dejó varios rastros indeseables. En primer lugar, Fedora arrancaba en una pantalla de formato antigua. Segundo, de forma aleatoria no era capaz de refrescar el sistema gráfico aunque los programas seguían funcionando si los controlaba en una pantalla de texto con top. El arranque es ahora con una pantalla más gráfica y visualmente atractiva, pero lo segundo sigue pasando. Por ahora parece que lo he solucionado evitando el bloqueo de pantalla. Mi primo, técnico informático, me ha dicho que él ya había visto casos similares en gráficos HD3000 integrados en procesadores Intel, que eran incapaces de refrescar el sistema gráfico tras el bloqueo. También me ha indicado que eso se producía en escritorios gnome, y no en KDE, así que los que lo deseen, pueden evitarlo pasando su Fedora a KDE en la instalación.
Esta instalación ha generado otro problema. En el proceso configuré mal mi usuario, y en vez de solucionarlo adecuadamente, decidí borrar el usuario y sustituirlo por otro, sin darme cuenta de que así borraba el directorio completo de ese usuario. En resumen, 1,2TB perdidos. Lo importante es recuperable, ya que tengo la copia de seguridad que hice justo antes de la instalación, pero los ficheros ed2k que estaba en descarga, más directorios completos a los que les faltaba algún capítulo o el directorio que tengo compartido se han perdido completamente. Algunos ficheros no son recuperables, ya que eran versiones especiales que ya no conservo (ficheros de versiones originales que he remontado con sonido en español; ficheros que he recodificado pero que se mantenían para la gente que está interesada etc...). Otros, sin embargo, son recuperables bajándolos de nuevo. Bien, desde hace tiempo amule se cierra aleatoriamente, sin que supiera a que es debido. Los envíos a bugzilla no creo que surjan efecto, ya que amule no es un paquete mantenido por Fedora (como dice bugzilla cuando le envías el informe). Cuando le he inyectado 466 hash para intentar recuperar lo perdido, el programa ha decidido cerranse no de forma aleatoria, si no premeditada, y cada 10 minutos. Sin embargo, he encontrado la solución. En esta entrada de los foros de Fedora he leído esta respuesta que ha solucionado el problema. He copiado el texto en un script,


lo he nombrado reinicio.amule; le he dado permiso de ejecución (# chmod +x reinicio.amule) y ya llamo directamente a amule con él

$ . reinicio.amule




Como no encuentra amule, ya lo llama directamente


Cuando se genera una corrupción en amule, la detecta


y al cerrarse amule


lo llama de nuevo y ya está otra vez activo


He borrado los  ficheros por protección de datos, ya que se ve el nick de los ripeadores. Bromas aparte, he estado probando unas 10 horas y se ha cortado varias veces, recuperándose inmediatamente  alcanzando picos e subida de 3MB/s de forma bastante rápida. Un gran script, aunque personalmente, por desconocimiento no sea interpretarlo. Aun así, cubre mis necesidades. Solo me falta generar un ejecutable en aplicaciones y conectarlo a los favoritos. Muchas gracias a stevea, el nick del programador que ha generado las 6 líneas de código bash que nos ha sacado de este aprieto. La otra opción que tenía e mene era usar la versión amule-nogui, que no precisa sistema gráfico, por si la culpa, como casi siempre se debe a la máscara gráfica.

Actualización:
Y para que se vea que funciona, tras varias horas de funcionamiento desatendido, los informes de errores mostrados por ABRT fue este (y lo que no se ve).


Todos estos fallos suponen cuelgues continuados de amule con la recuperación inmediata gracias al script.
Por cierto, ya he generado un acceso directo y lo he puesto en favoritos, ya que ahora llamo a emule a través del script.

lunes, 12 de noviembre de 2012

Conversión CBR a PDF. El poder del terminal de Linux

Para aquellos que no creen en el poder -y la comodidad- del terminal de Linux, vamos a poner un ejemplo. Como ya habíamos dicho, mi interés por la "tablet "Nexus 7 nace en la necesidad de leer cómodamente los libros científicos con fotos y formulas; secundariamente, podemos leer también comics. En la Nexus uso de lector Aldiko, que no lee los CBR (Comic Book Rar). Aunque no fuera así, rar es un formato privativo, así que es mejor cambiarlo; idealmente deberíamos pasarlo a djvu, pero para poder leerlos en cualquier dispositivo, la transformación más sencilla es a PDF. Lo podemos hacer de forma gráfica.
1. Descomprimir los CBR a las imágenes JPG que los compone
2. Convertir los jpg en PDF
3. Borrar el CBR

Como es natural, eso es muy cómodo para hacer uno, pero para hacer 210, como era mi intención, es muy cansado; cuando llevas 10 ya no puedes más. La solución, el terminal. El que hice (cbr2pdf v.0.1Alpha) era bastante deficiente, por lo que hckorootx lo ha mejorado muchas veces (sustituyendo el rename por una versión de mv que sirva para todas las distribuciones) hasta llegar a la versión 0.7RC, que podemos pasar a 1.0 stable.
El script es así

#!/bin/bash

# Cambio de espacios por guiones bajos en todos los .cbr
for fichero_cbr in *.cbr; do
        if [[ "$fichero_cbr" != "${fichero_cbr// /_}" ]]; then
                mv "$fichero_cbr" "${fichero_cbr// /_}"
        fi
done

# Descompresión, cambio de .JPG a .jpg (si es que hay .JPG) y conversión a PDF
for fichero_cbr in *.cbr; do
        unrar e $fichero_cbr
        for fichero_JPG in *.JPG; do
                mv "$fichero_JPG" "${fichero_JPG//.JPG/.jpg}" 2> /dev/null
        done
        convert *.jpg "${fichero_cbr//.cbr/.pdf}"
        rm $fichero_cbr
        rm *.jpg
done

# Fin del script


El resultado es este:





Este es solo una muestra con solo 10 ejemplares de un famoso comic nacional. Los 210 tardaron solo 10 minutos. Este es un ejemplo del poder del terminal.

jueves, 4 de octubre de 2012

Linux y rename ¿cuál de ellos?

Estos días hemos estado escribiendo, sobre todo mi amigo hckorootx, un script para transformar los cómics cbr (Comic Book Rar) a pdf. El por qué ya lo diremos en alguna otra entrada. Lo interesante que hemos descubierto al escribir el script es que bajo la orden rename, Linux no responde igual bajo la distribución Lubuntu  que con Fedora. Un script que funciona perfectamente en Lubuntu muestra este error en Fedora:



Esto nos sorprendió. rename es un script en Perl, pero ¿por qué funciona en el ordenador de un usuario y no en el del otro?
La respuesta la podemos encontrar aquí. Simplemente, Debian y sus derivados usan un script diferente a los demás.
Esto genera un problema, los scripts podrían funcionar o no según la distribución empleada. En resumen, los scripts de bash no deben incluir rename.
Por suerte, hckorootx lo ha sustituido por mv y el script ha quedado perfecto. Lo pondremos en otra entrada.

lunes, 27 de febrero de 2012

Cheese, fotos en ráfaga y conversión a vídeo

He logrado, o mejor debemos decir hemos logrado, por que he tenido ayuda "experta", superar algunas de las dificultades del uso de cheese que decíamos aquí. En primer lugar, el apagado del monitor ha sido bastante simple, ejecutando estas ordenes:
xset s off # Disable X windows screen saver
xset -dpms # Disable display power management system
tomadas de aquí.
Sin embargo, han aperecido otras dificultades. Cheese, además de limitarse a 10.000 imágenes, ha presentado otra dificultad; guarda los ficheros con unos nombres que dificultan la conversión a vídeo. Los ficheros, para poner un ejemplo, tienen unos nombres que muestran un cuerpo inicial común formado de la fecha de inicio y la hora, minutos y segundos de comienzo:
- Primero: 2012-02-17-173235_1.jpg
- Último: 2012-02-17-173235_10000.jpg
Luego se numeran desde el 1 en adelante, pero sin mantener un número común de caracteres. Esa falta de ceros a la izquierda de los números hace que el ordenador, y los programas que generan el vídeo desde las imágenes, los ordenen de manera equivocada, siendo por ejemplo el último el 2012-02-17-173235_9.jpg. Así, cada determinado número de frames hay una imágen equivocada que genera bastantes molestias.
Por suerte mi amigo hckorootx generó unos scripts para cambiar en masa el nombre de los ficheros, como podemos ver en los comentarios de esta entrada. En concreto, este script funcionó perfectamente (muchas gracias, hckorootx):

#!/bin/bash
for archivo in *.jpg; do
long_total=`expr length $archivo`
long_util=`expr $long_total - 18`
nombre_inutil=`expr substr $archivo 1 18`
nombre_util=`expr substr $archivo 19 $long_util`
if [ $long_util -eq 5 ]; then
ceros="0000"
nombre_final=$nombre_inutil$ceros$nombre_util
mv $archivo $nombre_final
elif [ $long_util -eq 6 ]; then
ceros="000"
nombre_final=$nombre_inutil$ceros$nombre_util
mv $archivo $nombre_final
elif [ $long_util -eq 7 ]; then
ceros="00"
nombre_final=$nombre_inutil$ceros$nombre_util
mv $archivo $nombre_final
elif [ $long_util -eq 8 ]; then
ceros="0"
nombre_final=$nombre_inutil$ceros$nombre_util
mv $archivo $nombre_final
fi
done

Además, como se ve es muy explicativa por si misma. Menos mal, por que yo de script en bash no tengo ni idea, y eran casi 40.000 ficheros en 6 tandadas los que había que renombrar.
Una vez convertidos adecuadamente desde el primero 2012-02-17-173235_00001.jpg hasta el último 2012-02-17-173235_10000.jpg, ya solo quedaba dar una orden de conversión. Después de haber pensado en usar openshot, decidí usar directamente mencoder, por que el terminal es siempre más rápido.
Con esta orden,

$ mencoder "mf://*.jpg" -mf fps=25 -o output.avi -ovc lavc -lavcopts vcodec=mpeg4

que tendré que pulir leyendo más profundamente las guías modernas de mencoder, me salió un conjunto de vídeos de los que cortando trozos y pegando con VirtualDubMod a través de wine logré un total de 4minutos y 12 segundos bastante buenos (me ha felicitado mucha gente), a partir de algo más de 6300 imágenes del total de 40.000.
No, no enseñaremos aquí el vídeo, por que es un objeto científico, y hasta que sea publicado los científicos no compartimos nada de nada. Después de publicarlos los derechos dejan de ser nuestros y ya no podemos disponer de nuestros hallazgos para difundirlos y hay que pedírselos a editoriales como Elsevier, Springer y otras similares. Si me dejan ponerlo en Youtube, según el uso al que esté destinado, lo pondré también aquí, pero no prometo nada.
El siguiente paso sería aprender lo suficiente de motion para poder evitar esa limitación de 10.000 imágenes de cheese... pero esa será otra historia

viernes, 16 de diciembre de 2011

Instalación de JDownloader en Fedora

Al contrario que en Ubuntu, donde ya tenemos un repositorio preparado, en Fedora tenemos que recurrir a un script para instalarlo. Desde el principio me he basado en esta entrada del blog de MeltIt para hacerlo. Empezaremos por instalar Java. En particular yo ya tenía instalada Java libre desde la instalación desde el DVD 64bits.
Bajaremos desde wget el script desde la página de jdownloader. No nos olvidemos que wget no se instala automáticamente en Fedora, así que tendremos que hacer

$ sudo yum install wget

o bien (si no hemos instalado y configurado sudo)

& su -
     poner la palabra de administrador
# yum install wget

Luego ya podemos descargar el script

$ wget http://212.117.163.148/jd.sh

Seguimos las instrucciones de jdownloader para su instalación en Linux
a. Damos permiso de ejecución al script como administrador

# chmod +x jd.sh

b. Lo ejecutamos

$ start jd.sh

Finalmente, desde el mismo terminal nos localizamos en su directorio y ejecutamos
$ cd .jd
$ java -Xmx512m -jar JDownloader.jar


Y listo. Algo más largo que en Ubuntu, pero no muy complicado.