[Manual] Usando el crontab en Linux

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

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.

Si sólo existe cron.deny  y está vacío, todos los usuarios pueden utilizar crontab. Si no el archivo existe, sólo el usuario root puede usar crontab. El permitir / denegar archivos constan de el nombre de usuario en cada línea.
Lo anterior no lo pude localizar correctamente en Open suse, de todos modos, utilicen en este caso acceso como root y se evitaran problemas.
Ahora para poder trabajar con el cron vamos a ver como podemos configurarlo o modificarlo.
Podemos usar linux-g5yh:/home # export EDITOR = vi para especificar un editor por default para editar el archivo del crontab, pueden usar pico, nano, etc, pero a mi me gusta mas el Vim o Vi
Ahora usaremos los siguiente comandos dependiendo de lo que deseemos hacer
linux-g5yh:/home #crontab-e Con este comando podremos editar nuestro archivo crontab, si no existe dicho archivo se crea.
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.)
Ahora que ya sabemos como configurar el archivo del crontab, ahora veamos como podemos agregar tareas, a dicho archivo.
———————————————————————————————————————–

*     *   *   *    *  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 posts:

  1. [Tutorial] Creando Virtual Host de Apache usando Linux Hasta hoy creo que voy a escribir algo util, pero...
  2. [Manual] Instalando Firefox 3 en Debian Etch 4 Como saben estoy desde hace unos días en mi Debian,...
  3. [Ajaxman] Usando Linux: Debian estable, inestable u Open Suse Ya regrese como se darán cuenta, y es que ahora...
  4. [Linux] Solución a la baja velocidad de internet en Open Suse 11.0 Tal como les comente ando bien apurado con un buen...
  5. [Linux-BSD] Las principales diferencias entre Linux y Free BSD La mayoria de gente que no usa Windows usa Linux,...

Related posts brought to you by Yet Another Related Posts Plugin.

3 Responses

50 11 * * * curl -k http://rutadelcgi en laweb

Significa que todos los duias a las 11 50 am

xD
Saludos

03.20.2009

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???

11.25.2009

Qué explicación tan sencilla y completa. Y yo que pensaba que crontab era más complicado… me has iluminado… Hasta luego.

Comentar

* Name, Email, Comment are Required

Mis Tweets Ajaxman


Categorias

Historico de entradas publicadas