Capítulo 8: Realización de tareas básicas sobre sistemas operativos libres y propietarios
8.9. Automatización de tareas del sistema.
Hoy en día, casi todos los sistemas operativos incluyen herramientas que nos permiten evitar la realización manual de tareas administrativas que…
-
Se repiten de forma sistemática a lo largo del tiempo (como las copias de seguridad)
-
Que se realizan a horas intempestivas para evitar comprometer el rendimiento del equipo en los momentos en los que más falta haga (como la defragmentación del disco o la descarga e instalación de actualizaciones).
La automatización de tareas del sistema nos permite programar la ejecución de programas o secuencias de comandos, para que se produzca a una hora determinada y, en su caso, con una frecuencia en particular.
En el caso de Windows, esta situación la cubre el Programador de tareas, que nos permite automatizar tareas en función de que se produzcan diferentes circunstancias:
-
Cuando llegue un momento particular del futuro.
-
Cuando se produzca un determinado evento.
-
Con una frecuencia determinada, indicada por el usuario.
A modo de ejemplo, puedes ver cómo funciona consultando los siguientes artículos:
Actividad 11: Programación de tareas en Windows
Crea una nueva tarea programada desde la línea de comandos, con el nombre tarea01, que ejecute el Bloc de notas todos los días a la misma hora (debes elegir la hora para poder comprobar su funcionamiento en clase).
Una vez comprobado el funcionamiento correcto de la tarea anterior, edítala desde la interfaz gráfica para que se ejecute únicamente los fines de semana.
De nuevo desde el entorno gráfico, crea una nueva tarea, con el nombre tarea02, que ejecute el navegador cada vez que se inicie sesión en el sistema operativo.
Hasta hace algún tiempo, si queríamos cubrir esta necesidad desde la interfaz gráfica de Ubuntu, podíamos recurrir al programa gnome-schedule. Sin embargo, parece que el desarrollo de este programa se encuentra detenido y ya ni siquiera se encuentra disponible en los repositorios de las últimas versiones del sistema.
Aún así, si tienes curiosidad por saber cómo funciona gnome-schedule, puedes consultar nuestro artículo Programar una tarea que apague Ubuntu 14.04 LTS automáticamente.
De cualquier modo, seguro que ya has reparado en que, en Ubuntu, muchas de las tareas administrativas se hacen desde la línea de comandos. En el caso particular de las tareas programadas se utilizan dos mecanismos diferentes:
-
Cuando la tarea programada se va a repetir a intervalos regulares.
El servicio que se encarga de ejecutar este tipo de tareas es cron, que está formado por el demonio crond y varias tablas que definen los trabajos que se deben ejecutar y con qué frecuencia.
Normalmente, crond se inicia durante el arranque del sistema y se activa cada minuto para revisar las tablas y comprobar si debe ejecutar alguna acción.
Puedes ver ejemplos de su funcionamiento en nuestros siguientes artículos:
-
Cuando la tarea programada se va a ejecutar sólo una vez, cuando llegue el momento oportuno.
Para cumplir con este objetivo, disponemos del comando at. Al ejecutarlo, se pone en funcionamiento el servicio atd que controlará el momento exacto en el que se ejecutará el comando que le hayamos indicado.
El comando at guarda los valores de las variables de entorno y el directorio actual y los utilizará para ejecutar la tarea, de forma que no le afecten los cambios que se produzcan después de programarla.
Para ilustrar su funcionamiento, puedes consultar estos artículos:
Actividad 12: Programación de tareas en Linux
Crea una nueva tarea programada desde la línea de comandos que ejecute el gEdit todos los días a la misma hora (debes elegir la hora para poder comprobar su funcionamiento en clase).
Una vez comprobado el funcionamiento correcto de la tarea anterior, edítala para que se ejecute únicamente los fines de semana.
Desde la línea de comandos, consulta qué tareas programadas existen ahora en el sistema.
Nota: gEdit es un programa que se ejecuta en la interfaz gráfica. Como Ubuntu está diseñado para utilizar diferentes monitores, habrá que indicarle en cual queremos que aparezca el programa. También es recomendable usar la ruta completa del ejecutable, por si la variable $PATH no tuviese el contenido que esperamos.
Por lo tanto, la orden que debemos programar dentro de crontab tendría un aspecto como este:
export DISPLAY=:0;/usr/bin/gedit
Actividad 13: Diccionario de conceptos
Crea un pequeño diccionario con los conceptos explicados en este capítulo. Cada entrada deberá contener el nombre del término y una explicación breve del mismo.