29 julio, 2010

Programar Tareas en Linux - Crontab

Hola Linuxeros! y no linuxeros! ¬¬

Este dia se me a encomendado la tarea (ya me oi como los ke se suben al bus) de entregarles un tutorial ke la verdd es muy util en linux

al principio no sabia de esta herramienta en linux y esperaba ver algo como el GUI de Guin2us -Agregar Tareas Programadas- y toda la cosa, XD, hasta ke me dijeron de la existencia de Cron y su utilidad "Crontab -e" ke la verdd esta muxo + facil

SEGUIR LEYENDO...

ya vienen instalados en la mayoria de las Distros pero en caso contrario lo puedes instalar con:
$sudo apt-get install cron

y procedo a explikar como utilizar crontab:

lo primero es saber ke crontab se configurara bajo cada usuario del sistema, y se creara un archivo donde se ejecutaran las tareas por usuario.

Vamos a una terminal y escribimos crontab -e y nos saldra la siguiente pregunta, sobre ke editor de texto se utilizara para cron:

nos mensiona tres editores dentro de terminal ke podemos usar ed, vim y nano (yo prefiero nano pues es mas sencillo); seleccionamos el ke keramos escribiendo el numero del editor [en mi kso "2" "nano"] (esto se hace solo la primera vez ke se configura crontab)

y se abre el archivo de configuracion de crontab para este usuario

aparece una linea comentada con la instruccion o guia para agregar las tareas
# m h dom mon dow command

donde:
m
: minuto [0-60]
h
: hora [0-23]
dom
: dia del mes [1-31]
mon
: mes [1-12]
dow
: dia de la semana [0-6] siendo el cero Domingo
commnad
: comando a ser ejecutado o la ubicacion de un script

Podemos tambien editar, listar y/o eliminar las tareas ke otro usuario tenga:
crontab -e -u %usuario% = edita los crontabs de x usuario
crontab -l -u %usuario% = lista los crontabs ke se ejecutan para x usuario
crontab -r -u %usuario% = elimina sus crontabs

sabiendo eso ahora es cuestion de aplicacion.

Por ejemplo si keremos ke un servidor se reinicie cada viernes a las 5 de la tarde:





Nota
:
Recuerden ke solo Root puede ejecutar comandos como apagar o reiniciar


Otro ejemplo:
supongamos tenemos un archivo por lotes de comandos (script) en nuestra carpeta Home y keremos ke se ejecute cada minuto





y komo el ejemplo anterior si necesitara permisos de administrador basraria anteponerle al comando "sudo"

si lo ke necesitamos es ejecutar algo cada 25 de cada mes:





Otros Ejemplos practikos:

# Ejecución de un comando todos los días a media noche
0 0 * * * /comando

# Ejecución de un comando cada hora en punto
0 * * * * /comando

# Ejecución de un comando el primer día de cada mes a las 0 y a las 12 horas
0 0,12 1 * * /comando

# Ejecución de un comando el día 12 que sea domingo, lunes o sábado a las 2 de la mañana
0 2 12 * 0,1,6 /comando

# Ejecución de un comando cada 5 minutos
*/5 * * * * /comando

#Ejecución de un comando cada media hora
0,30 * * * * /comando

Un ejemplo ke aplike hace poko en mi trabajo fue el de respaldar los Startup-Config de los routers y switches los dias lunes, miercoles y sabados a las 11 de la noche hacia un servidor tftp mediante un script ke hice y lo guarde en un servidor ke esta activo durante todo el dia y otro escript ke realiza una copia semanal de los startups ke recoge y los archiva (este segundo cada domingo a las 9:00 am

la linea del crontab me kedo asi:

#Backup de startup-configs
0 23 * * 1,3,6 /home/server/backup_tftp.sh
0 9 * * 0 /home/server/backup_semanal_startups


Recuerden de dale los permisos necesarios a cada escript o comando para su corecta aplikacion, ya sea con sudo o permisos de ejecucion (chmod 777)

Nos veremos despues con alguna otra idea ke se me ocurra para subir al blog, espero les sirva esto, XP


No hay comentarios:

Publicar un comentario

Porfa deja un comentario y tu nombre si te sirvio el tema, me intesesa saber d dond eres y si te ayude en algo o algo mas en ke ayudar