Friday, June 17, 2005

caxcan cronado? no mas bien caxcan y cron

hoy hablaremos un poco de esta maravillosa herramienta que tiene nuestro linux/BSD, la cual nos es util para hacer tareas que se tienen que realizar periodicamente como son el respaldar nuestre info del server o dejar pendiente una tarea que ocupa muchos recursos y no se debe de hacer en una hora pico.
para esto vamos a usar una herramineta que se llama cron, que lo que hace esta herramienta es estar checando continuamente las tareas pendietes para ver si es hora de hacerlas o si estan todavia pendientes esperando una hora determinada para ejecutarse.
bueno ahora vamos a ver como funciona esta herramienta y que se ocupa para que funcione.
Pues en primer lugar esta es una herramienta que se instala automaticamente cuando instalamos nuestra distro, ya que el mismo linux utiliza para correr algunas funciones que el mismo necesita.
Cabe mencionar que el unico usuario predetrminado para usar este gran servicio es root, pero bueno no se preocupen aqui vamos a ver como tambien otro usuarios pueden acceder a esta maravillosa heramienta que nos facilita la vida enormemente.
lo que tenemos que hacer es como root modificar el siguiente archivo /etc/crontab.
#vi /etc/crontab
lo que nos aparece a continuacion es algo como esto :

SHELL=/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

vamos aveer que cosas raras son estas, y pues las primeras 4 lineas podriamos decir que son una declaracion de variables, osea todas las palabras en mayusculas son variables que utiliza cron.
y bueno las otras 5 lineas son asi las tareas que realiza cron, salvo la primera que es un comentario, pero vemamos como esta estructuradas :

01 * * * * root run-parts /etc/cron.hourly

01 es el minuto de ejecucion , osea cada primer minuto de cada hora, osea la primer columna especifica en que minuto de cada hora se ejecuta la tarea y puede tener valores de 0-59.
bueno la segunda columna es para las horas, igual uno puede especificara que hora se ejecuta ta comando 0-23, tercer columna pues dia del mes 1-31, cuarta columna en que mes 1-12, y la ultima columna pues dia de la semana 0-7 donde 0 y 7 son domingo , y bueno aqui nosotros podemos hacer nuestras convinaciones necesarias para ejecutar nuestra tarea necesaria el dia que queramos, ala hora que queramos y el mes que queramos.
La siguiente parte es el comando o ruta de scrips a realizar en esa fecha, osea se puede poner asi como cualquiera de los ejemplos anteriores o simplemente:
01 * * * * cp -r /var/logs /home/yo
que lo que hace es copiar cada hora los logs que hay en nuestro sistema, osea aqui es cuestion de imaginacion para ver que queremos hacer y a que hora.

Ahora vamos a ver como cada usuario puede usar este servicio, y bueno aqui nosotros decidimos quien usa este servicio ya que el administrador tiene que dar de alta a cada usuario que quiera usar este servicio.
pues para que un usuario pueda usar este servicio uno tiene que teclear como root lo siguiente:
#crontab -e -u usuario
despues salir y guaradar el archivo, y bueno una vez creado este archivo lo siguiente es generar el archivo /etc/cron.allow y anadir al usuario que se desea dar de alta.
Aqui ya con estos pasos cada usuario que se encuentre anadido en esa lista puede usar este servicio.
Una nota adicional es que en el archivo cuando el usuario entre a anadir sus tareas hay que poner las variables que vimos anteriormente como MAIL, SHELL, etc.
y bueno para que cada usuario pueda anadir sus tareas solo hay que escribir :
$crontab -e

1 comment:

Anonymous said...

No te olvides del comando at, ese es un comando muy sencillo de usar y al que todos los usuarios tienen acceso (claro si es que lo tienes instalado). Funciona muy parecido al cron... deberias de darle una checada :-)