domingo, 15 de marzo de 2009

Cómo programar tareas automáticas usando Crontab o Gnome Schedule

Fuente: Ubuntu Documentation. Man

En caso de querer programar una tarea podemos usar Crontab o, en su defecto, Gnome Schedule, que no es más que una interfaz gráfica de la primera. Para entender cómo funcionan ambas herramientas es necesario tener claro qué es cron y su relación con crontab:

Cron es un demonio, es decir, es un proceso que se ejecuta en segundo plano, sin interactuar con el usuario, que es usado para programar tareas que serán ejecutadas en un tiempo específico. Por otra parte, crontab es un archivo de texto y cada usuario posee el suyo. En este archivo el usuario puede especificar el momento en que se ejecutará una determinada tarea. Es así como en el interior del archivo crontab se encuentra una lista de comandos y sus respectivos tiempos de ejecución. Ambos factores son controlados por el demonio cron y son llevados a cabo en segundo plano por el sistema. De igual manera, el sistema también posee un crontab, en donde se especifica una serie de tareas que son realizadas de forma regular.

Como usuario puedes usar cron de dos maneras: editando el archivo crontab o mediante Gnome Schedule.

Editando el archivo crontab
Primero, para editar crontab, en el terminal escribes:
crontab -e

Se te pedirá que escojas un editor. Yo he escogido nano. La pantalla que verás será parecida a esta:



Como podrás ver se trata de un archivo cuyo contenido se limita a una linea antecedida por el signo #. Ello nos indica que se trata de un comentario y será ignorado por el sistema. Este comentario cumple la función de orientarnos respecto al formato que deben respetar las entradas que agreguemos en el archivo. Como puedes ver, la entrada típica de crontab cumple con el formato:
[m] [h] [dom] [mon] [dow] [command]

Una manera de no olvidar lo que cada parámetro significa es entendiendo su significado:

Parámetro Significado Rango

m minute (minuto) 0-59
h hour (hora) 0-23
dom day of month (día del mes) 1-31
mon month (mes) 1-12
dow day of week (día de la semana) 0-6 (0=Domingo)
command command (comando)

Por lo tanto, en caso de dudas basta con mirar la primera línea de nuestro archivo para saber qué parámetro incluir sin la necesidad de memorizar nada.
Veamos un ejemplo práctico. Supongamos que tienes un script que respalda nuestra colección Amarok. Supongamos que su ruta es /home/usuario/Script/amarok/backup_coleccion_amarok. En caso de que deseemos ejecutarlo el primero de cada mes, a las 4 de la tarde, escribimos la siguiente entrada en nuestro archivo:
* 16 1 * * /home/usuario/Script/amarok/backup_coleccion_amarok

Cuando el parámetro del día de la semana (dow) y el correspondiente al día del mes (dom) son ingresados, basta que uno de los dos se cumpla para que la tarea se ejecute. Por lo tanto, si queremos que el script corra el primero de cada mes, además de todos los lunes, en ambos casos a las 4 de la tarde, escribimos:
* 16 1 * 1 /home/usuario/Script/amarok/backup_coleccion_amarok

Es posible especificar rangos de números para cada parámetros escribiendo dos números separados por un guión. Además puedes ingresar listas de números separándolos por comas. Ambos formatos pueden convivir en un mismo parámetro. Por lo tanto, en caso de que desees que el script se corra el primero de cada mes, a la vez que todos los días 5, 6 y 7 de cada mes, siempre a las 4 de la tarde, la entrada quedaría así:
* 16 1,5-7 * * /home/usuario/Script/amarok/backup_coleccion_amarok

También puedes especificar pasos (steps) con el fin de saltarte determinados números. Cada paso afecta a la unidad de tiempo al que se asocia. Para ello es necesario escribir:
‘‘/número’’

Supongamos que deseas que el script se ejecute cada tres horas el primero de cada mes a partir de las 4 de la tarde:
* ‘‘16-23/3‘‘ 1 * * /home/usuario/Script/amarok/backup_coleccion_amarok

En caso de que desees ver la lista de tareas que hayas programado escribes en el terminal:
crontab -l

Para borrar tu crontab escribes:
crontab -r


Utilizando Gnome Schedule
Es posible instalarl Gnome Schedule con Synaptic o escribiendo en el terminal:
sudo apt-get install gnome-schedule

Una vez instalado puedes correrlo desde Aplicaciones-->Herramientas del sistema-->Tareas programadas. Te aparecerá una ventana parecida a esta:



Si presionas en el botón Nuevo se te preguntará qué tipo de tarea deseas añadir:



Básicamente son tres opciones: tareas que se ejecutan periódicamente, tareas que se ejecutan una sola vez y usar una programación predefinida anteriormente.
Supongamos que quieres ejecutar el script el primero de cada mes, a las 4 de la tarde. Escoges la primera opción. Luego basta hacer click en la opción Advanced y anotar los datos necesarios:



Como podrás ver es posible en este punto guardar la programación de la tarea en caso de que quieras utilizarla posteriormente escogiendo la opción Add as template.
Una vez programada la tarea esta habrá de aparecer en la ventana principal:



Ojo que Gnome-Scheduler no es otra cosa que una interfaz gráfica para editar nuestro archivo crontab. Por lo tanto, si ejecutamos el comando crontab -l podemos ver que la tarea está programada y en caso de necesidad, podemos modificar la entrada editando el archivo de texto.

domingo, 1 de marzo de 2009

Cómo hacer respaldos automáticos de tu colección Amarok 1.4 con base de datos MySQL

Fuente: Wiki Amarok

Para el siguiente proceso de respaldo se asume que antes has configurado correctamente tu colección Amarok para que use una base de datos MySQL.

A continuación tienes dos script que realizarán todo el proceso de respaldo y restauración. El primero respalda de manera automática, con la frecuencia que tú determines, toda tu colección de música. El segundo cumple la función de restaurar tu colección sin perder tus etiquetas, carátulas, etc. incluso en caso de reinstalar todo el sistema.

El script de respaldo

El script de respaldo lo puedes encontrar acá.

1. El script de respaldo guarda una copia de:
  • La base de datos MySQL.
  • El archivo amarokrc.
  • Las listas dinámicas, inteligentes y estáticas.
  • Las carátulas de los discos.
  • Los temas del navegador de contexto.

2. Los respaldos se guardan en ~/backup dentro de una carpeta cuyo nombre corresponde a la fecha del respaldo según el formato día-mes-año.

3. Antes de que el script se ejecute debe ser modificado, cambiando según corresponda:
  • [Línea 9] El nombre de la base de datos MySQL.
  • [Línea 12] El nombre del usuario MySQL.
  • [Línea 13] El password MySQL.
4. En caso de que lo desees puedes modificar la ruta de los siguientes elementos (sólo necesario en caso de una instalación no estándar):
  • [Línea 16] El archivo amarokrc.
  • [Línea 19] Las listas dinámicas.
  • [Línea 22] Las listas inteligentes.
  • [Línea 28] Las listas estáticas.
  • [Línea 25] Las carátulas de los discos.
  • [Línea 31] Los temas del navegador de contexto.
5. En caso de que desees no respaldar algún elemento basta con comentar la linea correspondiente anteponiendo el signo #.

6. Si ejecutas el script más de una vez el mismo día (en caso de ejecución manual) se te preguntará si deseas sobreescribir los archivos anteriormente guardados (Atención: esto no ocurre en el caso de las caratulas, los temas del navegador de contexto y las listas estáticas)

7. Para que este script corra de manera automática debes utilizar la herramienta crontab.

El script de restauración

El script de restauración lo puedes encontrar acá.

1. Antes de que el script se ejecute debe ser modificado, cambiando según corresponda:
  • [Línea 33] El nombre del usuario MySQL (en el script se asume USUARIO) y el nombre de la base de datos (en el script se asume amarok)
2. Es posible modificar la ruta de los siguientes elementos (sólo necesario en caso de una instalación no estándar):
  • [Línea 15] El archivo amarokrc.
  • [Línea 9] Las listas dinámicas.
  • [Línea 12] Las listas inteligentes.
  • [Línea 21] Las listas estáticas.
  • [Línea 18] Las caratulas de los discos.
  • [Línea 24] Los temas del navegador de contexto.

3. En el momento de restaurar la colección se te pedirá el password del root MySQL.

4. Se te pedirá que ingreses la fecha del respaldo a restaurar en el orden día-mes-año.

5. Las listas estáticas serán restauradas, pero deberás importarlas posteriormente desde Amarok para que el programa las reconozca.

6. Se asume que este script se ejecuta de manera manual cuando sea necesario.

7. En caso de que sea necesario volver a otorgar los permisos al usuario MySQL debes escribir en el terminal:
mysql -p -u root
GRANT ALL ON amarok.* TO amarok@localhost IDENTIFIED BY 'PASSWORD';
FLUSH PRIVILEGES;
QUIT;

Donde la sintaxis de la instrucción GRANT significa:
GRANT [permisos] ON [base_datos].[tabla] TO [usuario]@[host_de_conexión] IDENTIFIED BY '[password para el usuario]'
Otra forma de hacerlo es con MySQL Administrator.

8. En caso de que desees no restaurar algún elemento basta con comentar la linea correspondiente anteponiendo el signo #.

viernes, 20 de febrero de 2009

Vaciar la papelera en Intrepid cuando no tenemos los permisos para ello

Si algún archivo se resiste a ser eliminado de la papelera, aludiendo a que te faltan los permisos necesarios, lo más fácil es eliminarlo haciendo uso de sudo. Escribes en el terminal:
sudo rm -rf ~/.local/share/Trash/files/*

y listo.

jueves, 5 de febrero de 2009

Amarok 1.4.10 no accede a Wikipedia

Fuente: foros.ubuntu-cl.org, launchpad.

Desde hace un tiempo Amarok 1.4 tiene problemas para mostrar la información de Wikipedia. Lamentablemente el equipo de desarrollo de Amarok está actualmente concentrando todos sus esfuerzos en Amarok 2.0 por lo que no hay programada una nueva versión de Amarok 1.4. Sin embargo no todo está perdido, es posible hacer que las cosas vuelvan a la normalidad gracias a nuestro amigo janitux que ha conseguido empaquetar una versión parchada de Amarok, la cual no tiene problemas con Wikipedia. Basta con descargar el paquete e instalarlo. Puedes bajarlo de acá:
http://janitux.boaboa.org/etc/amarok_1.4.10-0ubuntu3_i386.deb

También deberás descargar los siguientes archivos:

http://launchpadlibrarian.net/18512791/amarok-common_1.4.10-0ubuntu3_all.deb

http://launchpadlibrarian.net/18512794/amarok-engine-xine_1.4.10-0ubuntu3_i386.deb

http://launchpadlibrarian.net/18512795/amarok-engine-yauap_1.4.10-0ubuntu3_i386.deb

La instalación debe hacerse en el siguiente orden: amarok-common, amarok-engine-xine, amarok-engine-yauap, amarok 1.4.10.

Luego de instalados los paquetes el Gestor de actualizaciones te avisará que hay actualizaciones disponibles. Sin embargo si instalas los paquetes sugeridos perderás el parche. Debes procurar que los paquetes no se actualicen, al mismo tiempo que debes conseguir que el sistema no siga avisando que existe esa actualización. Para ello debes escribir en el terminal:
$ sudo -s
# echo amarok hold| sudo dpkg --set-selections
# echo amarok-common hold|dpkg --set-selections
# echo amarok-engine-xine hold|dpkg --set-selections
# echo amarok-engine-yauap hold|dpkg --set-selections

IMPORTANTE: Las actualizaciones de los paquetes son necesarias para solucionar problemas de seguridad. Es necesario tener en cuenta este hecho antes de realizar este método.

Cómo instalar nuevos temas en XFce


Fuente: wiki.xfce.org

Existen 4 diferentes tipos de temas en XFce: los que corresponden al decorado de ventanas, los GTK+interfaces, los cursores del mouse y los iconos. Es posible descargarlos desde xfce-look.org

Para cambiar el decorado de ventanas:
Los decorados de ventanas (xfwm4) se extraen en el directorio ~/.themes
Si deseas que los puedan usar todos los usuarios debes extraerlos en /usr/share/themes
Tienes que asegurarte de que los tema se extraigan de la forma ~/.theme//xfwm4/

Cambiar GTK+ interfaces
Estos temas controlan los botones, campos de textos, es decir, prácticamente todo lo que está en el interior de las ventanas. Algunos requieren archivos adicionales para que puedan ser usados (theme engine) y tienes que preocuparte de instalarlos. Otros simplemente funcionan al instalarlos. En general es algo que el diseñador te dice en las indicaciones de instalación.
Se extraen en el directorio ~/.themes
Si deseas que los puedan usar todos los usuarios debes extraerlos en /usr/share/themes
Tienes que asegurarte de que los tema se extraigan de la forma ~/.themes//gtk-2.0/gtkrc

Cursores
Extrae el tema en ~/.icons
Para que lo puedan usar todos los usuarios se extraen en /share/icons
Tienes que asegurarte de que los temas se extraigan de la forma ./icons//cursors

Iconos
Extrae el tema en ~/.icons
Para que los puedan usar todos los usuarios se extraen en /share/icons
Se recomienda tener siempre instalado el paquete hicolor-icon-theme para solucionar posibles problemas, como temas incompletos, etc.

miércoles, 4 de febrero de 2009

Agregando GNOME Utilities a XFce

Fuentes: live.gnome.org, ¿Cómo arreglé eso?, El Blog de Jabba.

Si tienen Xubuntu o cualquier otra distro que venga con Xfce instalado por defecto (como Zenwalk, que fue la distro que use para llevar a cabo esta entrada) las utilidades de GNOME no vienen instaladas. Para acceder a ellas debes instalar el paquete gnome-utils. En el terminal debes escribir:

sudo aptitude install gnome-utils


Este paquete incorpora una serie de utilidades que el entorno XFce no tiene por defecto:

baobab
Analizador de uso de disco. Herramienta gráfica que analiza el uso del disco. Puede escanear todo el árbol del sistema de ficheros o un fichero en particular, ya sea local o remoto. Autodetecta en tiempo real cualquier cambio que se haga a tu directorio home y en cualquier dispositivo que sea montado o desmontado.

gnome-system-log
Es un visor de sucesos del sistema

gnome-search-tool
Es un buscador de archivos. Es posible agregar en el menú Places del panel de XFce la opción de buscar archivos con este programa. Basta con con hacer click con el botón derecho sobre el menú y escoger la opción Propiedades. Luego en donde dice Search escribes gnome-search-tool:



Con eso la opción de búsqueda de archivos debiera agregarse a tu menú.

gnome-dictionary
El diccionario de GNOME

gfloppy
Utilidad para dar formato a diskettes

gnome-screenshot
Capturador de pantalla. Es posible asignarle una combinación de teclas en Preferencias de teclado. En Xubuntu se enceuntra en Aplicaciones/Configuración/Administrador de configuración/Keyboard. En otros sistemas lo encontraremos en Menú Xfce/Configuración/Configuración del teclado:



Una vez allí escogemos la pestaña Atajo. Haciendo click en el botón Añadir nos pedirá que ingresemos el comando para el cual queremos añadir una combinación de teclas. Acá es recomendable separar la captura de todo el escritorio de la captura de la ventana activa. Si queremos designar un atajo para la captura de todo el escritorio debemos ingresar el comando gnome-screenshot. Luego, cuando se nos pida la combinación de teclas escojemos la que más nos acomode. Por ejemplo podemos asignarle la tecla ImprPant. Si queremos asignar un atajo a la captura de la ventana activa debemos ingresar el comando gnome-screenshot -w y luego ingresamos una combinación de teclas diferente, como Alt+ImpPant, por ejemplo.

domingo, 1 de febrero de 2009

Regionset: ERROR: Could not open disc "(null)"!

Al reemplazar un reproductor/grabador de DVD por otro nuevo puedes tener problemas al tratar de configurar su región con regionset. Es posible que el sistema te entregue el siguiente error:

regionset version 0.1 -- reads/sets region code on DVD drives
ERROR: Could not open disc "(null)"!
Please ensure there is a readable CD or DVD in the drive.


Una manera de solucionar este problema es borrando el archivo 70-persistent-cd.rules escribiendo en el terminal:

sudo rm /etc/udev/rules.d/70-persistent-cd.rules