tema 6 automatizacion tareas y recuperacion sistema

Upload: mar-qnh

Post on 11-Oct-2015

28 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    AUTOMATIZACIN Ernesto Prez (autor textos 2005-2008)

    DE TAREAS Y

    RECUPERACIN

    DEL SISTEMA

    Ricardo Ortega (redaccin de textos y

    diseo grfico 2010)

    http://aula.virtualepn.edu.ec

    [email protected]

  • 2

    Capacitacin en Modalidad Virtual Administracin Linux I, Automatizacin de Tareas y recuperacin del sistema Ricardo Ortega Levantamiento de texto 2008: Ernesto Prez Redaccin de textos 2010: Ricardo Ortega Registro de derecho autoral: en trmite ISBN de este volumen: en trmite Depsito Legal: en trmite Publicado en http://aula.virtualepn.edu.ec desde Abril 2008

    CENTRO DE EDUCACIN CONTINUA ESCUELA POLITCNICA NACIONAL DIRECCIN DE CAPACITACIN Y CONSULTORA CAPACITACIN EN MODALIDAD VIRTUAL

    Quito Ecuador

  • 3

    ADMINISTRACIN DE LINUX I

    Automatizacin de tareas y recuperacin del sistema

    Material para la modalidad virtual

    Master Ricardo B. Ortega O.

    www.ricardoortega.com

    Objetivos del captulo 6

    Saber automatizar tareas mediante cron, anacron, at y batch

    Estar preparado para solucionar desastres en el sistema.

    Aprender a recuperar el sistema mediante: DVD, SELinux y Grub.

    Aprender a verificar la RAM y el hardware

    Prerrequisitos para el captulo 6

    Tener instalado y funcionando un computador con Linux CENTOS.

    Conocer los comandos bsicos de Linux

    Conocer los comandos para gestin de procesos y servicios

    Recursos necesarios para el captulo 6

    Un computador con Linux CENTOS instalado y funcionando.

    La administracin se debe hacer desde el usuario root.

    Para recuperar el sistema se requiere acceso fsico al computador incluyendo arranque desde DVD

    Recomendaciones para el captulo 6

    LINUX CENTOS Nos limitaremos a explicar el funcionamiento de CENTOS. Las pruebas en otras

    distribuciones quedan a su propia cuenta y riesgo.

    TENGA A MANO EL DVD DE INSTALACIN Para usar Linux en modo Rescue (Rescate) necesitar el

    DVD de instalacin, con la misma versin que utiliz para instalar. Se puede rescatar el sistema con

    versiones diferentes, pero es preferible hacerlo con la misma versin instalada. Tngalo a mano y por

    supuesto junto al computador.

    MODO SINGLE o MODO 1 La recuperacin del sistema se hace en modo 1 (single) o arrancando el

    computador desde CD/DVD. No se recomienda hacerlo desde el modo grfico o con usuarios

    conectados que pueden perder su trabajo.

    LEA LOS MENSAJES: Observe los mensajes que le aparecen. No pase por alto los mensajes de error.

    La mayora de usuarios no lee los mensajes y cuando se le pregunta qu deca el mensaje la

    respuesta es no s, nunca leo los mensajes. Por supuesto que esa actitud no es propia de aspirantes

    a administradores de redes.

  • 4

    REVISE LOS LOGS En el directorio /var/log se graban los mensajes del sistema y de varios programas.

    Es conveniente que los mire antes de tomar alguna accin. Generalmente el log le dar una indicacin

    del problema y posiblemente de su solucin.

    NO FORMATEE El formateo y la instalacin del sistema debe hacerse solamente como ltimo recurso.

    Bueno, si quiere practicar el formateo y la instalacin del sistema, no hay inconveniente en que lo haga,

    pero la mayora de veces NO es necesario ya que Linux puede recuperarse en menor tiempo del que se

    tarda en formatear e instalar el sistema.

    Contenidos del Captulo 6

    OBJETIVOS DEL CAPTULO 6 .................................................................................................................................... 3

    PRERREQUISITOS PARA EL CAPTULO 6 ............................................................................................................. 3

    RECURSOS NECESARIOS PARA EL CAPTULO 6 ................................................................................................ 3

    RECOMENDACIONES PARA EL CAPTULO 6 ....................................................................................................... 3

    CONTENIDOS DEL CAPTULO 6 ............................................................................................................................... 4

    6.1 AUTOMATIZACIN DE TAREAS ........................................................................................................................ 4

    6.1.1 Qu es la automatizacin de tareas? ............................................................................................................... 5 6.1.2 LA FACILIDAD CRON ..................................................................................................................................... 5 Facilidad para agregar tareas sin modificar crontab ................................................................................................ 7 Ejemplos de crontab ................................................................................................................................................... 7 Cron para usuarios distintos de root .......................................................................................................................... 8 Control de acceso a Cron ........................................................................................................................................... 8 6.1.3 LA FACILIDAD ANACRON .............................................................................................................................. 9 Qu utilidad puede tener el Anacron? ...................................................................................................................... 9 Qu no es Anacron? .................................................................................................................................................. 9 Iniciar y finalizar el servicio anacron ...................................................................................................................... 10 6.1.4 LAS FACILIDADES AT Y BATCH .................................................................................................................. 11 Utilidad de AT.......................................................................................................................................................... 11 Visualizacin de las tareas pendientes ..................................................................................................................... 12 Opciones adicionales de la lnea de comandos ........................................................................................................ 12 Control de acceso a At y Batch ................................................................................................................................. 13 Iniciar y finalizar el servicio ..................................................................................................................................... 13

    6.2 RECUPERACIN DEL SISTEMA ........................................................................................................................ 13

    6.2.2 Qu es la recuperacin del sistema ................................................................................................................. 13 6.2.2 Lo primero: no haga nada ............................................................................................................................... 14 6.2.3 Arrancar desde Grub en modo Single.............................................................................................................. 15 6.2.4 Arrancar desde DVD con Linux Rescue .......................................................................................................... 16 6.2.5 Comandos que se pueden usar en modo single ................................................................................................ 20 6.2.6 Enjaulndonos en la particin original de Linux ............................................................................................ 22 6.2.7 Desactivar SELinux ......................................................................................................................................... 23 6.2.8 Verificacin de la RAM .................................................................................................................................... 23 6.2.9 Reinstalar el grub ............................................................................................................................................ 25

    6.1 Automatizacin de tareas

  • 5

    6.1.1 Qu es la automatizacin de tareas?

    Es un conjunto de facilidades para activar en determinado momento un comando, programa o macro (script)

    que realice una o ms tareas de administracin, por ejemplo sacar respaldos, descargar archivos, borrar

    archivos, correr antivirus, comprimir archivos, chequear la integridad del sistema, actualizar el sistema, etc.

    Todas estas actividades las puede realizar el administrador ejecutando manualmente el comando, programa

    o macro, pero la idea es decirle al sistema que ejecute estas tareas en un determinado momento, de forma

    automtica, incluso en horas de la noche, fines de semana o cuando sea necesario.

    Linux (y CENTOS especialmente) est perfectamente diseado y equipado para automatizar tareas. Por

    algo es el sistema operativo ms utilizado en servidores de Internet, precisamente por las grandes

    facilidades que brinda al administrador.

    Existen tres alternativas: cron, anacron y at. Cada uno de ellos tiene sus particularidades, ventajas y

    desventajas. Entre los tres mecanismos se logran excelentes resultados.

    6.1.2 LA FACILIDAD CRON

    La facilidad cron sirve para ejecutar peridicamente (cada hora, da, semana, mes) una o ms tareas.

    La palabra cron viene del griego chronos que significa tiempo. El cron de Linux se implementa mediante un

    servicio (demonio) denominado crond que lee el archivo de configuracin /etc/crontab y ejecuta las tareas

    indicadas en el crontab y sus archivos auxiliares.

    El servicio crond ejecuta cada minuto, hora, da, semana, mes o con la regularidad que se pide en el archivo

    crontab los comandos o scripts indicados en el mismo archivo crontab.

    No est por dems recordar que si el crond no est corriendo, no se ejecutar ninguna tarea de crontab.

    Para activar el servicio crond se utiliza

    service crond start

    Recuerde que la d al final significa demonio. No es un error tipogrfico. El demonio se llama crond.

    Para asegurarse que el crond se ejecuta cada vez que se inicia la mquina:

    chkconfig crond on

    Para configurar las tareas se utiliza el archivo /etc/crontab y los directorios asociados que facilitan la

    automatizacin, que son:

    El archivo crontab tiene este contenido mnimo (el administrador y los programas del sistema pueden

    modificarlo, ya que se trata de un archivo de texto):

    La primera lnea indica el shell que se encargar de ejecutar las tareas, en este caso, ser el bash.

  • 6

    La segunda lnea indica los directorios de bsqueda para localizar comandos que pueden haberse indicado

    dentro de las tareas. Normalmente es la lista indicada, esto es, programas del superusuario (sbin).

    La tercera lnea MAILTO sirve para enviar al usuario indicado (root) un mensaje indicndole cada tarea

    realizada.

    Luego vienen las lneas de configuracin de las tareas.

    El significado de cada columna de tarea es:

    .---------------- minuto (0 - 59)

    | .------------- hora (0 - 23)

    | | .---------- da del mes (1 - 31)

    | | | .------- mes (1 - 12) O jan,feb,mar,apr ... (los meses en ingls)

    | | | | .---- da de la semana (0 - 7) (Domingo=0 o 7)

    | | | | |

    * * * * * comando para ser ejecutado

    El da de la semana puede ser tambin sun,mon,tue,wed,thu,fri,sat (los das en ingls)

    El smbolo de nmero (almohadilla) # es un comentario, todo lo que se encuentre despus de ese carcter no ser ejecutado por el crond.

    El momento de ejecucin se especifica de acuerdo con la siguiente tabla:

    1. Minutos: (0-59) 2. Horas: (0-23) 3. Das: (1-31) 4. Mes: (1-12) 5. Da de la semana: (0-6), siendo 1=lunes, 2=martes,... 6=sbado y 0=domingo (a veces tambin

    7=domingo)

    ##########################################################

    #minuto (0-59), #

    #| hora (0-23), #

    #| | da del mes (1-31), #

    #| | | mes (1-12), #

    #| | | | da de la semana (0-6 donde 0=Domingo) #

    #| | | | | comandos #

    ##########################################################

    15 02 * * *

    Para indicar todos los valores posibles de una columna (excepto comando) se usa un asterisco (*).

    La ltima columna corresponde a la ruta absoluta del binario o script que se quiere ejecutar.

    En cualquiera de los valores antes indicados (excepto "comando"), se puede utilizar un asterisco (*) para

    especificar todos los valores vlidos. Por ejemplo, un asterisco para el valor de mes significa que el

    comando se ejecutar cada mes dentro de las limitaciones del resto de los valores.

    Un guin (-) entre los nmeros enteros indica un intervalo de nmeros enteros. Por ejemplo, 1-4 significa los

    nmeros enteros 1, 2, 3 y 4.

    Una lista de valores separados por comas (,) especifica una lista. Por ejemplo, 3, 4, 6, 8 indica estos cuatro

    nmeros enteros.

    La barra (/) puede utilizarse para especificar valores de pasos (saltos). El valor de un nmero entero se

    puede omitir dentro de un intervalo si se indica a continuacin del intervalo lo siguiente /.

    Por ejemplo, 0-59/2 puede usarse para definir el resto de los minutos del campo minuto. Es decir, dentro del

  • 7

    intervalo que va del 0 al 59, se omite el 2. Los valores de pasos tambin pueden utilizarse con un asterisco.

    Por ejemplo, el valor */3 puede usarse en el campo de mes para omitir el tercer mes.

    Facilidad para agregar tareas sin modificar crontab

    Si va a ejecutar un script digamos cada hora, es mejor colocar ese script en la carpeta /etc/cron.hourly y el

    crond lo ejecutar cada hora, junto con las dems tareas indicadas en la carpeta cron.hourly. De esta forma

    no se necesita modificar el crontab. Hay carpetas para hourly, daily, weekly, montly (hora, da, semana,

    mes).

    Como podr observar en el archivo /etc/crontab, usa el script run-parts para ejecutar los scripts en los

    directorios /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly, y /etc/cron.monthly cada hora, diariamente,

    semanalmente o mensualmente, respectivamente. Los ficheros de estos directorios deben ser scripts de

    shell. Si las tareas cron deben ejecutarse segn una programacin distinta a la hora, da, semana o mes,

    esto puede agregarse en el directorio /etc/cron.d. Todos los ficheros de este directorio utilizan la misma

    sintaxis que /etc/crontab.

    Ejemplos de crontab

    Ejemplos:

    30 10 * * 1 /usr/bin/who >> /home/quien.txt

    Ejecuta la orden who todos los lunes a las 10:30 y guarda la salida en el fichero quien.txt

    Para especificar dos o ms valores en cada variable, estas deben estar separadas por comas,

    siguiendo con el ejemplo anterior:

    0,30 * * * 1 /usr/bin/who >> /home/quien.txt

    Ejecuta la orden who todos los lunes cada media hora y guarda la salida en el fichero quien.tex

    Si queremos que se ejecute cada 15 minutos sera

    0,15,30,45 * * * * /usr/bin/who >> /home/quien.txt

    o

    */15 * * * * /usr/bin/who >> /home/quien.txt

    En este ejemplo veremos como pasarle ms de un comando al cron (separado por punto y coma) y

    de paso como puede programarse una descarga a las 23:30

    30 23 * * * cd /home/ricardo;wget http://server/archivo_a_descargar

    Este otro apaga el PC. En este caso todos los viernes (da 5) a las 22.30

    30 22 * * 5 /sbin/shutdown -h now

    Editar crontab de un usuario en particular

    crontab [ -u usuario ] archivo

    crontab [ -u usuario ] { -l | -r | -e }

  • 8

    La opcin -u se utiliza para indicar el crontab de usuario que queremos administrar. Slo root podr usar la

    orden crontab con esta opcin.

    La opcin -e se utiliza para editarlo

    Hay varios valores predefinidos que se pueden utilizar para indicar la tarea cron:

    Entrada Descripcin Equivale A

    @yearly Se ejecuta una vez al ao 0 0 1 1 *

    @annually (igual que @yearly) 0 0 1 1 *

    @monthly Se ejecuta una vez al mes 0 0 1 * *

    @weekly Se ejecuta una vez a la semana 0 0 * * 0

    @daily Se ejecuta una vez al da 0 0 * * *

    @midnight (igual que @daily) 0 0 * * *

    @hourly Se ejecuta una vez cada hora 0 * * * *

    Tambin esta disponible @reboot, que permite a un trabajo ejecutarse una vez cada vez que el

    demonio cron se inicie, que eso tipcamente coincidir con el arranque del servidor. Puede ser tili

    si es necesario levantar un servidor o demonio bajo un usuario en particular o si el usuario no tiene

    permisos al archivo rc.d/init.d.

    Cron para usuarios distintos de root

    Los usuarios no root pueden configurar las tareas cron tasks con la utilidad crontab. Todos los crontabs

    definidos por el usuario se almacenan en el directorio /var/spool/cron y se ejecutan utilizando los nombres

    de los usuarios que los han creado.

    Para crear un crontab como un usuario se deba seguir este procedimiento: "Inicie la sesin como ese

    usuario y escriba el comando crontab -e para modificar el crontab del usuario con el editor especificado por

    la variable de entorno VISUAL o EDITOR. El fichero usa el mismo formato que /etc/crontab. Cuando se

    guardan los cambios en crontab, el crontab se almacena segn el nombre de usuario, y se escribe en el

    fichero /var/spool/cron/username. El demonio cron controla lo siguiente: el fichero /etc/crontab, el directorio

    /etc/cron.d/ y el directorio /var/spool/cron cada minuto para cada cambio. Si se encuentra algn cambio,

    estos se descargan en la memoria. De este modo, el demonio no necesita ser reiniciado si se cambia un

    fichero crontab."

    Ejemplos:

    Reiniciar la mquina cada 30 minutos, al minuto 5 y al minuto 35, todas las horas, todos los das, todos los

    meses, todos los das de la semana:

    5,35 * * * * reboot

    Respaldar /etc todos los domingos: 0 4 * * 0 tar -zcf /root/etc.tar.gz /etc Respaldar /var todos los das a las

    4AM

    5 4 * * * tar -zcf /root/var.tar.gz /var

    Control de acceso a Cron

    Los ficheros /etc/cron.aiiow y /etc/cron.deny se usan para restringir el acceso a cron. El formato de los dos

    ficheros de acceso es un nombre de usuario en cada lnea. No est permitido espacio en blanco en ninguno

    de los ficheros. El demonio cron (crond) no tiene que ser reiniciado si los ficheros de control de acceso se

    modifican. Los ficheros de control de acceso se leen cada vez que el usuario intenta aadir o borrar una

    tarea cron.

  • 9

    El usuario root puede utilizar siempre cron, sin prestar atencin a los nombres de usuarios listados en los

    ficheros de control de acceso. Es decir, que si se es un usuario root, no hay que preocuparse por los

    nombres de usuario.

    Si existe el fichero cron.aiiow, tan slo se permitir a los usuarios presentes en la lista utilizar cron y el

    fichero cron.deny se ignorar.

    Si cron.allow no existe, ninguno los usuarios listados en cron.deny podr usar cron.

    6.1.3 LA FACILIDAD ANACRON

    Qu es anacron?

    Anacron es un mecanismo que sin sustituir al cron, lo complementa. Su nombre viene de Asynchronous

    cron, o sea cron asncrono que traducido significa tiempo sin sincronizacin.

    Anacron es un programador de tareas peridicas. Este ejecuta comandos en diferentes intervalos

    aproximados especificados en das. Al contrario de cron, anacron no asume que el sistema est encendido

    continuamente, por lo tanto puede ser usado para controlar la ejecucin de tareas diarias, semanales o

    mensuales, en realidad puede ser usado para ejecutar tareas durante cualquier periodo cuya unidad mnima

    sea el da. Es decir, anacron no puede detallar los periodos de ejecucin por horas o minutos, sino que su

    mnima unidad es el da.

    Cada vez que se ejecuta al anacron, este lee el archivo de configuracin que especifica qu trabajos

    anacron se ejecutarn y su periodo en das. Si un trabajo no fue ejecutado en los ltimos n das (n es el

    periodo de ejecucin del trabajo) entonces anacron lo ejecuta y guarda un histrico de cundo fue la ltima

    vez que se ejecut, de esta forma conocer cundo ejecutarlo de nuevo.

    Cuando los comandos a ejecutar finalizan: anacron sale. Es decir anacron no se queda en la memoria

    trabajando continuamente como cron.

    Recuerde que anacron slo puede medir el tiempo para ejecutar un programa en das.

    Qu utilidad puede tener el Anacron?

    La mayora de los sistemas Un*x (Linux incluido) tienen formas de programar la ejecucin de tareas que

    llevan a cabo diferentes trabajos de mantenimiento como rotacin de logs, actualizar la BD del locate, etc.

    Estos scripts se manejan normalmente como trabajos que se ejecutarn entre la 1AM y las 7AM. Los scripts

    semanales se manejan para ejecutarse los domingos. En mquinas que estn apagadas durante las horas

    de madrugada y/o los fines de semana estos scripts nunca corren. Anacron resuelve este problema. Estos

    trabajos simplemente sern programados como trabajos de anacron con periodos de 1, 7 y 30 das. De esta

    forma, un poco despus de encender la mquina, anacron se encargar de que se ejecuten esos trabajos,

    sin importar la hora.

    Anacron intenta ser una ayuda sobre todo para usuarios de laptops y para personas que slo encienden su

    computadora unas horas al da, por ejemplo en laboratorios de clases.

    Qu no es Anacron?

    anacron no es un intento de hacer algo redundante al cron. No puede ser usado para programar tareas a

    intervalos menores a un da. Adems tampoco garantiza que un comando se ejecutar en una hora o da

    especfico. Anacron har lo mejor posible para ejecutar un comando que le hayan indicado pero se podr

    precisar una hora o da exactos.

    Configuracin de las tareas de Anacron

    Este es el archivo anacrontab de CENTOS

  • 10

    Parece tener lo mismo que crontab, pero no es as. Observe que las dos primeras columnas son diferentes.

    Este archivo permite que si por alguna causa el crond no estuvo corriendo continuamente, el anacron se

    encarga de procesar las tareas atrasadas (no ejecutadas) del cron.

    Cada lnea corresponde a una tarea y tiene el formato siguiente:

    periodo demora identificador comando

    periodo: Frecuencia (en das) con la que se ejecuta el comando demora: Cunto tiempo esperar, en

    minutos, para ejecutar una tarea. Anacron no ejecuta las tareas inmediatamente cuando le toca. Como

    anacron se ejecuta solamente al arrancar el sistema, se introduce esta demora para evitar que se

    sobrecargue el sistema en el mismo proceso de arranque. Tpicamente se escogen valores superiores a

    una hora, para que el sistema tenga ya una hora funcionando al ejecutarse las tareas de anacron.

    identificador: Es la descripcin de las tareas, usadas en los mensajes anacron, puede contener cualquier

    carcter que no sean espacios en blanco ni barras oblicuas

    (/).

    comando: Comando que debe ejecutarse

    Por cada tarea, anacron determina si la tarea ha sido ejecutada dentro del perodo especificado en el campo

    periodo del archivo de configuracin. Si no se ha ejecutado dentro de ese perodo, anacron ejecutar el

    comando especificado en el campo comando despus de esperar la cantidad de tiempo especificado en el

    campo

    demora.

    Una vez finalizada la tarea, anacron registra la fecha en el archivo de marca de fecha que se encuentra en

    el directorio / var/spool/anacron. Slo se utiliza la fecha (no la hora), y se usa el valor de identificador como

    nombre de archivo.

    marca de hora.

    Las variables de entorno, como shell y path, pueden definirse en la parte superior de /etc/anacron, de forma

    similar al fichero de configuracin de cron.

    Iniciar y finalizar el servicio anacron

    Para arrancar el servicio anacron, hay que usar el comando /sbin/service anacron start. Para detener el

    servicio, se usa el comando /sbin/service anacron stop. Se recomienda arrancar el servicio en el momento

    del arranque con chkconfig anacron on.

    Observe que el anacron NO termina con una letra d. Son cosas de los desarrolladores de Linux que estn

    abandonando la letra d al final de los demonios.

  • 11

    6.1.4 LAS FACILIDADES AT Y BATCH

    at en ingls significa en o a las, refirindose a tiempo. Lo que significa que podemos pedir al sistema que

    a las 21 horas por ejemplo ejecute una bsqueda por virus. A diferencia del cron o del anacron, la tarea

    se ejecutar una sola vez (a menos que incluya alguna forma de repetir la tarea, por ejemplo otro at).

    at 21:00

    > clamav /

    > ^D

    Observe que se usan varias lneas. El comando at permite escribir varias lneas y terminar cuando se

    presiona las teclas CONTROL-D. (que aparecen como ^D).

    Otros ejemplos:

    at 10:15

    > reboot

    > ^D

    Programar un reinicio del sistema (reboot) a la hora indicada: las 10 horas 15 minutos de la maana.

    at 12.12.2010 21:23

    > /etc/init.d/apache stop

    > sleep 600

    > /etc/init.d/apache start

    > ^D

    se ejecutar el da 12 de diciembre de 2010 a las 9 y 23 de la tarde. Parar el servidor web apache,

    esperar 10 minutos y lo volver a arrancar.

    La instruccin

    at 21:00 f /root/programa1

    Ejecutar el script (file) programa1 ubicado en la carpeta root.

    La instruccin:

    at -l

    ... listar los trabajos programados.

    Utilidad de AT

    Mientras que cron y anacron se usan para programar tareas, el comando at se usa para programar una

    nica tarea en un tiempo especfico. El comando batch se usa para programar que se ejecute una sola tarea

    cuando la carga del sistema sea menor a 0.8 (ver top).

    at slo permite ejecutar un comando o script una sola vez, mientras que el cron puede hacerlo repetidas

    veces.

    Como contraparte, la facilidad at no requiere modificar archivos.

    Configuracin de tareas

    Para programar una tarea no repetitiva en un tiempo especfico, hay que escribir el comando at time, en el

    que time es el tiempo para ejecutar el comando. El argumento time puede ser uno de los siguientes:

  • 12

    formato HH:MM : Por ejemplo,04:00 especifica 4:00AM. Si se inserta el tiempo, la tarea se ejecuta en el

    tiempo especfico el da despus. midnight : Especifica 12:00AM. noon : Especifica 12:00PM. teatime:

    Especifica 4:00PM.

    formato MMDDYY, MM/DD/YY, o MM.DD.YY : Por ejemplo, 011502 para el da 15 de enero del ao 2002.

    (Los expositores recordaron que en Estados Unidos se pone el mes antes que el da y, por eso, el formato

    es de esta manera: mes/da/los dos ltimos dgitos del ao).

    now + tiempo : El tiempo est en minutos, horas, das o semanas. Por ejemplo, ahora + 5 days, especifica

    que el comando debera ser ejecutado a la misma hora en 5 das. Este formato es el ms utilizado.

    La hora debe ser especificada en primer lugar, seguido por la fecha opcional.

    Tras haber escrito el comando at con el argumento del tiempo, el prompt at> ser visualizado. Una vez

    hecho esto, se escribe el comando a ejecutar, se pulsa [Intro] y se escribe Ctrl-D.

    Se puede especificar ms de un comando escribiendo cada comando seguido de la tecla [Intro]. Despus

    de haber escrito todos los comandos, se pulsa [Intro] para obtener una lnea en blanco y se escribe Ctrl-D.

    Alternativamente, se puede introducir un script de shell en el intrprete de comandos y escribir Ctrl-D en una

    lnea en blanco para salir.

    Si la configuracin de comandos o el script intenta mostrar informacin, la salida de datos ser enviada va

    correo electrnico al usuario.

    Configuracin de tareas Batch

    El batch es similar al at, pero con una diferencia: ejecuta una tarea no repetitiva cuando el promedio de

    carga del sistema est por debajo de 0.8.

    Tras haber escrito el comando batch, se visualiza el intrprete de comandos at>. Hay que escribir el

    comando a ejecutar, pulsar [Intro] y escribir Ctrl-D. Se puede especificar ms de un comando al escribir

    cada comando seguido de la tecla [Intro]. Tras haber escrito todos los comandos, se pulsa [Intro] para

    acceder a una lnea en blanco y se escribe Ctrl-D.

    En todo lo dems, batch es similar a at, excepto en que solamente ejecutar la tarea si la carga es inferior a

    0.8, caso contrario, la posterga hasta que la carga del sistema la permita.

    Visualizacin de las tareas pendientes

    Para ver las tareas pendientes at y batch, se usa el comando atq. Se muestra una lista de tareas

    pendientes, con cada lnea de trabajo. Cada lnea est en el nmero de tarea del formato, la fecha, la hora,

    el tipo de tarea y el nombre de usuario. Los usuarios tan slo pueden ver sus propias tareas. Si el usuario

    root ejecuta el comando atq, se visualizarn todas las tareas para los usuarios.

    Opciones adicionales de la lnea de comandos

    Las opciones adicionales de la lnea de comandos para at y batch incluyen:

    Opciones Descripcin

    -f Lee los comandos o script del shell desde un archivo en vez de ser

    especificados en el intrprete de comandos.

    -m Enva un email al usuario cuando se ha completado la tarea.

    -v Muestra la hora en la que la tarea ser ejecutada.

    Tabla 28-1. Opciones de lnea de comandos at ybatch

  • 13

    Control de acceso a At y Batch

    Los archivos /etc/at.allow y /etc/at.deny pueden ser usados para restringir el acceso a los comandos at y

    batch. El formato de ambos ficheros de control de acceso es un nombre de usuario en cada lnea. El

    espacio en blanco no est permitido en ningn fichero. El (atd) demonio at no deber ser reiniciado si los

    ficheros de control de acceso son modificados. Los expositores aclararon que los ficheros de control de

    acceso se leen cada vez que un usuario intenta ejecutar los comandos at y batch.

    Por supuesto, el usuario root siempre puede ejecutar los comandos at y batch, sin tener en cuenta los

    ficheros de control de acceso.

    Si existe el fichero at.allow tan slo se permitir a los usuarios listados usar at o batch y el fichero at.deny

    ser ignorado.

    Si at.allow no existe, a ninguno de los usuarios listados en at.deny se les permitir usar at o batch.

    Iniciar y finalizar el servicio

    Las tareas at y batch son ejecutadas por el demonio atd.

    Para iniciar el servicio at, se usa el comando /sbin/service atd start. Para detener el servicio, usa el

    comando /sbin/service atd stop. Se recomienda que se inicie el servicio durante el momento de arranque.

    6.2 Recuperacin del Sistema

    6.2.2 Qu es la recuperacin del sistema Es la restauracin del sistema al estado anterior a una falla.

    Considerando que es mejor prevenir, el administrador deber tomar medidas preventivas para mitigar los

    problemas de una falla catastrfica, especialmente sacando respaldos y aplicando medidas de seguridad

    para evitar virus, intrusiones y errores.

    Indudablemente los desastres existen, y en su mayora no se pueden evitar, pero lo que s se puede hacer

    es prevenir y mitigar los efectos. El expositor principal advirti "Hay que estar muy bien preparados para

    que, cuando ocurran estos inevitables desastres, podamos tramitar rpidamente cualquier evento que se

    d".

    Es muy importante mantener polticas de accin ante fallas, escribirlas, detallarlas y practicarlas en nuestra

    organizacin. Estas polticas son propias de cada una de las organizaciones por lo que no existe un

    procedimiento nico para trabajar.

    Estos estudios deben realizarse no slo para nuestros servidores Linux... van mucho ms all de un curso

    de Linux y son un punto muy importante a tener en cuenta en una organizacin.

    Algunos sitios que pueden ayudar a analizar planificaciones ante desastres. Se sugiere revisar

    http://www.linux-backup.net/ http://www.disasterplan.com/

    "Adems", aadi, "siempre es importante, para lograr la estabilidad, realizar una buena planeacin del

    sistema que vamos a correr, verificar que tengamos un sistema que sea actualizable durante largos

    periodos de tiempo, pues en las actualizaciones se corrigen una enorme cantidad de problemas que pueden

    causar desastres o situaciones definitivamente evitables si tenemos un servicio que se puede actualizar".

    La prevencin se puede analizar ms detenidamente en manuales de administracin de seguridades, como

    esta:http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/es/admin-guide/

    Aqu veremos cmo solucionar fallas y errores frecuentes, frente a estos tipos de fallas:

    a) Fallas del hardware

  • 14

    b) Fallas del software

    c) Fallas ambientales

    d) Errores humanos

    6.2.2 Lo primero: no haga nada

    Ante una falla catastrfica del sistema, es usual que el administrador o persona responsable intenta reparar

    de inmediato el problema. Ese es un grave error.

    No haga nada que agrave la situacin o que destruya datos, como formatear, intentar cambiar de posicin

    los discos, ejecutar programas de recuperacin sin haber tenido experiencia previa, mover equipos o partes

    sin tener el entrenamiento adecuado. Ahora que si quiere cobrar experiencia y no interesa la informacin ni

    los equipos, adelante, haga Ud. lo que sea necesario para tomar experiencia.

    Lo primero que se debe hacer en una situacin real es NADA. Calmarse, analizar durante unos minutos la

    situacin y hacerse las siguientes preguntas:

    1. La informacin almacenada en el servidor, es importante? Si la respuesta es s, NO HAGA NADA,

    contacte inmediatamente con una persona experta en recuperacin de informacin. El tema de

    recuperacin es bastante complejo y generalmente se agrava porque los encargados intentaron solucionar

    con nerviosismo y al apuro los problemas. Su nerviosismo hizo que caigan al suelo discos duros con

    informacin valiosa, o intentaron restaurar los respaldos solamente para darse cuenta que no servan o

    estaban obsoletos. Mejor digmoslo con maysculas: SI LA INFORMACIN ES IMPORTANTE, NO HAGA

    NADA, DEJE EL ASUNTO EN MANOS DE EXPERTOS EN RECUPERACIN. Y donde estn los expertos?

    Empiece por www.ricardoortega.com o busque en Google. Un experto se tardar pocos minutos, recuperar

    el cien por ciento de informacin y no le costar mucho. En cambio, si se agrava el dao, no se podr

    recuperar el 100% y le saldr costoso. Es imposible poner aqu la experiencia de 20 aos recuperando

    datos, as que por favor no haga nada.

    2. Es posible que la falla haya sido el resultado de un delito informtico? Si la respuesta es S, es importante

    que NO HAGA NADA. Las evidencias informticas deben ser recolectadas mediante procedimientos

    estrictos y perfectamente establecidos. Si Ud. no es un experto en informtica forense, NO HAGA NADA,

    contacte a uno de ellos.

    3. El tiempo fuera de servicio es importante? Si la respuesta es NO, analice detenidamente la situacin y

    evale sus alternativas.

    4. Dispone de equipos de contingencia? Si la respuesta es S, use un equipo alterno hasta que el equipo

    afectado regrese a su normal operacin.

    5. Es posible que se trate de una falla fsica? Si es as, primero ejecute pruebas de diagnstico.

    Las alternativas que puede considerar para reparar el problema por su propia cuenta son las siguientes

    (aqu describimos cada uno de ellos):

    1. Arrancar el sistema en modo single

    2. Arrancar el sistema con DVD Linux Rescue

    Una vez que tiene arriba el sistema (sea desde el disco duro o sea desde el DVD) puede hacer lo siguiente:

    3. Quitar la clave del root

    4. Desactivar el selinux

    5. Reinstalar el grub

  • 15

    6. Desactivar algunos servicios que estn dando problemas

    6.2.3 Arrancar desde Grub en modo Single

    Al arrancar el computador aparecer el men de Grub. En el grub, presionar cualquier tecla para abrir el

    men de arranque.

    En el kernel por defecto, presionar la tecla a y agregar la palabra single (sin comillas).

    Si su GRUB est con clave, le pedir una clave. Deber escribirla. Si no conoce la clave, deber usar el

    DVD de Linux, segn se explica ms adelante.

    El sistema arrancar en modo monousuario (modo 1 o modo single), sin ambiente grfico ni red, nos

    mostrar un shell bash con privilegios desde el que podremos, por ejemplo, cambiar la clave de root o, en

    general, realizar cualquier tarea que no requiera o que no deseemos que tenga la red activa.

    Y cmo se cambia la clave de root? Pues con el comando passwd o editando el archivo /etc/passwd y

    removiendo la letra x de la columna correspondiente a la contrasea. Esos temas ya fueron tratados en

    captulos anteriores.

    Es posible que en algunas distribuciones no pueda ingresar al modo single. En tal caso, tendr que usar el

    DVD de CENTOS.

    En esta pantalla deber presionar la tecla a (minscula). No hace falta dar ENTER. No escriba ENTER

    porque terminar arrancando el sistema.

  • 16

    En esta pantalla se agrega un espacio en blanco y la palabra single. Luego se presiona la tecla ENTER.

    Ms sobre el GRUB en el Mdulo 2.

    Y Linux arrancar hasta el shell en modo single (modo 1).

    6.2.4 Arrancar desde DVD con Linux Rescue

    En Linux, hay muchas ocasiones en que se pierde el arranque del sistema (por ejemplo si se instala

    Windows despus de haber instalado Linux), o que el sistema, por alguna razn, se niega a levantar,

    normalmente, porque se ha cambiado de discos o la posicin de los discos.

    El CD 1 (o DVD) de CentOS (RHEL) es booteable, es decir, se puede arrancar. Recuerde que as fue cmo

    se instal el sistema.

  • 17

    Este CD nos da una opcin muy, muy til que es la llamada Linux Rescue. Esta opcin nos permite arrancar

    desde el kernel que est instalado en nuestro CD/DVD, y, mediante un pequeo script de arranque, este CD

    ser capaz de detectar las particiones de Linux que tengamos instaladas y las montar en el directorio

    /mnt/sysimage

    Seleccionamos idioma espaol.

    Seleccionamos el teclado, en mi caso Espaol (es).

  • 18

    Generalmente no se activan las tarjetas de red.

    Seleccionamos Continuar, para que detecte las particiones Linux.

  • 19

    Observe atentamente esta pantalla. Acaba de montar la particin del sistema dentro del directorio

    /mnt/sysimage

    Podemos comprobar esto, listando los archivos:

    Mire que en el directorio raz estn solamente 16 directorios, que estn presentes en el disco duro. No

    existe home.

    Al ingresar a /mnt/sysimage observamos todos los directorios de nuestro sistema (el que est en el disco

    duro).

  • 20

    Al intentar escribir el comando ll nos sale error, por la sencilla razn de que NO existe en el rbol de

    directorios del DVD. Bueno, existe, pero est dentro de los .RPMs del sistema.

    Luego de escribir chroot /mnt/sysimage, tenemos el rbol completo de nuestro disco duro.

    6.2.5 Comandos que se pueden usar en modo single

    Una vez en el shell, podemos usar algunos comandos para manejar los discos. Estos pueden ser los

    siguientes, pero por favor no grabar nada, no usar de ser posible!

    fdisk:

    fdisk -l Permite ver las particiones y discos que tenemos instalados.

  • 21

    fdisk /dev/xxx Permite acceder a un determinado disco para reparticionarlo, borrar particiones, analizar

    cualquier situacin relativa a particiones. Un ejemplo puede ser: fdisk /dev/hda. Recuerde que este

    programa DESTRUYE particiones, as que no lo utilice si desea rescatar la informacin.

    El fdisk es sencillamente, como en Windows, un comando que se usa muy infrecuentemente, sobre todo

    para darle de alta (particionar) nuevos discos o para revisar o corregir discos con particiones previamente

    creadas.

    Ms sobre fdisk en el captulo Gestin de Almacenamiento.

    mkfs.ext3 Permite formatear una particin que ya hayamos creado con el fdisk. Por ejemplo: mkfs.ext3

    /dev/hda3 formatear la particin hda3 con el formato ext3.

    fsck (file system check)

    Este programa equivale al scandisk o chkdsk de Windows / DOS.

    Si deseamos chequear un filesystem determinado, podemos hacerlo sencillamente con el comando:

    fsck /dev/hda1 (o cualquier otra particin que requiramos, por ejemplo sda1.

    El mensaje nos dice que puede existir problemas si ejecutamos fsck sobre una particin montada. Podemos

    desmontar la particin (recuerde que arrancamos con CD, as que podemos desmontar la particin sin

    problema).

    Este es uno de los comandos ms usados a la hora de usar el Linux Rescue, pues muchas veces el sistema

    falla por una cada desordenada y debemos realizar una revisin del FS. En efecto, aunque el FS tipo ext3

    es muy bueno recuperndose, a veces hay que ayudarle a recuperarse.

  • 22

    En caso de encontrar un error el fsck nos preguntar qu hacer y nos sugerir la variante ms conveniente".

    Recuerde que si existe informacin valiosa en el disco duro, es preferible detener cualquier actividad y

    poner el disco o el equipo en manos expertas. En cualquier otro caso, responda que S (o yes) a las

    preguntas del fsck.

    En todos estos aos de trabajo no hemos hallado ninguna razn por no decir que "yes" a la variante que

    presenten, por lo tanto cuando pregunte si aceptamos reparar o borrar algo, sugerimos siempre digan y".

    Tambin se puede ejecutar el fsck -y /dev/xxx con el switch -y el sistema asumir que diremos s a todas las

    preguntas.

    6.2.6 Enjaulndonos en la particin original de Linux

    Otra opcin que da el cd de arranque de redhat (centos) es que una vez que brinda el shell, tambin monta,

    dentro del directorio /mnt/sysimage, todo el FS de nuestro servidor de la misma forma que se monta de

    forma normal.

    La nica diferencia es que la raz del sistema original queda en /mnt/sysimage. "Cul es el objetivo de

    poner la raz del sistema original en otro directorio?".

    La respuesta es "Evitar que si los binarios del sistema original han sido cambiados por un atacante,

    podamos usar los binarios bsicos que nos brinda el cd de arranque".

    Ahora, si estamos seguros de que no es un problema de un ataque, o si estamos sencillamente ante una

    situacin diferente a un ataque como por ejemplo: que queremos cambiar la clave de root porque la hemos

    perdido o si queremos reinstalar el grub, o si, en general, necesitamos realizar reparaciones que conocemos

    su alcance y sabemos que, repito, no es un ataque podemos enjaularnos en ese directorio para usar el

    rbol de directorio tal y como se usa en un sistema normal.

    A continuacin veremos qu significa el comando chroot /mnt/sysimage

    Con este comando, logramos trasladar la raz de nuestro sistema hacia /mnt/sysimage, de forma tal que

    tenemos exactamente en el rbol de directorio de nuestro servidor. Esto se conoce como enjaular. En este

    caso, la jaula es muy conveniente para nosotros ya que podemos utilizar la raz de nuestro sistema Linux

    exactamente como si hubiesemos arrancado con el disco duro.

    Una vez dentro de la jaula podemos proceder cambiar la clave de root, por ejemplo:

    passwd

    o tambin podemos editar /etc/passwd y eliminar la x que est en la segunda columna. Esta, estimados

    asistentes, es una forma un poco dura pero efectiva de eliminar la clave de root.

    root:x:0:0:root:/root:/bin/bash

    podemos dejarlo as: root::0:0:root:/root:/bin/bash

    De esta forma quitamos la clave a root y podemos bootear normalmente".

    Otra utilidad de enjaularse en el sistema original puede ser la de reemplazar o sustituir un paquete rpm, por

    ejemplo un nuevo kernel o un kernel que se sabe que bootea. Una vez en el shell, se lo puede arreglar.

    Adems, si se ha perdido el grub (por ejemplo porque se ha instalado Windows y Windows siempre cambia

    el MBR y pone su propio loader) se puede usar esta va: /sbin/grub-install /dev/hda (o el nombre del disco

    duro original, que puede ser mirado con fdisk l)

    Esto permitir reescribir el grub hacia el disco /dev/hda y restaurar todas las configuraciones de ste.

  • 23

    Reinstalar el grub es una accin un poco traumtica pero que ocurre a veces, sobre todo cuando se ha

    instalado Windows despus de haber instalado Linux.

    6.2.7 Desactivar SELinux

    SELinux, como ya se ha apuntado, es un sistema de seguridad muy bueno. Sin embargo muchas

    aplicaciones no estn preparadas para trabajar con el SELinux activado. Por lo que se vuelve necesario

    desactivar. Con el tiempo, todas las aplicaciones y paquetes de Linux trabajarn correctamente con

    SELinux activado, pero mientras existan aplicaciones que no trabajen (y nosotros dependamos de esas

    aplicaciones), habr que desactivar el SELinux (con el dolor del alma).

    Si Ud. utiliza solamente paquetes provenientes del DVD original y actualiza paquetes con yum, no tendr

    problemas, pero a veces no hacemos esto, o tenemos servidores con software viejo, o archivos de

    configuracin viejos y no queremos o no podemos actualizar .

    Podemos desactivar SELinux con el comando

    setenforce 0

    Lo cual desactivar el SELinux hasta el prximo arranque o hasta que activemos el SELinux.

    O si lo queremos desactivar definitivamente:

    Una vez dentro del sistema en modo rescate, se procede a editar el archivo de configuracin del SELinux:

    vi /mnt/sysimage/etc/sysconfig/selinux

    o si uno est en la jaula puede hacer:

    vi /etc/sysconfig/selinux

    y ver una opcin que dice: SELINUX=enforcing

    se puede cambiar a: SELINUX=disable

    Luego de reiniciar arrancar por defecto con el SELinux deshabilitado.

    6.2.8 Verificacin de la RAM

    Aunque no sea precisamente un desastre, en ciertas ocasiones, los servidores fallan por culpa de una RAM

    defectuosa. Qu podemos hacer si esto sucede?

    El DVD de CentOS ofrece una sencilla forma de verificarlo, el MemTest, eso s, teniendo en cuenta que:

    1) La verificacin se har con el sistema operativo APAGADO

    2) La verificacin puede durar varios minutos a varias horas.

    El programa memtest no se instala, por lo que se puede correr desde cualquier mquina, sea cual sea el

    sistema operativo que corra.

    El memtest se mantendr corriendo ilimitadamente, tantas veces como sea necesario iterar. Les mostrar

    en la pantalla inferior cualquier error que ocurra

    Para salir del memtest sencillamente sacar el DVD y apretar ESC, y el sistema arranca normalmente.

    Esta es una herramienta muy til para revisar todas las mquinas de forma frecuente.

  • 24

    El programa memtest seguir corriendo indefinidamente hasta que presione ESC. Antea de hacerlo, retire el

    CD/DVD de la unidad para que reinicie el disco duro.

  • 25

    6.2.9 Reinstalar el grub

    Si por algn motivo el grub no arranca (por ejemplo ha instalado Windows en otra particin), ingrese a modo

    single y escriba

    grub-install /dev/sda1

    Por supuesto, deber verificar primeramente con fdisk l a ver cual es el nombre del dispositivo de

    arranque, que bien podra ser /dev/hda1 o cualquier otro que contenga el directorio raz.

    Fin del captulo 6. Fin del Mdulo 1 LINUX ADMINISTRATOR 1 En el siguiente mdulo LINUX ADMINISTRATOR 2: GRUB Acceso Remoto RAID LVM Logs Instalacin de paquetes RPM YUM Programacin shell Scripts bash Seguridades en el filesystem Antivirus y deteccin de intrusos