Hoy veremos un ejemplo de crontab para ejecutar un script cada 5 minutos.
Ejemplo de crontab
Recientemente instalé el servidor Memcached en el sistema operativo CentOS para usarlo como mecanismo de almacenamiento en caché para mi foro VBulletin. Para asegurarme de que se esté ejecutando siempre, escribí un script de shell para verificar el estado del proceso y reiniciarlo si no se está ejecutando. Ahora, para asegurarme de que este script se ejecute en un intervalo específico, utilicé crontab
.
Ejemplo de script de shell Crontab
El script de shell es extensible y puede escribir un script similar para reiniciar cualquier servicio o proceso en sistemas Unix.
Aquí está el script de shell para el servicio de reinicio automático que estoy usando en mi ejemplo de crontab.
memcached_restart.sh
#!/bin/bash
ps -eaf | grep 11211 | grep memcached
# if not found - equals to 1, start it
if [ $? -eq 1 ]
then
/usr/local/bin/memcached -d -u nobody -p 11211 -U 11211 -l 127.0.0.1
else
echo "eq 0 - memcached running - do nothing"
fi
El comando principal en este script es verificar el proceso, use el comando "ps" con grep para asegurarse de que devuelva solo el servicio deseado y no devuelva nada si el servicio no se está ejecutando.
Una vez que haya encontrado el comando a usar, lo único que tiene que hacer es emitir un comando de inicio para ejecutar el servicio.
Pruebe el script para asegurarse de que funciona como se esperaba antes de configurarlo para que se ejecute a intervalos regulares mediante crontab.
Ejemplo de crontab cada 5 minutos
Una vez que haya terminado con la secuencia de comandos, debe configurar un trabajo cron para ejecutar esta secuencia de comandos a intervalos regulares.
Utilicé la siguiente entrada para ejecutar esta secuencia de comandos cada 5 minutos.
*/5 * * * * /Users/pankaj/Downloads/memcached_restart.sh > /Users/pankaj/Downloads/memcache_restart.log 2>&1
Error crontab:comando no encontrado
Tenga en cuenta que crontab no considera variables de entorno como PATH, por lo que siempre debe proporcionar una ruta absoluta para cualquier programa o ubicación de directorio. Si obtiene el error "comando no encontrado" mientras ejecuta un comando en un script de shell crontab y funciona bien si lo ejecuta usted mismo, entonces usar la ruta relativa será el problema.
Referencia:Wikipedia