Reiniciar Apache a una hora concreta en Ubuntu
Crontab es un administrador de procesos en segundo plano del sistema operativo Unix que se encarga de ejecutar procesos o scripts a intervalos regulares.
Este administrador nos permite programar tareas automáticas en forma de script que pueden ayudarnos con la administración de un servidor.
En este post, veremos una tarea en concreto que será añadir al crontab un proceso que reiniciará el servicio de apache a una hora en concreto.
En este ejemplo vamos a utilizar el editor de texto nano, así que si no lo tenemos, empezamos por instalarlo conectandonos por SSH y ejecutando el comando:
apt-get install nano
Ahora podemos ejecutar el siguiente comando para ver las tareas existentes de crontab si las tenemos:
crontab -l
En caso de no tenerlas, no aparecerá nada en pantalla.
Procedemos a añadir nuestra primera tarea al crontab con el comando:
crontab -e
Con este comando, se nos abrirá nuestro editor de texto por defecto, o nos preguntará cual de los que tenemos vamos a utilizar.
Con el editor de texto abierto, añadimos el siguiente código que será el encargado de ejecutar el comando de reiniciar apache a una hora en conreto, en este caso, a las 2 de la madrugada.
0 2 * * * service apache2 restart
Si estamos con el editor nano hacemos la combinación de teclas Ctrl + O para guardar los cambios.
Formato Explicado del Crontab
En el ejemplo anterior, vemos que utilizamos el 02 para fijar una hora, pero que los tres valores restantes los dejamos con *. Explicamos la estructura con un ejemplo:
Ejemplo
Si queremos que se ejecute el comando init 6 el día 15 de Marzo a las 23:15 tendríamos que poner:
15 23 15 3 * init 6
Si queremos que se ejecute el comando init 6 los jueves a sábado a las 15:00 tendríamos que poner:
0 15 * * 4-6 init 6