Manual basico de cron

Solo disponible en BuenasTareas
  • Páginas : 10 (2454 palabras )
  • Descarga(s) : 0
  • Publicado : 15 de diciembre de 2011
Leer documento completo
Vista previa del texto
MANUAL BÁSICO DE CRON
Copyright 2005-2008 Sergio González Durán
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation. [pic]
Esta es una introducción a cron, cubre lo básicode lo que cron puede hacer y la manera de usarse.

¿Qué es cron?
Cron es el nombre del programa que permite a usuarios Linux/Unix ejecutar automáticamente comandos o scripts (grupos de comandos) a una hora o fecha específica. Es usado normalmente para comandos de tareas administrativas, como respaldos, pero puede ser usado para ejecutar cualquier cosa. Como se define en las páginas del manual decron (#> man cron) es un demonio que ejecuta programas agendados.
En prácticamente todas las distribuciones de Linux se usa la versión Vixie Cron, por la persona que la desarrolló, que es Paul Vixie, uno de los grandes gurús de Unix, también creador, entre otros sistemas, de BIND que es uno de los servidores DNS más populares del mundo.

Iniciar cron
Cron es un demonio (servicio), lo quesignifica que solo requiere ser iniciado una vez, generalmente con el mismo arranque del sistema. El servicio de cron se llama crond. En la mayoría de las distribuciones el servicio se instala automáticamente y queda iniciado desde el arranque del sistema, se puede comprobar de varias maneras:
#> /etc/rc.d/init.d/crond status
#> /etc/init.d/crond status Usa cualquiera de los dos dependiendo de tudistro
crond (pid 507) is running...

o si tienes el comando service instalado:
#> service crond status
crond (pid 507) is running...

se puede también revisar a través del comando ps:
# ps -ef | grep crond

si por alguna razón, cron no esta funcionando:
#> /etc/rc.d/init.d/crond start
Starting crond: [ OK ]
Si el servicio no estuviera configurado para arrancar desde unprincipio, bastaría con agregarlo con el comando chkconfig:
#> chkconfig --level 35 crond on

Usando cron
Hay al menos dos maneras distintas de usar cron:
La primera es en el directorio /etc, donde muy seguramente encontrarás los siguientes directorios:
• cron.hourly
• cron.daily
• cron.weekly
• cron.monthly
Si se coloca un archivo tipo script en cualquiera de estosdirectorios, entonces el script se ejecutará cada hora, cada día, cada semana o cada mes, dependiendo del directorio.
Para que el archivo pueda ser ejecutado tiene que ser algo similar a lo siguiente:
#!/bin/sh
#script que genera un respaldo
cd /usr/documentos
tar czf * respaldo
cp respaldo /otra_directorio/.
Nótese que la primera línea empieza con #!, que indica que se trata de un script shellde bash, las demás líneas son los comandos que deseamos ejecute el script. Este script podría nombrarse por ejemplo respaldo.sh y también debemos cambiarle los permisos correspondientes para que pueda ser ejecutado, por ejemplo:
#> chmod 700 respaldo.sh
#> ls -l respaldo.sh
-rwx------ 1 root root 0 Jul 20 09:30 respaldo.sh
La "x" en el grupo de permisos del propietario (rwx) indica que puedeser ejecutado.
Si este script lo dejamos en cron.hourly, entonces se ejecutará cada hora con un minuto de todos los días, en un momento se entenderá el porque.

Como segundo modo de ejecutar o usar cron es a través de manipular directamente el archivo /etc/crontab. En la instalación por defecto de varias distribuciones Linux, este archivo se verá a algo como lo siguiente:
#> cat /etc/crontabSHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Las primeras cuatro líneas son variables que indican lo siguiente:
SHELL es el 'shell' bajo el cual se ejecuta el cron. Si no se...
tracking img