Tareas Programadas
Cron
Administrador de tareas
Se utiliza para reproducir un script en un momento concreto , entre otras cosas.
Su carpeta se encuentra en:
Fichero: /etc/crontab (ahí guardaremos los scripts)
Tabla de referencia imaginaria para el comando.
| Minutos | Horas | Día del mes | Mes | Día semana | 
|---|---|---|---|---|
| 01 | * | * | * | * | 
Ejecutar cada minuto 1 de cada hora de cada día del mes, mes y día de la semana.
| */5 | * | * | * | * | 
|---|---|---|---|---|
Ejecutar cada 5 minutos.
| 15 | 20 | * | * | * | 
|---|---|---|---|---|
Ejecutar a las 20:15 horas de cada día, mes, etc..
| 45 | 19 | 1 | * | * | 
|---|---|---|---|---|
Ejecutar cada 1er día del mes a las 19:45
| 30 | * | 10 - 25 | * | 6 - 7 | 
|---|---|---|---|---|
Ejecutar cada 30m de cada hora los días del 10 al 25 todos los meses sábados y domingos
| 00 | 18 - 20 | 25 | 3 - 7 | 1,3,6 | 
|---|---|---|---|---|
Ejecutar cada hora entre las 18:00 y 20:00 el día 25 del mes entre marzo y julio si es lunes(1), miércoles(3) o sábado(6).
Los guiones marcan rangos y las comas para números específicos.
Comando:
15 20 * * * “user” “ruta absoluta del script”
(Importante) Respetar los espacios, user y ruta no llevan asteriscos””.
Tabla de referencia imaginaria para el comando.
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
Ejemplos
| Minutos | Horas | Día del mes | Mes  | Día semana |
#Ejecutar cada minuto 1 de cada hora de cada día del mes, mes y día de la semana.
01 * * * *
#Ejecutar cada 5 minutos.
*/5 * * * *
#Ejecutar a las 20:15 horas de cada día, mes, etc..
15 20 * * *
#Ejecutar cada 1er día del mes a las 19:45
45 19 1 * *
#Ejecutar cada 30m de cada hora los días del 10 al 25 todos los meses sábados y domingos
30 * 10-25 * 6-7
#Ejecutar cada hora entre las 18:00 y 20:00 el día 25 del mes entre marzo y julio si es lunes(1), miércoles(3) o sábado(6).
00 18-20 25 3-7 1,3,6
#viernes 12:15 de la noche
15 00 * * 6
crontab -l 
crontab -e
crontab -r 
■  ~ sudo cat /var/spool/cron/isx47787241  
crontab fichero
At
at programa tareas a una hora y dia determinados, esta tarea se ejecutara siempre que el pc este encendido en la fecha indicada, de no ser así se perderá la tarea.
Dentro del directorio /var/spool/at/ crea un fichero con cada una de las tareas por hacer.
ejemplos
ver tareas adjudicadas
atq
borrar una tarea del at programada
atrm 3  
Ejecutar un script a una hora determinada
at -f backup.sh 10:22
Programa una tarea para dentro de 5 minutos que elimine de un directorio todos los ficheros con extensión .tmp .
at now +5 minutes
find /tmp/ -name *.tmp -exec rm {} \;
Programa una tarea con at a las 17:00 de hoy para que elimine los ficheros del directorio descargas de tu sistema.
at 17:00 
sudo find /tmp/descargas/* -exec rm {} \;
Denegar a un usuario utilizar at
echo "user" >> /etc/at.deny
at 11:00
You do not have permission to use at.
Diferentes formatos de usar at
- formato HH:MM
at 11:00 # proramas a una hora especifica
- midnight
at midnight # se ejecuta a media noche 00:00
- noon
at moon # medio día 12:00
- teatime
at 4pm 0 am # formato 12 horas
- formato del nombre-mes, día y año
at -v jan 30 2018
Tue Jan 30 10:40:00 2018
- formato MMDDYY, MM/DD/YY, o MM.DD.YY
at -v 12/10/2017
Sun Dec 10 10:42:00 2017
at -v 12102017  
Sun Dec 10 10:44:00 2017
- now + time
at -v now + 5 days
Wed Dec  6 10:46:00 2017
t -v now + 60 minutes
Fri Dec  1 11:47:00 2017
at -v 2:30 PM 21.10.20
Wed Oct 21 14:30:00 2020
Crea un script que abra un nuevo terminal dentro de 5 minutos.
at -v now +5 minutes   
Fri Dec  1 11:13:00 2017
at> export DISPLAY=:0
at> gnome-terminal
Programa una tarea que muestre la fecha mañana y 5 minutos .
at -v tomorrow +5 minutes
date >> /dev/pts/0
Batch
batch permite no cargar el systema en caso de que este por encima de un porcentaje concreto.
Aunque at le diga que ejecute el script batch esperara a ejecutar este mismo hasta que el systema este por debajo del porcentaje indicado.
En el siguiente ejemplo le indicamos a batch que se ejecute cuando el systema esté por debajo del 10% y en un intervalo entre script y script de 60 segundos
atd -l 0.1 # cambiar nivel de carga de batch
atd -b  60 # número de segundos que tardará en ejecutar entre tareas segundos
Ejemplo
Ejecutar un script en 5 minutos
at now +5 minutes
warning: commands will be executed using /bin/sh
at> batch -f script