Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DE TAREAS Y
RECUPERACIN
DEL SISTEMA
de
textos
http://aula.virtualepn.edu.ec
infovirtual@cec-epn.edu.ec
ADMINISTRACIN DE LINUX I
Automatizacin de tareas y recuperacin del sistema
Material para la modalidad virtual
Master Ricardo B. Ortega O.
www.ricardoortega.com
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.
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.
5
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.
2.
3.
4.
5.
Minutos: (0-59)
Horas: (0-23)
Das: (1-31)
Mes: (1-12)
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 /<nmero entero>.
Por ejemplo, 0-59/2 puede usarse para definir el resto de los minutos del campo minuto. Es decir, dentro del
6
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.
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 }
7
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
@yearly
Descripcin
Se ejecuta una vez al ao
Equivale A
0 0 1 1 *
0 0 1 1 *
@monthly
0 0 1 * *
@weekly
@daily
0 0 * * *
0 0 * * *
@hourly
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
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.
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
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.
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
11
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.
Descripcin
-f
Lee los comandos o script del shell desde un archivo en vez de ser
especificados en el intrprete de comandos.
-m
-v
En esta pantalla deber presionar la tecla a (minscula). No hace falta dar ENTER. No escriba ENTER
porque terminar arrancando el sistema.
15
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).
16
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
17
18
Observe atentamente esta pantalla. Acaba de montar la particin del sistema dentro del directorio
/mnt/sysimage
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).
19
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.
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.
21
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.
22
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.
2)
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.
23
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.
24
25