Ir al contenido principal

Cron y crontap. Para apagar mi ordenador todos los días a la misma hora. (solo GNU/Linux)


Terminología
cron: es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes).

crontab: es un fichero que guarda los procesos que deben ejecutarse y la hora en la que deben hacerlo. El nombre cron viene del griego chronos (χρόνος) que significa “tiempo”.

Cron se podría definir como el “equivalente” a Tareas Programadas de Windows.” A simples palabras el Cron es una utilidad en la que nosotros podemos configurar, acciones, ya sean ejecución de tareas o aplicaciones, cuando lo necesitemos.

El Crontab o cron se divide en 2 partes, el cron sería el demonio o proceso que lanza las aplicaciones y el crontab es el archivo de configuración donde colocaremos las lineas a ejecutar.

Apagar el ordenador todos los días a las 18 horas 30 minutos, dando un aviso sonoro


Si queremos programar el apagado del ordenador todos los días a las 18:30 horas, tal y como se puede ver en la captura de pantalla, tenemos que introducir el siguiente comando dentro del archivo crontab pero de root:
sudo nano /etc/crontab 

Metes la clave (administrador) y luego introduces al final el siguiente script
Este script, da un aviso con voz 2 minutos antes y apaga

# Agregar a la hora indicada (esto es 19:00 de ejemplo)


30 18   * * *   root  act
58 18   * * *   root    /home/scripts/hablar_apagado.sh
00 19   * * *   root   /sbin/shutdown -P now



Este es el código del script del sonido hablar_apagado
ubicado en: /home/scripts/hablar_apagado.sh

Requisitos: instalar  espeak
sudo apt install espeak


Código
******************************************************
#!/bin/bash
# Dar un mensaje de sonido
#Guardar en: /home/scripts/hablar_apagado.sh
espeak -ves "Este, ordenador, se, auto,apagará, en, dos, minutos, por favor,tome, medidas"
********************************************************

Las comas son para dar una pausa en la pronunciación.
Guardamos (ctrl+o) los cambios
y cerramos el fichero (ctrl+x)
Debes de reiniciar el servicio cron. Para ello ejecutamos el siguiente comando en la terminal:

sudo service cron restart
Una vez reiniciado el servicio el proceso ha finalizado. 





Algunos comandos útiles en crontab
Para editar o listar las tareas del cron lo podemos hacer mediante el comando crontab. Para listar las tareas se usa el modificador -l:
crontab -l

Para editar las tareas es con el modificador -e:
crontab -e

Y para eliminarlas con el -r:
crontab -r

En el caso de root podemos usar estos comandos para cualquier usuario simplemente indicando mediante -u el nombre de este:
sudo crontab -l -u usuario

Más detalles
Un cron job consta de seis campos y luce como la siguiente línea:

1 2 3 4 5 /path/to/command

Donde:
1: Minuto (0-59)
2: Horas (0-23)
3: Día (0-31)
4: Mes (0-12 [12 == diciembre])
5: Día de la semana (0-6 [0 == domingo])
/path/to/command – Ruta del script o comando a programar

 


Los ejemplos más comunes de configuración son:
Supóngase que guardamos un ejecutable "chito.sh" en una carpeta "script"

 
 
- Ejecutar el script chito.sh a las 10:15 a.m. todos los días 
15 10 * * * usuario ~/scripts/chito.sh

- Ejecutar el script chito.sh todos los domingos a las 10:00 a.m 
00 10 * * 0 usuario~/scripts/chito.sh

- Ejecutar el script chito.sh el día 20 de noviembre a las 7:30 
30 7 20 11 * usuario~/scripts/chito.sh

- Ejecutar el script chito.sh el día 11 de noviembre a las 7:30 a.m. y que sea domingo. 
30 7 11 11 usuario~/scripts/chito.sh

- Ejecutar el scriptchito.sh cada minuto de cada hora todos los días. 
01 * * * * usuario ~/scripts/chito.sh

- Ejecutar el script chito.sh a las 5:30 de la tarde todos los días de lunes a viernes. 
30 17 * * 1,2,3,4,5 usuario ~/scripts/chito.sh

- Ejecutar el script chito.sh a las 12 del día todos los días primero, quince y 28 de cada mes. 
00 12 1,15,28 * * usuario ~/scripts/chito.sh

- Ejecutar el script chito.sh transcurridos 23 minutos después de la medianoche, 2am, 4am ..., todos los días. 
23 0-23/2 * * * usuario ~/scripts/chito.sh

- Ejecutar el script chito.sh 5 minutos después de las 4am cada domingo. 
5 4 * * usuario ~/scripts/chito.sh



Otra manera de configurar cron’s es usando los predeterminados:# cd /etc/ Podemos editar y usar estas 4 posiciones:
# vi cron.hourly
# vi cron.daily
# vi cron.weekly
# vi cron.monthly



Extraído de : http://www.linuxforthefuture.com/tareas-automaticas-crontab/



Webgrafía

Comentarios