programacion de tareas

Upload: edgar-pallarozo

Post on 08-Jan-2016

2 views

Category:

Documents


0 download

DESCRIPTION

Programacion de Tareas en Linux

TRANSCRIPT

  • TTeeccssuupp

    VViirrttuu@@ll

    AAAuuutttooommmaaatttiiizzzaaaccciii

    nnn TTTaaarrreeeaaasss

    Copyright 2010 por TECSUP

  • Automatizacion de Tareas Tecsup Marzo 2010

    Pgina 2

    INDICE

    1. Introduccin ................................................................................ 3 2. Objetivos ..................................................................................... 3

    3. Ntp ............................................................................................... 3 3.1. Descripcin ..................................................................... 3 3.2. Servidores Ntp ................................................................. 4 3.3. Comando (ntpdate) .......................................................... 4

    4. Clock ........................................................................................... 4

    4.1. Comando (hwclock) ........................................................ 5

    5. Automatizacin de tareas ............................................................ 6

    5.1. Comando at .................................................................. 7 5.2. Comando (cron, crontab) .............................................. 10

    6. Resumen .................................................................................... 13 7. BIBLIOGRAFIA ....................................................................... 13

  • Tecsup Automatizacion de Tareas Marzo 2010

    Pgina 3

    Automatizacin de Tareas 1. Introduccin

    El tiempo es un factor de referencia que los Sistemas Operativos lo usan para asignarlos a sus procesos en sus operaciones a realizar donde se cronometra el tiempo de vida del proceso tambin en la asignacin de informacin del tiempo a los archivos y directorios para saber informacin de cuando se genero, modifico. En este captulo detallaremos cmo funciona el clock y herramientas de automatizacin de tares.

    2. Objetivos Describir el funcionamiento del Clock

    Planificar ejecucin de tareas en el tiempo. 3. Ntp

    Network Time Protocol (NTP) es un protocolo de Internet para sincronizar los relojes de los sistemas informticos. NTP utiliza UDP como su capa de transporte, usando el puerto 123. Con NTP podemos usarlo de referencia para sincronizar los relojes de los Servidores y tener un tiempo igual.

    3.1. Descripcin NTP utiliza el Algoritmo de Marzullo con la escala de tiempo UTC, incluyendo soporte para caractersticas como segundos intercalares. NTPv4 puede mantenerse sincronizado con una diferencia mxima de 10 milisegundos (1/100 segundos) a travs de Internet, y puede llegar a acercarse hasta 200 microsegundos (1/5000 segundos) o ms en redes de rea local sobre condiciones ideales. NTP es uno de los protocolos de internet ms viejos que siguen en uso (desde antes de 1985). NTP fue diseado originalmente por Dave Mills de la Universidad de Delaware, el cual lo sigue manteniendo, en conjunto con un equipo de voluntarios. El demonio NTP de Linux, es un proceso de nivel de usuario que se ejecuta continuamente en la mquina que soporta NTP, y la mayor parte del protocolo est implementado en este proceso de usuario. Para obtener el mejor rendimiento de NTP, es importante tener un reloj NTP estndar con lazo de seguimiento de fase implementado en el kernel del Sistema operativo, en vez de slo usar la intervencin de un demonio NTP externo:

    El protocolo NTP es soportado por todos los Sistemas Operativos (Linux, Windows, Mac)

  • Automatizacion de Tareas Tecsup Marzo 2010

    Pgina 4

    todas las versiones actuales de GNU/Linux y Solaris soportan esta caracterstica.

    3.2. Servidores Ntp Diferentes organizaciones ofrecen de manera libre sus Servidores NTP. Estos Servidores va comunicacin NTP entregaran la informacin del tiempo y que el Cliente al recibirla actualizare su reloj. Al usar comunicacin UDP la transferencia de la informacin es rpida.

    3.3. Comando (ntpdate)

    ntpdate es un comando que permite sincronizar la fecha y hora de nuestros sistemas con servidores de hora en Internet, para ciertas tareas es crtico que la hora del servidor sea la correcta,

    En Linux actualizar el Clock conectndose a un Servidor de Tiempo:

    4. Clock El reloj por software de un sistema Linux no siempre es preciso. Para mantener este reloj Linux utiliza una interrupcin peridica generada por el hardware, llamada "timer interrupt". En caso de que existan muchos procesos siendo ejecutados (con respecto a los recursos disponibles) el sistema podra demorar un poco al momento de intentar servir la interrupcin, por lo que el reloj de software puede estar ligeramente atrasado. El reloj por hardware trabaja independientemente del sistema operativo, as que usualmente es ms preciso. Si re-inicia de manera frecuente la computadora (como es el caso para la mayora de los sistemas que no son servidores) el reloj debe encontrarse prcticamente correcto. Si es necesario modificar el reloj de hardware, la manera ms simple es reiniciar el sistema, ingresar a la pantalla de configuracin de la BIOS y realizar el cambio de fecha y hora desde ah. Esta manera evita todos los problemas que podran suceder si se modifica el reloj desde el sistema. Si la modificacin desde la configuracin de la BIOS no se puede realizar, modifique el reloj utilizando date y clock (en ese orden).

    http://www.pool.ntp.org Link: Informacin de Servidor de tiempo.

    # ntpdate u 0.pool.ntp.org

    CASO

    Al iniciar el arranque un Sistema Operativo toma como referencia al Reloj de Hardware para actualizar su reloj de Software

  • Tecsup Automatizacion de Tareas Marzo 2010

    Pgina 5

    Visualizando la informacin de reloj por Software:

    Visualizando la informacin de reloj por Hardware:

    4.1. Comando (hwclock)

    El comando hwclock permite la administracin de los relojes de hardware de software:

    Sintaxis:

    Parmetro Funcin

    --show Muestra la informacin del reloj de hardware

    --systohc Obtienen la fecha y hora desde el reloj de hardware y modifican el reloj de Software.

    --hctosys Obtienen la fecha y hora desde el reloj de Software y modifican el reloj de hardware.

    Comparando ambos relojes:

    # hwclock [parmetros]

    # date

    CASO

    # hwclock --show

    CASO

    # hwclock --show

    CASO

    # date

    Comparando

  • Automatizacion de Tareas Tecsup Marzo 2010

    Pgina 6

    Actualizar el reloj de Sistema con el reloj de Hardware:

    Actualizar el reloj de Hardware con el reloj de Sistema:

    Actualizar el reloj de Hardware con la informacin de la sincronizacin con un Servidor NTP:

    Al sincronizarse con un Servidor de Tiempo, la sincronizacin

    se realiza en el reloj de Sistema, luego con ayuda del comando (hwclock) se actualizara al reloj por Hardware

    5. Automatizacin de tareas En la administracin se tiene que realizar diversas tareas en donde el administrador con el aprendizaje de los comandos lo realiza en la consola, al tener varias operaciones que realizar se va complicando porque tendr que tomar un mayor tiempo en ejecutar los comandos lo cual generara una dependencia del administrador con las tareas a realizar. Al ser las tareas operaciones de comandos, mediante una evaluacin se decidir que tareas se pueden automatizar. Con la automatizacin conseguiremos planificar el tiempo a ejecutarse las tareas. Linux provee de servicios que se encargan de la automatizacin, usualmente existe 2 servicios:

    at

    cron La diferencia radica en que el comando (at) realiza la ejecucin de la tarea en un solo tiempo determinado y el comando (cron) realiza tareas peridicas quiere decir que puede programarse para que se realice varias veces en tiempo distintos

    Actualizando

    # hwclock --hctosys

    CASO

    Actualizando # hwclock --systohc

    CASO

    EJERCICIO

    # ntpdate u 0.pool.ntp.org

    # hwclock --systohc

    Toda tarea que incluya comandos, puede automatizarse

  • Tecsup Automatizacion de Tareas Marzo 2010

    Pgina 7

    5.1. Comando at Se utiliza el comando (at) para ejecutar un comando o comandos una sola vez en el tiempo.

    Sintaxis:

    PARMETROS DEL COMANDO at

    HORA FECHA INCREMENTOS

    Hrs (1,2 dgitos) Hrs:min (3,4 dgitos) Hrmin (3,4 dgitos) Now Noon Midnight Next

    Mes da ao Da de la semana Today Tomorrow

    +n mins +n hrs +n days +n weeks +n months +n years

    Se utiliza la entrada estndar, pero tambin se puede utilizar un archivo para indicarle que comandos se desean ejecutar. Si no se especifica un archivo de entrada, el comando entrar en modo interactivo y deber ingresar los comandos, luego de lo cual deber presionar d para salir. Programar a las 13:11 reiniciar el Servidor:

    # at [hora] [fecha] [incremento] < nombre_archivo

    EJERCICIO

    PROGRAMACION

    # at 13:11

  • Automatizacion de Tareas Tecsup Marzo 2010

    Pgina 8

    La salida de los comandos, incluyendo los mensajes de error, es enviada al correo del usuario o puede ser re direccionados. Se puede determinar que usuarios pueden tener acceso al comando (at). El archivo (/usr/lib/cron/at.allow) especfica quienes pueden usar el comando (at). Si este archivo no existe significa que todos pueden acceder al comando. El archivo (/usr/lib/cron/at.deny) lista que usuarios no tienen acceso al comando at. El archivo (at.deny) es solamente usado si no existe un archivo (at.allow).

    5.1.1. Especificacin de la fecha

    Utilice uno o dos dgitos para especificar la hora

    Por ejemplo: $ at 17 Ejecutar el comando a las 5:00 pm. El comando at utiliza formato de 24 horas a menos que se especifique am. o pm. No se permiten espacios entre el valor numrico del tiempo y la cadena am o pm. Se permite una especificacin de cuatros dgitos con: (dos puntos) entre la hora y el minuto. Por ejemplo: $ at 4:35pm Tambin se permiten cadenas especiales now, noon y midnight.

    Por ejemplo: $ at noon Un trabajo puede ser ejecutado en un incremento de tiempo si se incluye el operador + sintxis del tiempo. Por ejemplo: $ at now + 15 mins Ejecutar el trabajo dentro de 15 minutos

  • Tecsup Automatizacion de Tareas Marzo 2010

    Pgina 9

    Adems de minutes (mins) , se permiten los especificadores de tiempo hours (hrs), days, weeks, months y years con el operador +. Por ejemplo: $ at 3:15pm + 6 months Se puede especificar una fecha sintxis de la hora, usando el formato Mes da [ao]. Por ejemplo: $ at 2:15pm Jul 16 Estas especificaciones de fecha parecen complejas, pero en realidad el formato es bastante natural e intuitivo, y la mayora de los modos normales de escribir una fecha funcionarn como se espera. Si no, el comando at proporcionar un mensaje de error.

    5.1.2. Visualizando la cola de trabajo La opcin l permite listar todos los trabajo enviados con at sobre la base del numero de id, mostrando la fecha y hora en que estn planificados. Esta opcin es un alias del comando (atq).

    26 2000-07-07 13:00 a 27 2000-07-06 18:00 a

    5.1.3. Cancelando trabajos

    La opcin d se utiliza para retirar trabajos enviados con el comando at. Esta opcin es un alias del comando atrm.

    Por ejemplo: $ at -d 24

    # at -l

    # atq

    # at d

    # atrm

  • Automatizacion de Tareas Tecsup Marzo 2010

    Pgina 10

    Solo se puede retirar los trabajos que el usuario haya creado. nicamente el superusuario puede retirar cualquier trabajo de la cola. Los trabajos creados con at se almacenan en el directorio /usr/spool/cron/atjobs hasta que se ejecuten.

    5.2. Comando (cron, crontab) El comando (cron) es el nombre de un servicio del sistema que se ejecuta al comienzo de la secuencia de arranque de todos los sistemas Linux. Se despierta una vez cada minuto, examina un archivo de control para ver si hay algn trabajo que ejecutar en ese minuto y luego lo ejecuta. Si no hay trabajos programados para ese momento, (cron) vuelve a dormir hasta el siguiente minuto. Este potente mecanismo de planificacin depende de la naturaleza multitarea del sistema Linux. Afortunadamente, Aunque siempre presente, (cron) no utiliza muchos recursos del sistema. Adems del uso global de sistema de las funciones (cron), algunos mecanismos permiten a los usuarios individuales (adems del superusuario) programar trabajos para su ejecucin regular a intervalos de un minuto o ms. Mientras (at) planifica un trabajo para ejecutarlos una sola vez, la facilidad cron planifica trabajos para ejecutarlos regularmente a intervalos especficos. Con (crontab) podra programarse para realizar las siguientes tareas:

    Limpiar el directorio /tmp.

    Remover archivos de mensajes y archivos en desuso es una tarea regular.

    Verificar el espacio en disco e enviar un mensaje de advertencia.

    Generar reportes del estado del sistema o ejecutar trabajos de gran carga en momentos de menos carga para el sistema.

    El comando (crontab) somete los trabajos para que el demonio cron los ejecute.

    Sintaxis: El archivo .cronfile contiene los comandos que sern ejecutados.

    # crontab [.cronfile]

    El (crontab) recibe comandos o archivos de scripts para que se ejecuten en un tiempo a definir

  • Tecsup Automatizacion de Tareas Marzo 2010

    Pgina 11

    Se puede determinar que usuarios pueden tener acceso al comando (crontab). El archivo /usr/lib/cron/cron.allow especfica quienes pueden usar el comando (crontab). Si este archivo no existe significa que todos pueden acceder al comando. El archivo /usr/lib/cron/crontab.deny lista que usuarios no tienen acceso al comando (crontab). El archivo crontab.deny es solamente usado si no existe un archivo crontab.allow.

    5.2.1. Archivo .cronfile

    Para ejecutar el comando (crontab) se debe especificar cul es el archivo que contiene las tareas a ejecutar. El archivo puede tener cualquier nombre. Pero es una buena idea llamarlo .cronfile. Hay dos beneficios de llamarlo as:

    Est oculto a la visualizacin normal.

    El nombre hace obvio cual es su funcin.

    Cada lnea del archivo .cronfile especifica una tarea que ser realizada. Cada usuario puede someter un archivo .cronfile, pero un archivo .cronfile puede contener varias tareas. Una tarea puede ser un simple comando o un shell script conteniendo varios comandos. La salida de un comando es enviada al correo del usuario a menos que sea re direccionada a un archivo o un terminal. Especifique rutas completas para los comandos y archivos que van a ser utilizados. El archivo .cronfile puede ser creado con el editor vi u otro editor cualquiera.

    5.2.2. Estructura de la programacin El archivo .cronfile debe contener seis campos para cada tarea. Cada campo debe estar separado de los dems por espacios en blanco o tabs:

  • Automatizacion de Tareas Tecsup Marzo 2010

    Pgina 12

    Los cinco primeros campos dan la fecha y hora de ejecucin, y el ltimo indica la tarea a realizar. Un nmero en un campo contiene un valor o valores que da la fecha u hora de ejecucin de la tarea, y las entradas que contienen asterisco (*) son interpretadas como todos por el cron. Cada

    campo puede tener un valor simple, un rango de valores separados por un guin, o una lista de valores separados por comas El primer campo especifica el minuto de la hora en que se ejecuta la tarea: 00 significa a la hora en punto, 30 significa 30 minutos sintaxis de la hora, y as sucesivamente. El segundo campo especifica la hora del da en formato de 24 horas; 2 es 2:00 am., 14 es 2:00 pm. El tercer campo especifica el da del mes, de 1 a 31. El cuarto campo da el mes del ao, de 1 a 12. El quinto campo da el da de la semana, desde 0 para el domingo hasta el 6 para el sbado. Una vez creado el archivo .cronfile utilice el comando (crontab) para someter el archivo:

    MINUTO (0-59) Representa el minuto de la hora. En el ejemplo figura 3 esto indica que se realizara al minuto 3 de la hora indicada. No indica que se realizar cada 3 minutos

    HORA (0-23)

    DIA DE MES (1-31) El smbolo (*) representa todos los valores del campo. En este caso todos los das del Mes (1-31)

    ACCION SCRIPT a programarse. Debe de indicarse la ruta completa

    MES (1-12)

    Da de la SEMANA (0-6) 0=Domingo 1=Lunes

    # crontab .cronfile

    En el (cron) se puede ingresar varias tareas en diferentes tiempos, cada lnea es una programacin de tarea

  • Tecsup Automatizacion de Tareas Marzo 2010

    Pgina 13

    Tambin existe otra forma de ingresar la programacin. Con la opcin e del (crontab) se apertura un archivo para el ingreso de la tarea evitando generar un archivo (.cronfile):

    5.2.3. Visualizando tareas Para visualizar las tareas utilice la opcin l

    5.2.1. Eliminar tareas Para eliminar las tareas utilice la opcin r

    Evalu los procesos que realiza y ponga a prueba el uso del (at) o (crontab)

    6. Resumen

    El protocolo NTP permite sincronizar tiempo en los Sistemas Operativos

    Existe 2 tipos de Clock el de hardware y software.

    Comnmente el Sistema Operativo trabaja con su reloj de Software.

    En el tiempo al no tener una alta precisin se desfasa los relojes de hardware y software.

    El comando (hwclock) gestiona el reloj de hardware y software.

    Para la programacin de tareas existe 2 utilitarios (at) (crontab)

    El (at) se programa tareas fijas a realizarse una vez.

    El (crontab) se programa tareas peridicas.

    7. BIBLIOGRAFIA Libro de Administracin de Linux http://www.redhat.com/docs/manuals/linux/ GD

    # crontab -l

    # crontab -r

    # crontab -e