TAREAS DE
ADMINISTRACIÓN
Administrar implicar muchas tareas como
planear, instalar y mantener los sistemas, lo cual implica un gran conjunto
de actividades.
Un buen administrador además de
tener sólidos conocimientos técnicos, también debe ser una persona con
capacidad de organizar, planificar y con mucha "mano izquierda" en el trato con
las personas. Esto es así debido a que al ritmo con el que los sistemas se
crean y se amplian, no vale improvisar y diseñar la estructura de la red sobre
la marcha, sino que se requiere planificar con antelación.
Normalmente, las tareas de
administración son de dos tipos: Soporte a usuarios y soporte de
sistemas.
Un consejo para tratar con los usuarios, es
proporcionarles un medio para distribuir sus peticiones como por ejemplo una
lista de correo, ya que si no, van a estar constantemente interrumpiendo el
trabajo del administrador.
El soporte a los usuarios incluye la
creación de sus cuentas de acceso y la ayuda y solución a sus
problemas. La información de las cuentas de usuario (logins) se almacena
en el fichero /etc/passwd y según el sistema se pueden almacenar las claves
encriptadas en el fichero /etc/shadow (las características específicas
de cada sistema, las veremos en otro apartado) o en otra estructura.
Normalmente los usuarios se gestionan mediante las herramientas de
administración del sistema (p.e. admintool en Solaris o smit en AIX),
aunque puede ser interesante el poder crear scripts para dar de alta usuarios a
partir de la información de la que dispongamos: En este ejemplo se puede
ver cómo hacer esto en AIX con el comando mkuser, en un sistema en el que los
usuarios tienen un login del estilo: u0001, donde 0001 es un número secuencial
que asigna el sistema
Nota: Este shell script solo se
ejecutará correctamente desde un ksh o un bash.
set `egrep "^u[0-9]+" /etc/passwd | wc -l`
`
total=$1
let
actual=total+1
read
nusu?"¿ Cuantos usuarios ?
"
let
i=actual
let
final=actual+nusu
while [ i -lt final
]
do
j=`echo $i | awk '{printf("%04d",
$1)}'`
mkuser gecos=$j pgrp=desarrollo groups=staff,desarrollo
u$j
let
i=i+1
done
Análogamente se podría hacer un script
de creación de usuarios para otros sistemas como Solaris o HP-UX usando el
comando useradd en ambos. Para ver una descripción completa de la sintáxis
de los comandos leer las páginas del man.
El soporte de sistemas
incluye realizar copias de seguridad, monitorizar y solucionar los errores que
se producen en los sistemas, además de añadir nuevos nodos a una red
(tarea que requiere una planificación
previa).
Tendremos que plantearnos las
siguientes preguntas:
- ¿ A qué sistemas tendrán acceso los
usuarios ?
- ¿ A qué sistemas de ficheros
necesitarán acceso ?
- ¿ Qué permisos tendrán ?
- ¿ Necesitarán acceso a sistemas de
archivos de red (NFS) ?
- ¿ Qué aplicaciones usarán ?
- ¿ Qué servicios del estilo de
telnet, ftp, correo... necesitarán ?
- ¿ A qué redes y subredes tendrán
acceso ?
De aquí sacaremos la información necesaria para montar
las utilidades que van a necesitar los usuarios.
Backups
Una de las tareas más importantes es
definir la política de backups y usar la herramienta apropiada para
realizarlos. Se suelen usar ciclos de backup, un ciclo consiste en tener
un conjunto de cintas que se van rotando según una periodicidad (por cintas
entendemos cualquier formato: DLT, DDS-2, DDS-3,...) que por ejemplo puede ser
semanal con 1 cinta por día que se va repitiendo cada semana, y se suele tener
un conjunto de cintas mensual donde se almacena durante un mes el backup de cada
lunes del mes. Esto es solo una idea, la política de backup dependerá de
lo "crítico" que sea el sistema.
Ahora vamos a pasar a describir los
distintos comandos que hay para realizar un backup y sus ventajas e
inconvenientes:
TAR:
Una de las formas más sencillas (y
portables) de hacer un backup, es usando el comando tar. Como dice la
página man tar: "tar - crea archivos de cinta y añade o extrae
ficheros". El comando tar archiva y extrae ficheros de y hacia un único
fichero denominado fichero tar (tarfile). Un fichero tar normalmente es
una cinta pero puede ser cualquier tipo de fichero (recordemos que en Unix los
dispositivos se tratan como ficheros). Las acciones de tar se controlan
mediante unos argumentos.
tar cf /dev/rmt/0 /home/felicia realiza un backup de ese directorio en una
máquina Solaris
La acción c indica escritura y f se
refiere al dispositivo de cinta.
Para restaurar se podría usar: tar xvf /dev/rmt/0
La acción v
muestra por pantalla los nombres de los ficheros que extrae o archiva
También se
pueden archivar path relativos: tar cvf /dev/rmt/0 . archiva todos los ficheros del
directorio actual.
¿ Cómo nos
creamos un archivo tar ? tar
cvf programas.tar *.c, crearía el archivo programas.tar con todos los
programas C. Este archivo se puede luego descomprimir con utilidades como
winzip, por eso dije antes que era portable.
CPIO
cpio es otra
utilidad de backup cuya sintáxis es bastante más complicada que tar, pero tiene
como ventaja que es la más compatible entre sistemas Unix, por lo tanto si lo
que queremos es que nuestro backup se lea correctamente y sin problemas en una
máquina de otro fabricante, tendremos que usar dicha herramienta.
cpio crea un
archivo de tipo cpio (al igual que tar creaba un archivo de tipo tar), y tiene
tres modos de operación:
-
cpio
-o: Lee la entrada estándar para obtener una lista con los ficheros que
copia en la salida estándar .
-
cpio -i:
Extrae los ficheros de la entrada estándar, que se han grabado previamente con
cpio -o .
-
cpio -p:
Obtiene la lista de ficheros de la entrada estándar y los copia en el
directorio de destino.
cpio,
dado que toma su entrada estándar desde otro comando, se suele utilizar en
conjunción con los comandos 'find' o 'ls', por ejemplo:
find . -print | cpio -o >
/dev/rmt/0
Grabaría el
contenido del directorio actual. También existe la posibilidad de ver los
nombres de los archivos que está grabando con la opción y de especificar tamaños
de bloque, ver las páginas man para el comando.
Las ventajas
de cpio son :
-
Organiza
los datos en la cinta de una forma más eficiente que tar o
dd.
-
Salta
zonas con bloques defectuosos en la cinta, por lo que se puede restaurar parte
de un archivo dañado.
-
Intercambiar el orden de transferencia de los bytes, de forma que
permite pasar de una arquitectura a otra.
OTRAS
UTILIDADES
Hasta ahora
las utilidades que hemos visto sirven más para copiar datos que para montar un
sistema de backups.
Cada sistema
operativo tiene sus propias utilidades para realizar backups orientadas a copiar
particiones enteras de disco (sistemas de ficheros) más que ficheros sueltos y permiten realizar backups
incrementales y restaurar interactivamente los ficheros que nos
interesen.
La forma correcta de utilizarlas es realizando
los backups de los sistemas de ficheros que nos interesan para lo cual habrá que
desmontar primero el sistema de ficheros, chequear su consistencia mediante
el comando fsck, realizar el backup y volver a montar el sistema de
ficheros.
En Solaris
una de estas utilidades es "ufsdump" y la utilidad para restaurar es
"ufsrestore".
ufsdump 0cfu /dev/rmt/0
/dev/rdsk/c0t3d0s0
Realiza un
backup de nivel 0 del sistema de ficheros que esté montado sobre
/dev/dsk/c0t3d0s0
Se le puede
añadir la opción v para verificar el backup.
ufsrestore i
/dev/rmt/0
Restaura
interactivamente los archivos que elegimos y nos "movemos" por la cinta como si
estuvieramos en un directorio usando los comandos "cd" y "ls" para listar los
contenidos y "add" para añadir el fichero a la lista de los que queremos
restaurar. La restauración interactiva solo funciona si el backup se ha
hecho por "file system".
En AIX las
utilidades son "backup" y "restore".
backup -0 -u -f /dev/rmt0
/home
Crea un
backup de nivel 0 del sistema de ficheros /home en AIX
restore -i -f
/dev/rmt0
Restaura interactivamente los ficheros especificados de forma análoga a
ufsrestore.
El registro
de los backups realizados se guarda en el fichero /etc/dumpdates.
Monitorización de la carga y del rendimiento
Es otra área
donde la planificación y la anticipación son importantes para evitar que "algo"
ocurra y reaccionar entonces (cuando podría ser demasiado tarde).
Para ello, lo
mejor es usar las herramientas más apropiadas para realizar estas tareas, por
ejemplo, para Solaris tenemos el "top" que nos da información sobre los
procesos, qué memoria ocupa cada proceso, porcentaje de uso de la CPU, tamaño de
swap usado...
En AIX existe
una herramienta similar que se llama "monitor".
Es
conveniente mirar, si el sistema página a swap ya que eso quiere decir que hay
alguna aplicación que consume mucha memoria RAM y por lo tanto habrá que
ampliarla.
También habrá
que monitorizar el porcentaje de tiempo que invierte la CPU en procesos de
usuario, sistema y disco y habrá
que detectar también que no hayan cuellos de botella en disco.
Herramientas
del sistema para monitorizar:
-
vmstat:
Monitoriza memoria virtual.
-
iostat:
Monitoriza los accesos a disco.
-
sar:
Monitoriza parámetros varios.