Bueno hoy es viernes y no hay que hacer nada ¿no creen?, ojala y así fuera pero hay bastante chamba, bueno regular, pero veamos un poco sobre como usar el famoso crontab que a veces me ha costado trabajo, bueno aquí les pondré un pequeño manual espero que les sea de utilidad, cualquier pregunta no duden, para eso están los comentarios.

Terminal
El crontab, es un archivo en donde podemos configurar tareas para que se ejecuten automáticamente en nuestro sistema, digamos por ejemplo descargar un archivo de respaldo diariamente, o borrar ciertos archivos periódicamente, ejecutar un script que haga algo, etc, digamos que podemos automatizar las tareas, para no estar haciéndolas a mano.
Para poder ejecutar el crontab, regularmente no es necesario hacer nada, mas que ejecutar cierto comando y ya estará funcionando, en la mayoría de distribuciones que he probado (ubuntu,open suse, debian, gentoo)regularmente esta por default, de todos modos si surgen dudas están los comentarios.
También debemos de revisar que para poder ejecutarlo nuestro nombre de usuario debe de aparecer en /usr/lib/cron/cron.allow, o en dado caso que no aparezcamos dentro de la lista /usr/lib/cron/cron.deny.
linux-g5yh:/home #crontab-l Muestra el contenido del archivo crontab.
linux-g5yh:/home #crontab-r Eliminar el archivo crontab(ejecutar esta instrucción con cuidado).
linux-g5yh:/home #crontab-v Muestra la última vez que editó su archivo crontab. (Esta opción sólo está disponible en algunos sistemas.)
* * * * * comando_a_ejecutar
- - - - -
| | | | |
| | | | +—– dia de la semana (0 – 6) (Domingo=0)
| | | +——- mes(1 – 12)
| | +——— dia del mes (1 – 31)
| +———– hora (0 – 23)
+————- minuto (0 – 59)
——————————————————————————————————————-
Bajo el anterior criterio vamos a poner un cron job que se ejecute a las 10 de la noche, el cual solo reinicia el apache server
linux-g5yh:/home #crontab-e
* 10,20 * * * /etc/init.d/apache2 restart
:wq //guardamos el archivo en el vi
linux-g5yh:/home #
Ahora un ejemplo un poco mas difícil, bajar un respaldo a las 2:20 am y a las 2:20 pm, bajar un segundo respaldo 25 minutos después, ejecutar el script de los respaldos cada 30 minutos los viernes.
linux-g5yh:/home #crontab-e
20 2,14 * * * wget http://www.tudominio.com/logs/respaldo.backup
45 2,14 * * * wget http://www.tudominio.com/logs/respaldo.backupSegundo
30 * * * 5 http://www.tudominio.com/generarrespaldos.php
:wq //guardamos el archivo en el vi
linux-g5yh:/home #
Listo con esto creo que ya podemos empezar a trabajar con nuestro cronjob, y de paso como anotación para que no se me olvide, luego les pongo un manual de como usar el vi,
Fuente y más documentación en Ingles | Crontab – Quick reference
Related Photos
No related photos.







6 Responses
50 11 * * * curl -k http://rutadelcgi en laweb
Significa que todos los duias a las 11 50 am
xD
Saludos
hola tengo una consulta acerca del crontab.. lo que yo necesito hacer es que me aparezca un mensaje en el entorno grafico diciendo que se van a apagar las computadoras.
de que manera puedo hacer esoo ???
tengo que ponerlo en algun lugar del script???
Qué explicación tan sencilla y completa. Y yo que pensaba que crontab era más complicado… me has iluminado… Hasta luego.
Buenas, necesito una ayudita. Hice un script en bash para realizar un backup de mi base de datos. Cuando lo ejecuto como root funciona como debe funcionar, pero cuando lo agrego en el crontab, no reconoce una de las lineas del script y en consecuencia no funciona. Parte del script:
#!/bin/bash
#Obtenemos el Espacio de memoria ocupado, expresado en %
ESPACIO_OCUPADO=`df /$DIR_BD | awk ‘{print $5}’ | grep -a %`
#Para verificar que el espacio_ocupado no supere un valor determinado.
#Quitamos el simbolo % para poder trabajar solo con numeros.
ESPACIO_ABSOLUTO=`expr match “$ESPACIO_OCUPADO” ‘\([0-9]*[0-9]\)’`
Esta ultima linea, no funciona cuando se ejecuta con el crontab. Lo que hace es quitarle el simbolo % para poder trabajar solo con mumeros.
Por que como root funciona correctamente y con el crontab no?
Cualquier ayudita se los agradeceria un monton.
Muchas gracias.-
Saludos.-
Ejecuto un script php de esta manera:
*/1 * * * * /usr/bin/php /usr/local/polin/voice.php
Este descarga un archivo con wget.
El problema es que al dercargar el archivo lo hace en /root y no en /usr/local/polin
Alguien sabe como hago para que se descargue en el directorio donde esta el php?
Gracias
porque no pones un soft link que lo que llegue a root lo pase a /usr/local/polin
creo que seria ln -s /root /usr/local/polin
debe de haber mas formas, pero igual y es una solucion
saludos!