Curso de Linux 13/60 – Automatización de Tareas | cron y at

Esta es nuestra clase numero 13 del curso de Linux y vamos a ver la automatización y la programación de tareas por medio del comando cron y at.

Antes de explicar que es cron y como funciona, primero debemos ver un par de comandos, que son:

  • date que nos permite ver y cambiar la hora actual del sistema.
    • Para averiguar el día de ayer: date -d “yesterday”
    • Para averiguar el día de hoy: date
    • Para averiguar el día de mañana: date -d “tomorrow”
    • Para especificar el formato deseado: date +%d/%h/%y
  • cal nos muestra el mes actual y nos marca el día de hoy.
    • Muestra el mes actual: cal
    • Muestra el mes pasado, presente y siguiente: cal -3
    • Muestra el calendario de este año: cal -y

Teniendo presentes date y cal pasemos a ver que es cron.

¿Qué es cron?

Su nombre cron proviene del griego chronos que significa “tiempo”. es el equivalente al administrador de tareas en Windows, es una herramienta de cronograma que ejecuta procesos a intervalos regulares (cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab.

¿Cómo funciona cron?

Cron se maneja a través de comando crontab -e  este nos lleva a un tabulador que nos indica un formato para poder programar las tareas en nuestro computador.

.—————- Minuto (0 – 59)
|  .————– Hora (0 – 23)
|  | .———— Día del mes (1 – 31)
|  | | .———- Mes (1 – 12) O jan,feb,mar,apr … (los meses en inglés)
|  | | |  .——– Día de la semana (0-7) O sun,mon,tue,wed,thu,fri,sat (días en inglés)
|  | | |  |
* * * * * comando para ser ejecutado

Ejemplo practico

En la linea de asteriscos vamos a sustituir el primer asterisco por el 5 y luego le indicamos el comando Date >> ejemplo1.txt

5 * * * * Date >> ejemplo1.txt

¿que va a hacer esto? se va a ejecutar cada 5 minuto, porque se va a ejecutar en cada minuto, en cada hora, en cada día del mes, en cada mes, y creará el archivo ejemplo1.txt que registrara la salida de date de manera acumulativa.46

46 * * * * Date >> ejemplo2.txt

se ejecute en el minuto 46 de todas las horas, de todos los días

50 6 * * * Date >> ejemplo3.txt

Se ejecuta todos los dias  a las 6:50

57 6 3 * * Date >> ejemplo4.txt

Se ejecutará cada día 3 a las 6:57

5 7 13 5 * tar zcvf Linux-4.0.1.tar.gz lunix-4.0.1

Se ejecutará cada mes de Mayo el día 13 a las 7:5 y realizara el backup backup de las fuentes del kernel Linux 4.0.1

15 7 13 5 4 tar zcvf Linux-4.0.1.tar.gz lunix-4.0.1

Se ejecutara solamente los días miércoles de Mayo cuando estos caigan en 13 a las 7:15

Resumen de cron

No olvidemos que:

  • El primer parámetro es el minuto.
  • El segundo parámetro es la hora.
  • El tercer parámetro es el día del mes.
  • El cuarto parámetro es el mes.
  • Y el quinto parámetro es el día de la semana.
  • En números el sexto parámetro es el comando que nosotros queremos ejecutar.

cron tab

Comando at

Ahora pasamos a otro servicio que nos permite programar las tareas que es el at. El at funciona de forma diferente funciona, mas como una cola/spooler que nos permite especificarle tanto la fecha como la hora de lo que vamos a ejecutar, en el formato hora fecha habitual.

Sintaxis

at 7:20 05/13/2015 formato (MM/DD/YY)

Una vez colocamos at y la fecha nos va a dar un prompt en el cual podemos escribir el comando que queremos ejecutar,

Ejemplo de comando a ejecutar: date >> ejemplo5.txt

Una vez escrito el comando guardamos la tarea con Control + d

¿Que hace esto? a las 7:20 de la mañana del 13 de mayo del 2015 nos ejecuta el comando date

Ver los trabajos programados de at

Ahora para ver los trabajos en la cola de at usaremos el comando atq

Formas de usar el comando at

  1. Programa una tarea a las 11:00 de la mañana.
    • at 11:00 AM
  2. Programa una tarea a las 11:00 de la mañana del próximo domingo.
    • at 11:00 AM Sun
  3. Programa una tarea a las 11:00 de la mañana del 25 de Julio
    • at 11:00 AM July 25
  4. Programa una tarea a las 11:00 de la mañana del 22 de Junio del 2015
    • at 11:00 AM 6/22/2015
    • at 11:00 AM 6.22.2015
  5. Programa una tarea a las 11:00 de la mañana de la misma fecha pero del próximo mes.
    • # at 11:00 AM next month
  6. Programa una tarea a las 11:00 de la mañana de mañana.
    • at 11:00 AM tomorrow
  7. Programa una tarea a ejecutar después de 1 hora.
    • at now + 1 hour
  8. Programa una tarea a ejecutar después de 30 minutos.
    • at now + 30 minutes
  9. Programa una tarea a ejecutar después de 1 y 2 semanas.
    • at now + 1 week
    • at now + 2 weeks
  10. Programa una tarea a ejecutar después de 1 y 2 años.
    • at now + 1 year
    • at now + 2 years
  11. Programa una tarea a ejecutar a la media noche.
    • at midnight
  12. Programa una tarea a ejecutara al medio día(a las 12:00 horas).
    • at noon

Instalación y estado del servicio de at

  • Para instalar at usar el siguiente comando: apt-get install at
  • Para verificar si el servicio de at esta activo: service atq status
  • si es necesario iniciar el servicio: atd start/running, process 1010

Resumen

  • crontab –e para editar el archivo de tabulador de crontab tenemos primero minuto, luego hora, luego día del mes, luego mes, luego día de la semana y por ultimo el comando y teniendo en cuenta que el asterisco es el comodín que significa todos las días, todas las horas, todos los minutos
  • en el caso de at entonces la sintaxis es diferente , es at la hora el minuto se separa con un espacio y luego se le indica el mes el día del mes y el año que se quiere que se ejecute la tarea at 7:50 05/13/2015 con atq se ven los trabajos y con atrm se borran los trabajos y recuerden dar control para cada vez que se guarda una tarea dentro del at

Bueno y con esto terminamos esta parte de automatización y programación de tareas, En las próximas entregas del curso vamos a estar viendo la parte de instalación ¿porque? Porque nosotros hemos asumido que somos usuarios de un sistema con los comando que hemos venido viendo durante todas estas entregas del curso anteriores, pero entonces ahorita vamos a ser los que gestionamos nuestro sistema y la primera cosas que debemos saber es como instalar Linux entonces vamos a ver de ahora en adelante 4 capítulos en los cuales tendremos instalación de Linux Suse, de Linux centos , de Linux fedora, Linux debian y por ultimo de Linux Ubuntu.

Sobre César Zúniga

Soy un apasionado de la tecnología, desde siempre me ha encantado la posibilidad de crear que existe en el mundo digital, pero más me gusta la posibilidad que Proyecto Byte me brinda para ayudar a los de más a disfrutar de este mundo digital.

Un comentario

  1. Que tal artista!!!
    Veo que no subes vídeos desde hace tiempo y me preguntaba si te ha pasado algo o ya no deseas seguir con los tutoriales de linux. Tengo entendido que ya te recuperaste de tu lesión y que estabas poniendo al dia tu trabajo, pero en el penúltimo vídeo comentabas como no ibas a dejar los tutoriales a un lado.
    Un abrazo compañero y gracias por la labor que te has tomado en grabar y editar todos los vídeos.

Comentar

Su dirección de correo electrónico no será publicada.Los campos necesarios están marcados *

*