You are on page 1of 25

ntinua

Co
cin
uca
Ed
de
tro
en
C

Automatizacin de tareas
y recuperacin del sistema
Administracin Linux I - Modalidad Virtual
Tema 6

Edificio Aulas y relacin con el medio externo


Toledo y Lerida, Planta baja infovirtual@cec-epn.edu.ec
PBX: 25-25-766
Capacitacin en Modalidad Virtual

Administracin Linux I, Automatizacin de tareas y recuperacin del


sistema
Ricardo Ortega

Levantamiento de texto: 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://cursos.cec-epn.edu.ec/aulavirtual/ desde Abril 2008

CENTRO DE EDUCACIN CONTINUA


ESCUELA POLITCNICA NACIONAL
UNIDAD DE EDUCACIN VIRTUAL
Quito Ecuador
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


x Saber automatizar tareas mediante cron, anacron, at y batch
x Estar preparado para solucionar desastres en el sistema.
x Aprender a recuperar el sistema mediante: DVD, SELinux y Grub.
x Aprender a verificar la RAM y el hardware

Prerrequisitos para el captulo 6

x Tener instalado y funcionando un computador con Linux CENTOS.


x Conocer los comandos bsicos de Linux
x 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.

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.
1
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.................................................................................................................................... 1
PRERREQUISITOS PARA EL CAPTULO 6 ............................................................................................................. 1
RECURSOS NECESARIOS PARA EL CAPTULO 6 ................................................................................................ 1
RECOMENDACIONES PARA EL CAPTULO 6 ....................................................................................................... 1
CONTENIDOS DEL CAPTULO 6 ............................................................................................................................... 2
6.1 AUTOMATIZACIN DE TAREAS ........................................................................................................................ 2
6.1.1 Qu es la automatizacin de tareas? ............................................................................................................... 2
6.1.2 LA FACILIDAD CRON ..................................................................................................................................... 3
Facilidad para agregar tareas sin modificar crontab ................................................................................................ 4
Ejemplos de crontab ................................................................................................................................................... 5
Cron para usuarios distintos de root .......................................................................................................................... 6
Control de acceso a Cron ........................................................................................................................................... 6
6.1.3 LA FACILIDAD ANACRON .............................................................................................................................. 7
Qu utilidad puede tener el Anacron? ...................................................................................................................... 7
Qu no es Anacron?.................................................................................................................................................. 7
Iniciar y finalizar el servicio anacron ........................................................................................................................ 8
6.1.4 LAS FACILIDADES AT Y BATCH .................................................................................................................... 9
Utilidad de AT............................................................................................................................................................ 9
Visualizacin de las tareas pendientes ..................................................................................................................... 10
Opciones adicionales de la lnea de comandos ........................................................................................................ 10
Control de acceso a At y Batch ................................................................................................................................. 11
Iniciar y finalizar el servicio ..................................................................................................................................... 11
6.2 RECUPERACIN DEL SISTEMA ........................................................................................................................ 11
6.2.2 Qu es la recuperacin del sistema ................................................................................................................. 11
6.2.2 Lo primero: no haga nada ............................................................................................................................... 12
6.2.3 Arrancar desde Grub en modo Single.............................................................................................................. 13
6.2.4 Arrancar desde DVD con Linux Rescue .......................................................................................................... 14
6.2.5 Comandos que se pueden usar en modo single ................................................................................................ 18
6.2.6 Enjaulndonos en la particin original de Linux ............................................................................................ 20
6.2.7 Desactivar SELinux ......................................................................................................................................... 21
6.2.8 Verificacin de la RAM.................................................................................................................................... 21
6.2.9 Reinstalar el grub ............................................................................................................................................ 23

6.1 Automatizacin de tareas

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.

2
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.

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.

3
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)

x El smbolo de nmero (almohadilla) # es un comentario, todo lo que se encuentre despus de ese


carcter no ser ejecutado por el crond.

x 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 (*).

x 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 /<nmero entero>.
Por ejemplo, 0-59/2 puede usarse para definir el resto de los minutos del campo minuto. Es decir, dentro del
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
4
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

*/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 }

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:

5
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.

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.

6
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

7
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.

8
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:

9
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

10
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


11
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

12
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.

13
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.

14
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).

15
Generalmente no se activan las tarjetas de red.

Seleccionamos Continuar, para que detecte las particiones Linux.

16
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).

17
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.


18
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.

19
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.

20
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.

21
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.

22
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

23