BLOQUE IV. ADMINISTRACION DEL SISTEMA UNIX


1. Tareas administrativas básicas

          La administración del sistema consiste básicamente en gestionar los recursos del sistema para que se puedan utilizar de la forma más eficiente posible así como llevar control de los usuarios potenciales del sistema. Entrando más en detalle, las tareas de administración del sistema más comunes son las siguientes:

    • Instalar el sistema operativo.
    • Añadir, eliminar y controlar usuarios y sus contraseñas.
    • Instalar software de aplicación.
    • Instalar hardware (como tarjetas, impresoras, terminales y modems).
    • Mantener la seguridad e integridad del sistema y de la red.
    • Diagnosticar y arreglar problemas software y hardware cuando ocurran.
    • Comprobar el uso de los sistemas de archivos para asegurarse que no están llenos y además controlar el uso indiscriminado de éstos.
    • Mantener impresoras, modems y terminales remotos.
    • Realizar copias de seguridad de los sistemas de archivos.
    • Recuperar archivos desde copias de seguridad.
    • Mantener servicios de red, correo y otros servicios de comunicaciones.
    • Optimizar el uso de los recursos del sistema.
    • Asistir a los usuarios en sus necesidades.

          Los comandos y archivos relativos a la administración del sistema varía de una versión a otra del UNIX, pero la filosofía es siempre la misma. A continuación se verá la administración en UNIX System V Release 4 (SVR4) como ejemplo de administración de UNIX, los pasos a seguir son prácticamente los mismos para cualquier otra versión.






2. Secuencia de encendido y apagado del sistema

2.1 Modos de funcionamiento:

          En UNIX SVR4 existen varios modos o niveles de ejecución, cada uno de los cuales tiene unas características y funciones específicas. A continuación se nombran estos niveles de ejecución:

    • Nivel 0      Estado de shutdown (apagado del sistema).
    • Nivel 1      Estado de administración.
    • Nivel 2      Modo monousuario.
    • Nivel 3      Estado de red distribuida.
    • Nivel 4      Usuario definible (no usado).
    • Nivel 5      Estado de diagnósticos.
    • Nivel 6      Estado de rearranque y/o shutdown.


2.2 Secuencia de encendido:

          Para iniciar el sistema desde un estado inactivo, se realiza una secuencia de pasos conocido como bootstrap. El procedimiento de arranque varía según el tipo de máquina y nivel de ejecución pero el objetivo es el mismo en todos ellos: obtener una copia del sistema operativo en la memoria principal e iniciar su ejecución. Generalmente, cuando se enciende el ordenador, se instruye a la máquina a cargar un programa de bootstrap desde el microcódigo. El procedimiento de bootstrap lee el bloque 0 (boot block) del sistema de archivos principal y lo carga en memoria. El programa contenido en el boot block carga el kernel desde el sistema de archivos y después transfiere el control a la dirección de inicio del núcleo, para que el núcleo comience a ejecutarse.

          El kernel inicializa sus estructuras de datos internas, monta el sistema de archivos principal y prepara el entorno para el proceso 0. Una vez preparado el entorno, el sistema comienza a ejecutarse como el proceso 0; luego se bifurca (se desdobla con la llamada al sistema fork) creando un nuevo proceso, el proceso 1. El proceso 0 se convierte en el proceso swapper (intercambiador) que será el encargado de manejar la asignación de espacio de direccionamiento entre la memoria principal y los dispositivos de swap. El proceso 0 o proceso swapper se ejecutará en modo kernel.

          Por otra parte, el proceso 1 realiza varias inicializaciones y pasa a ejecutarse en modo usuario. Luego ejecuta el programa /usr/etc/init. Al proceso 1 se le llama normalmente como el proceso init porque es el responsable de la inicialización de nuevos procesos; o dicho de otra forma, todos los procesos en el sistema, excepto el proceso swapper, descienden del proceso init.

          El proceso init es un proceso dispatcher (despachador) y produce, entre otros, los procesos para que los usuarios puedan conectarse al sistema. Normalmente ejecuta la secuencia de órdenes del script /etc/rc.boot para comprobar los sistemas de archivos y posteriormente ejecuta las órdenes del etc/rc y /etc/rc.local para comenzar las operaciones de multiusuario; en otro caso, se comenzaría en modo monousuario.

          En operaciones de multiusuario, el papel de init es crear un proceso por cada puerto del terminal en el cuál un usuario pueda conectarse. Para iniciar estas operaciones, lee el archivo /etc/ttytab y ejecuta, normalmente, la orden /usr/etc/getty por cada terminal especificado en el archivo que tenga el campo de status a on. getty abre e inicializa la línea del terminal y ejecuta la orden login para permitir la conexión de usuarios. Básicamente, la orden login actualiza los archivos de accounting, imprime el mensaje del día, informa de la existencia de algún correo y muestra la fecha de la última conexión. Por último, login inicia un intérprete de órdenes basándose en las especificaciones encontradas en el archivo /etc/passwd.

          Cuando se abandona el shell, el proceso init elimina la entrada apropiada del archivo /etc/utmp, el cuál registra los usuarios actuales, y realiza una entrada en el archivo /etc/wtmp, el cuál contiene un histórico de las conexiones y desconexiones.

          Los procesos en un sistema UNIX pueden ser procesos de usuario, procesos daemon o procesos del kernel. Los procesos de usuarios, la mayoría, se asocian con usuarios de un terminal. Los procesos daemon no se asocian con ningún usuario pero hace funciones del sistema, tales como la administración y control de redes, ejecución de actividades dependientes del tiempo, spooling de impresión, etc... Los procesos daemon se ejecutan en modo usuario.

          Los procesos del kernel se ejecutan sólo en modo kernel. Son creados por el proceso 0 antes de que éste se convierta en el proceso swapper. Los procesos del kernel son similares a los procesos daemon (proporcionan servicios del sistema) pero ellos tienen un mayor control sobre las prioridades de ejecución ya que su código es parte del kernel. Ellos pueden acceder a algoritmos del kernel y a estructuras de datos directamente sin tener que usar llamadas al sistema; por ello son extremadamente potentes. Sin embargo no son tan flexibles como los procesos daemon, porque el núcleo del sistema operativo debe ser recompilado para poder cambiarlos.



2.3 Apagado del sistema:

          Antes de efectuar el apagado físico del sistema es necesario efectuar el procedimiento shutdown, encargado de efectuar la parada del sistema en una secuencia lógica que evite la corrupción de los sistemas de archivos y la posible pérdida de información.

          La ejecución de este procedimiento puede variar ligeramente dependiendo de que el sistema esté en modo multiusuario o monousuario. En el primer caso es conveniente comprobar si hay algún usuario conectado al sistema. Si hay alguien trabajando deberá notificársele la situación y concederle un tiempo para que pueda cerrar sus archivos y hacer logoff. A continuación puede lanzarse el proceso shutdown.

          Para que se pueda ejecutar el proceso shutdown, es necesario tener privilegios de administrador y estar posicionado en el directorio raíz. Una vez ejecutado el proceso, aparecerá un mensaje indicando que ya se puede desconectar la máquina.






3. Administración del sistema de archivos

3.1 Particiones de disco:

          Dada la gran capacidad de almacenamiento de las unidades de disco, puede ser interesante el subdividirlo en porciones más pequeñas para mejorar su gestión. Cada una de estas subdivisiones se denomina partición, comportándose como si fuera un disco lógico.

          Normalmente, cada partición se utiliza como un sistema de archivos, sin embargo también pueden utilizarse para otros propósitos, como el área de swap.

          En un sistema que disponga de varios discos físicos se denomina disco primario al que contiene el directorio raíz. Las particiones del disco primario se crean durante la instalación del sistema operativo.



3.2 Sistemas de archivos:

          Una de las principales funciones del sistema operativo UNIX es la de soportar los sistemas de archivos. Un sistema de archivos es un mecanismo que permite a los usuarios crear, borrar o acceder a los mismos sin necesitar saber en qué lugar físico del disco están almacenados sus bloques. Un sistema de archivos ocupa una partición del disco, pero no todas las particiones tienen que ser un sistema de archivos (por ejemplo la utilizada para swap). El sistema de archivos principal (root) está disponible automáticamente por el mero hecho de cargar el sistema. El resto de sistemas de archivos figuran como "montables". Montar un sistema de archivos significa enlazarlo a otro que esté disponible (normalmente el root). El punto de enlace de los dos sistemas de archivos se denomina "punto de montaje" y debe ser un directorio. Los archivos y subdirectorios de un sistema de archivos que no ha sido montado, no son accesibles. Una vez montado se podrán acceder como dependientes del directorio de montaje.


3.3 Sistema de archivos virtual:

          En UNIX System V Release 4, el sistema de archivos virtual (virtual file system o VFS) es un concepto que permite que existan diferentes tipos de sistemas de archivos trabajando conjuntamente en el mismo sistema. Para su correcto funcionamiento, utiliza dos mecanismos de control, uno dependiente del tipo de sistema de archivos y el otro no.

     

    Estructura vnode:
    Es una estructura de memoria que controla la información independiente del tipo de sistema de archivos. Cada archivo accedido tiene asociada su propia estructura vnode, que es el centro de toda su actividad. Contiene punteros hacia:
    • Sistemas de archivos montados.
    • Tipo de archivo.
    • Información de inodo.
    • Operaciones que se pueden realizar en el archivo.

    Virtual file system switch table:
    Se encarga de manejar la información que depende del tipo de sistema de archivos. Contiene una entrada por cada uno de los tipos de sistema de archivos. Esta tabla lleva punteros hacia las utilidades y operaciones específicas de cada tipo. Muchas de las utilidades que manejan los sistemas de archivos incorporan una opción para apuntar a la entrada apropiada en esta tabla.


3.4 Tipos de sistemas de archivos:

          SVR4 permite la coexistencia de diferentes tipos de sistemas de archivos en una misma estructura. Existen tres tipos diferentes de sistemas de archivos:

    • s5 es el tipo de sistemas de archivos tradicional de System V (el estándar de AT&T). Permite nombres de archivos de hasta 14 caracteres.
    • ufs está basado en el tipo de sistema de archivos utilizado en el UNIX de la Universidad de Berkeley (BSD Fast File System). Permite nombres de archivos de 250 caracteres.
    • bfs es un tipo de sistema de archivos especial (boot file system) que se utiliza tan sólo para una partición donde se almacenan los archivos necesarios para realizar la carga del sistema (el directorio /stand).

          Aparte de estos tipos de sistemas de archivos que se asocian a particiones de disco, existen otros sistemas de archivos virtuales, de uso interno del sistema, que quedan residentes en memoria.



3.5 Tabla del sistema de archivos virtual:

          Como ya se ha mencionado antes, el concepto de sistema de archivos virtual permite la coexistencia de diferentes tipos de sistemas de archivos en un mismo sistema.

          Dado que comandos genéricos trabajan sobre cualquier tipo de sistema de archivos, es necesario que se les suministre una información específica. Esta información puede ser proporcionada explícitamente desde la línea de comandos o implícitamente desde la tabla de sistemas de archivos (/etc/vfstab). Este archivo contiene entradas para los sistemas de archivos que se pueden montar en el sistema. Cada entrada consta de una línea de la forma siguiente:

    
    	especial  carácter  p.montaje  tipo  pasos  automont.  opción
    
    donde:

    especialNombre del archivo especial tipo bloque asociado a la partición.
    carácterArchivo especial tipo carácter que corresponde a la partición. Si no es utilizable se usa el de tipo bloque. En caso de que no sea un dispositivo aplicable se pone un "-".
    p.montajeNombre del directorio punto de montaje de ese sistema de archivos.
    tipoTipo de sistema de archivos creado en la partición.
    pasosEste número indica el número de pasos de comprobación que realiza el comando fsck (file system check) automáticamente (durante la carga). Un guión "-" en este campo indica que no se realizará comprobación automática.
    automont.      Indica si se realizará automáticamente el montaje de ese sistema de archivos desde los scripts de inicialización del sistema (durante la carga).
    opciónOpciones utilizadas cuando se monta el sistema de archivos.

      En caso de que en este archivo aparezca una línea que comience por #, será tomada como comentario.

3.6 Area de desplazamiento (swap):

          En configuraciones por defecto, la segunda partición del primer disco se utiliza para el área de swap. El área de swap se utiliza como una ampliación de la memoria principal durante la operación del sistema.

          Dado que pertenece al primer disco, que es formateado y construidas sus particiones durante el proceso de instalación, la reconfiguración del espacio destinado a este área implica una tarea complicada (copias de seguridad de todos los sistemas de archivos del disco, nueva instalación, etc.). Para evitarlo, dentro de lo posible, se ha proporcionado la posibilidad de asignar y liberar recursos de disco, de forma dinámica al área de swap.



3.7 Quota system (ufs):

          El sistema de archivos ufs permite asignar un límite (quota) de espacio y cantidad de inodos a ser utilizados en él por un usuario específico. Existen dos tipos de límites, uno "hard" y otro "soft".

    Límite Hard:
    Especifica el número máximo de bloques de disco, o de i-nodos, que puede utilizar el usuario. Nunca puede ser alcanzado. En caso de que el usuario intente llegar a este límite, se visualizará un mensaje de error.

    Límite Soft:
    Este límite tiene dos parámetros, espacio de disco y tiempo. El límite especificado para el espacio de disco puede ser excedido (sin llegar al límite hard), pero en ese momento arranca un reloj que permite utilizar ese espacio hasta que el límite de tiempo se agote. A partir de ese momento el usuario debe situar la utilización del sistema de archivos por debajo del límite soft antes de poder utilizar más espacio.

          Resumiendo, cada usuario puede tener especificados límites (hard y soft) para la utilización de bloques y de i-nodos. También puede definirse un límite de tiempo, que se aplica a todos los usuarios del sistema de archivos, indicando durante cuanto tiempo puede excederse el límite soft. Puede especificarse un límite de tiempo diferentes para cada sistema de archivos. Además, los usuarios pueden tener diferentes límites en diferentes sistemas de archivos.






4. Administración de usuarios.

4.1 Introducción:

          La administración de la cuenta de los usuarios y sus grupos de trabajo implica una gran responsabilidad, pues el primer paso para mantener la seguridad del sistema consiste en evitar el acceso al mismo de personas no autorizadas. Esta tarea se realiza asignando y manteniendo identificativos y contraseñas de acceso al sistema.

          Para que un usuario pueda acceder al sistema, debe estar previamente registrado ante el mismo. Esta tarea, realizada por el administrador del sistema, afecta a tres archivos: /etc/passwd, /etc/shadow y /etc/group. Sin embargo, estos archivos no deben ser editados directamente, para evitar errores que los corrompan, pues son críticos para el acceso al sistema. Por tanto, el registro de usuarios se realiza por medio de un conjunto de utilidades suministradas con el sistema.



4.2 Archivo /etc/passwd:

          Este archivo es consultado por el proceso login cuando un usuario se identifica, para ver si figura el identificativo en el mismo, y si es así localizar la información pertinente para dejarle correctamente conectado al sistema.

          En este archivo existe una línea por cada usuario registrado ante el sistema. Cada registro consta de siete campos, separados por el carácter ":" de la siguiente forma:

    
    	usuario:contraseña:user-id:group-id:comentario:directorio:shell
    
    con el significado siguiente:

    usuarioNombre con el que puede identificarse un usuario cuando el sistema el login a un terminal.
    contraseñaEn versiones anteriores, en este campo se almacenaba la contraseña de acceso del usuario, en forma encriptada. Actualmente contiene un carácter "x" y la contraseña y sus características están en el archivo /etc/shadow.
    user-idNúmero asignado al usuario para identificarlo internamente. Este número es utilizado por el sistema para efectuar los controles de propiedad de archivos y subdirectorios. Los números más bajos quedan reservados para los usuarios con privilegios de administrador.
    group-idNúmero que identifica el grupo al que se asocia ese usuario. Debe tener una correspondencia con el archivo /etc/group. Afectará a los permisos de acceso a archivos a nivel de grupo.
    comentario      Normalmente contiene información sobre el propietario del login, como puede ser su nombre completo, su dirección, etc.
    directorioRuta completa del directorio HOME, en el que sitúa al usuario cuando tanto el identificativo como la contraseña son correctos.
    shellNombre completo del proceso que se arrancará automáticamente para el usuario cuando se identifica. Aunque puede ser cualquier programa ejecutable, normalmente será un intérprete de comandos (shell).



4.3 Archivo /etc/shadow:

          Este archivo, totalmente crítico para la seguridad del sistema, contiene toda la información relativa a las contraseñas de acceso de los usuarios. En el archivo /etc/shadow existe una línea por cada uno de los usuarios registrados en el sistema. En cada una existen ocho campos separados por el carácter ":", siguiendo la siguiente estructura:
    
    	usuario:contraseña:cambio:mínimo:máximo:aviso:inactividad:expiración:flag
    
    donde cada campo adquiere el siguiente significado:

    usuarioNombre del usuario al que corresponde la información que va a continuación. Debe coincidir con un usuario registrado en el /etc/passwd.
    contraseñaEste campo contiene la contraseña puesta por el usuario después de ser encriptada por un algoritmo. Ocupa un total de trece caracteres. Sin embargo, si se acaba de crear el usuario puede aparecer vacío para indica que no tiene contraseña.
    cambioCantidad de días que han pasado desde el 1 de Enero de 1970 hasta la fecha del último cambio de la contraseña. Se utiliza como base de cálculos para los campos siguientes.
    mínimoCantidad de días, a partir desde el último cambio de contraseña en que el usuario no puede volver a cambiarla.
    máximoCantidad máxima de días, desde el último cambio de contraseña, en que ésta es válida. Pasado este tiempo el usuario se verá obligado a volver a cambiarla.
    avisoCantidad de días antes de llegar a máximo, en que el sistema avisa de que hay que cambiar la contraseña.
    inactividad      Máximo de días de inactividad permitidos al usuario. En caso de que se exceda ese número de días el sistema dé de baja al mismo.
    expiraciónFecha, en absoluto, a partir de la cual no puede utilizarse ese identificativo de usuario.
    flagEstá reservado para uso futuro. Actualmente aparece siempre en blanco.



4.4 Archivo /etc/group:

          En este archivo se almacenan los grupos existentes en el sistema y los usuarios asignados a cada grupo. Cada entrada en este archivo tiene la sintaxis siguiente:
    
    	grupo:contraseña:group-id:usuarios
    
    donde cada campo tiene el siguiente significado:

    grupoNombre asignado a ese grupo.
    contraseña      Contiene la contraseña encriptada de grupo. En versiones modernas de UNIX este campo no se utiliza pero se mantiene en blanco por compatibilidad con versiones antiguas.
    group-idNúmero que identifica al grupo internamente para el sistema. Se utiliza para comprobar los permisos al nivel de grupo.
    usuariosLista con los nombres de los usuarios (que aparecen en /etc/passwd) que están asignados a cada grupo. Aparecen separados por comas. Un mismo usuario puede estar asignado simultáneamente a varios grupos, pero el principal será aquel que figura en el campo correspondiente de /etc/passwd. No es necesario incluirse en el grupo en el que se creó un usuario.



4.5 Establecimiento del entorno de usuario:

          El administrador tiene la posibilidad de establecer un entorno general de trabajo para todos los usuarios, pero a su vez el usuario en sí dispone de una forma para establecer su propio entorno individual, de tal manera que por el mero hecho de identificarse este entorno quede creado.

          Con este objetivo existen el archivo /etc/profile y un archivo .profile en el directorio Home de cada usuario.


    4.5.1 Archivo /etc/profile:

          Una vez que el usuario se identifica correctamente, se ejecuta de forma automática el shellscript contenido en este archivo. Dado de que este contenido es el mismo para todos los usuarios, permite crear el entorno general.

          Durante la ejecución de este shellscript se pueden efectuar una serie de operaciones de interés general para los usuarios, tales como:

    • Se ejecuta un comando umask para modificar los permisos por defecto a la hora de crear nuevos archivos.
    • Se analiza la existencia del archivo /etc/motd. Si este archivo existe, se lista su contenido.
    • Se establecen los parámetros por defecto para el terminal.
    • Se analiza si el usuario que se acaba de identificar tiene correo en su buzón. Si es así se visualiza un mensaje de aviso.
    • Se analiza la existencia de algún "boletín de noticias" (news) que aún no haya sido leído por el usuario, visualizando su nombre en caso de que lo haya.

          El archivo /etc/profile, es de propiedad del administrador y, por lo tanto, puede ser modificado cuando lo desee para eliminar aquello que no le guste o para añadir todo lo que quiera que se ejecute cada vez que se identifica un usuario.


    4.5.2 Archivo $HOME/.profile:

          Este archivo se crea en el directorio Home del usuario cuando es añadido al sistema. Normalmente se copia desde el existente en /etc/skel. El archivo .profile, salvo que así lo disponga el administrador, es de propiedad del usuario y por lo tanto cada uno puede modificarlo a su gusto para crearse su entorno individual.



4.6 Comunicación con los usuarios:

          El administrador del sistema dispone de diferentes métodos para ponerse en comunicación con los usuarios a través del sistema. Dependiendo del motivo que provoque esta necesidad unos serán más convenientes que otros. Algunos de estos métodos son los siguientes:

    Archivo /etc/issue:
    El contenido de este archivo aparece en la pantalla precediendo al mensaje que solicita el login. Por lo tanto antes incluso de la identificación del usuario.

    Archivo /etc/motd:
    Cuando un usuario se identifica ante el sistema, se ejecuta el shellscript contenido en el archivo /etc/profile y una de sus misiones es visualizar el contenido de este archivo. Por lo tanto aparecerá en pantalla antes de que el usuario reciba el mensaje prompt. Se suele utilizar Para informar a todos los usuarios que se identifiquen, de algún evento a producirse en ese día de ahí su nombre "Mensaje del día".

    Comando wall:
    Envía un mensaje a todos los usuarios activos del sistema. Se utiliza para enviar mensajes urgentes, como avisar de que se va a apagar el equipo, etc.

    Boletín de noticias:
    Las noticias son creadas por el administrador creando archivos en el directorio /var/news. Los usuarios son avisados de la existencia de estas noticias, desde /etc/profile, cuando se identifican, pero una vez leídas (con el comando news) no vuelven a ser mostradas. Permite enviar documentos largos.


4.7 Control del espacio de disco:

          El espacio libre de disco es totalmente crítico en UNIX, por lo que una de las tareas más habituales del administrador será la de vigilar la ocupación que se está realizando de cada sistema de archivos.

          Por otro lado suele ser normal que usuarios inexpertos del sistema, creen archivos para hacer pruebas y después no los borren, ocupando innecesariamente grandes espacios de disco.






5. Configuración de impresoras

5.1 Introducción:

          El servicio de impresión, llamado también LP Spooler, es un conjunto de utilidades software que permiten enviar un archivo a impresión mientras se continúa con otro trabajo.

          Estas son las características del spool de impresión:

    • Método de conexión (directo o módem).
    • Impresoras serie y paralelo.
    • Capacidad para definir programas de interface (filtros).
    • Capacidad para seleccionar tipo de impresora (terminfo).
    • Capacidad para seleccionar tipo de contenido.
    • Selección de tipo de caracteres y formularios.
    • Capacidad para restringir el uso de la impresora.
    • Manejo de prioridades de impresión.


5.2 Configuración de impresoras:

          El sistema spool de impresión dispone de un planificador (scheduler) encargado del control del sistema y del manejo de todas las solicitudes de impresión realizadas por los usuarios. Este planificador es arrancado de forma automática cuando se inicializa el sistema.

          Para realizar la configuración de una impresora es necesario parar este planificador. Al parar el servicio de impresión, todas las impresoras que estén funcionando pararán, reanudándose la impresión cuando vuelva a arrancarse.

          Al configurar una impresora se suministra el nombre que se desea dar a la impresora (el nombre lógico), el archivo especial asociado a la puerta en que se conecta la impresora (ya sea serie o paralelo), el archivo de interface, etc. Después de configurarla hay que arrancar el spool de impresión, indicar a la impresora que acepte solicitudes de impresión y activarla.

          Se puede configurar una impresora como default printer (impresora por defecto), a la que irán todas las solicitudes que no incluyan una especificación de impresora.



5.3 Control de usuarios:

          Los usuarios que acceden al sistema de spool de impresión pueden ser controlados de dos formas diferentes.

          Por una parte puede impedirse el acceso de determinados usuarios a una impresora concreta.

          Otra forma de controlar a los usuarios es proporcionarles una limitación a las prioridades que adquieren las solicitudes realizadas. Cuando un usuario realiza una petición de impresión, el sistema le asigna una prioridad entre 0 (la más alta) y 39 (la más baja), por defecto se le asigna el valor 20. El usuario puede variar la prioridad de una solicitud por lo que puede ser conveniente el limitarle los valores en que puede moverse.

          El administrador, o un administrador del sistema de spool de impresión, puede en cualquier momento cambiar la prioridad de una solicitud realizada por un usuario.



5.4 Manipulación de formularios:

          Un formulario consiste en una hoja de papel que incluye un texto preimpreso, y que no tiene porqué ajustarse al tamaño de papel estándar. El sistema de spool ayuda a utilizar formatos preimpresos, pero no ayuda a rellenar el formulario, que debe ser hecho desde la aplicación.

          La preparación del formato incluye especificar detalles como longitud y anchura de papel, cantidad de líneas por pulgada, caracteres por pulgada, tipo de cinta entintada, etc.



5.5 Utilización de filtros:

          La utilización de filtros permite:

    • Preparar un archivo en un formato en que pueda ser correctamente impreso por una impresora dada.
    • Proporcionar recursos para detección/recuperación de fallos.
    • Manejar formas especiales de impresión, como tipo de papel, tipos de letra, juego de caracteres, etc.





6. Utilidad administrativa CRON

6.1 Introducción:

          Es normal que el administrador del sistema UNIX, se vea obligado a efectuar una serie de tareas, de forma repetitiva, en días determinados e incluso a determinadas horas.

          Hay que tener en cuenta que ésto es diferente al caso en que se desea ejecutar un proceso o procesos determinados en un día y hora concreta, pero una sóla vez, tarea que se realiza con medio del comando at.

          Aunque diferentes casos, ambos son manejados por el mismo sistema del UNIX, el proceso cron (cronómetro del sistema).



6.2 Proceso cron:

          El cron es un proceso "deamon" que se encarga de comprobar un reloj del sistema para ejecutar procesos previamente planificados, para que se ejecuten en un determinado momento.

          Un proceso daemon es arrancado por el sistema para realizar tareas rutinarias que no necesitan ningún tipo de supervisión, y que continúa ejecutándose mientras el sistema esté trabajando, aunque no haya ningún usuario activo.

          El sistema cron planifica la ejecución de programas previamente planificados por el administrador o usuarios autorizados, contenidos en los archivos-tablas correspondientes.

          Es un sistema especialmente útil para planificar tareas de administración que necesiten mucho tiempo para su ejecución en momentos de baja utilización del sistema. Por ejemplo para lanzar el proceso de copias de seguridad, efectuar procesos de contabilidad o manejar los archivos de log del sistema.

          El proceso cron se lanza automáticamente durante el proceso de inicialización del sistema (cuando pasa a modo multiusuario).

          El proceso cron analiza los archivos contenidos en el directorio /var/spool/cron/crontabs de forma periódica, para detectar los procesos a ejecutar.

          Aunque normalmente este sistema es utilizado por el administrador, también puede serlo por usuarios normales, siempre y cuando estén previamente autorizados. Para ello se creará un archivo con el nombre del usuario dentro del directorio analizado por cron.

          El sistema cron copia el contenido de sus archivos a memoria y lo analiza cada minuto, pero cualquier cambio realizado no será tenido en cuenta a menos que se ejecute por medio del comando crontab o el sistema sea parado y rearrancado, por esta razón no es conveniente hacer cambios directamente sobre estos archivos.

          Todos los procesos ejecutados por el sistema cron, se efectúan en background.



6.3 Formato del archivo contenido en crontabs:

          Como se ha mencionado anteriormente, del directorio crntabs, dependen los archivos cuyos contenidos son analizados por el proceso cron para ejecutar los comandos que estén especificados para esa fecha y hora.

          Cada entrada o registro de estos archivos deben contener seis campos separados por espacios o tabuladores. En caso de que alguna de las líneas comience por un carácter #, será tomada por el cron como comentario y por lo tanto no ejecutada.

          Formato de la entrada:

    
    	1	2	3	4	5	6
    
    Donde:
    
    	1	Minuto (0-59)
    	2	Hora (0-23)
    	3	Día del mes (1-31)
    	4	Mes del año (1-12)
    	5	Día de la semana (0=Domingo, 6=Sábado)
    	6	Nombre completo del archivo que contiene el proceso shell a ser ejecutado.
    

          El último campo indica una línea de comando shell a ser ejecutado, pudiendo incluir encadenamiento de comandos, redireccionamientos, etc.

          Cualquier salida por los comandos especificados, será enviada al buzón de correo del propietario del archivo cron, salvo que esté redireccionada.

          Dentro de los cinco primeros campos de cada una de las entradas de los archivos cron, pueden aparecer los símbolos siguientes:

    • Asterisco (*). Indica cualquier valor de los posibles.
    • Coma (,). Permite introducir una lista de valores.
    • Guión (-). Implica un rango de valores.

    Ejemplo:

    
    	0,30	1-3	*	*	5	/root/prog1 > /salida/prog1
    

          Que indica que cada media hora (minutos 0 y 30) de las comprendidas entre 1 y 3, de cualquier día del mes, de todos los meses del año, que sean viernes, se ejecutará el proceso /root/prog1, cuya salida será almacenada en el archivo /salida/prog1.






7. Copias de seguridad

7.1 Introducción:

          Existen dos casos concretos en que es conveniente el almacenamiento de información en otros medios que no sean los discos del sistema.

          El primero de estos casos se usa para mejorar la utilización de los recursos de disco, y consiste en copiar a otros medios (cintas o disquetes) los archivos de datos u otro tipo, que no se utilizan habitualmente para, a continuación, borrarlos del disco. Cuando sea necesario volver a utilizar la información "archivada", se recuperarán desde el medio correspondiente. Lógicamente, este caso puede variar de importancia dependiendo de la capacidad de los discos instalados.

          Sin duda alguna, el segundo caso es de una importancia especial. Se trata de mantener copias de seguridad de toda la información contenida en el disco, lo más actualizada posible para poder recuperarla en caso de que, ya sea por fallo hardware de la máquina o por error humano, esta información se pierda.

          Para solucionar cualquiera de los dos casos, UNIX incorpora una serie de comandos y utilidades.

          Tarea fundamental del administrador del sistema será precisamente el establecer una estrategia para la realización de las copias de seguridad, de acuerdo a la importancia de los datos y de la repercusión que su pérdida pueda suponer sobre el rendimiento del sistema.

          Una parte fundamental de esta estrategia consiste en la elección del tipo de "backup" y la periodicidad con que se realiza. Se pueden distinguir tres tipos de copias de seguridad: completas (full backups), parciales e incrementales.

          Las copias de seguridad completas se refieren al salvado de todos los archivos de un file system, las parciales a la copia de archivos o directorios concretos, y las incrementales a los archivos que han sido modificados desde un momento determinado, por ejemplo desde el último backup completo o desde el incremental más próximo.

          La periodicidad con que se realicen las copias de seguridad, dependerá de las características propias de la instalación y de la organización de los sistemas de archivos.



7.2 Utilidades para copias de seguridad:

          Algunas de las utilidades tradicionalmente usadas para la realización de las copias de seguridad, son las siguientes:

    • volcopy
    • cpio
    • tar


    7.2.1 volopy:

          El comando volcopy se utiliza para realizar una copia de seguridad de un sistema de archivos completo al dispositivo elegido (normalmente a cinta). Realiza una copia byte a byte del sistema de archivos origen creando una imagen exacta, incluyendo errores, sobre el dispositivo destino.

          Para utilizar el comando volcopy es necesario que el sistema de archivos a copiar esté desmontado.

          Para restaurar la información salvada con volcopy se utiliza el mismo comando. La restauración se realiza a nivel de sistema de archivos, es decir, el sistema de archivos completo.

          Ventajas:

    • Copia una imagen total del sistema de archivos (partición).
    • Utiliza multivolumen.
    • Comprueba etiquetas.

    Inconvenientes:

    • Mantiene los errores existentes en el sistema de archivos que se copia.
    • No permite disminuir el tamaño de la partición.
    • No permite restaurar archivos individuales.


    7.2.2 cpio:

          Probablemente el comando cpio es el más utilizado para realizar copias de seguridad, debido a que se encuentra en todos los sistemas y es muy versátil. La principal desventaja de su utilización en los sistemas más antiguos ha sido solucionada actualmente al convertirlo en multivolumen.

          Ventajas:

    • Permite visualizar la lista de contenidos del dispositivo de almacenamiento sin realizar la copia.
    • Acepta una entrada estándar. Esto permite suministrar los nombres de los archivos a ser salvados, desde un comando con criterios de selección.
    • Permite la restauración total o parcial de un sistema de archivos.
    • La salida obtenida puede ser transportada de un sistema a otro.
    • Actualmente permite el uso de multivolumen.

    Inconvenientes:

    • No calcula la cantidad de cintas necesarias para realizar la copia en operaciones de salida.
    • La utilización del comando cpio puede resultar complicada para usuarios no experimentados.


    7.2.3 tar:

          El comando tar permite almacenar archivos, estructura de directorios y sistema de archivos en cinta magnético y su posterior recuperación.

          Ventajas:

    • Probablemente es el comando de copia de seguridad más fácil de utilizar.
    • Contiene un mecanismo de verificación de la copia (checksum).

    Inconvenientes:

    • No es un sistema multivolumen.
    • No permite copiar archivos especiales.
    • Cualquier error detectado durante la copia finaliza la ejecución.





8. Administración de Dispositivos

8.1 Introducción:

          El administrador del sistema es responsable de la administración de dispositivos y demás recursos del mismo. Una de las categorías de recursos a tener en cuenta son los dispositivos utilizados para almacenar datos: discos, disquetes y cintas.


8.2 Archivos especiales:

          Durante el proceso de carga, el sistema identifica automáticamente los dispositivos instalados.

          En el directorio /dev existe un archivo especial, tipo bloque y/o carácter, asociado a cada dispositivo y, en el caso de los discos, a cada una de las particiones realizados.

          Se puede observar haciendo un listado del directorio /dev que en los archivos especiales, donde debe aparecer la longitud del archivo, aparecen dos cifras que corresponden al numero principal y secundario.



8.3 Tabla de dispositivos:

          SVR4 almacena información relativa a cada dispositivo, en un archivo (/etc/device.tab) que representa una base de datos de aquellos comandos, y otra información específica, utilizable por cada dispositivo.

          Esta información y los comandos tienen asignados unos nombres que pueden ser utilizados por aplicaciones, lo que permite que éstas puedan efectuar una función general sin necesidad de conocer el comando específico requerido.

          Para identificar cada dispositivo, se utiliza un "alias" que debe ser único.

          El formato para cada entrada en el archivo /etc/device.tab consiste en 5 campos separados por ":" de la siguiente forma:

    
    	alias:cdevide:bdevice:path:atributos
    
    Donde cada campo significa:

    aliasNombre único por el que será conocido el dispositivo. Su tamaño máximo es de catorce caracteres.
    cdeviceArchivo especial, tipo carácter, asociado a ese dispositivo.
    bdeviceArchivo especial, tipo bloque, asociado a ese dispositivo.
    pathNombre completo de archivo, para identificar el i-nodo del dispositivo. Sólo se utiliza cuando no es ni de tipo carácter ni bloque.
    atributos      Lista de expresiones, en el formato atributo=valor, en la que se especifican los comandos y atributos específicos del dispositivo. Por ejemplo, el comando de borrado, el de formateado, la capacidad para dispositivos removibles, etc.



8.4 Tabla de grupos de dispositivos:

          Otra posibilidad suministrada por SVR4 es la de manejar los dispositivos no individualmente, sino como grupos. Esta característica permite al administrador realizar tareas sobre todos los dispositivos de un grupo dado.

          Para almacenar la información relativa a los grupos de dispositivos, se utiliza el archivo /etc/dgroup.tab.

          Cada entrada de este archivo consta de dos campos separados por ":". El primer campo de los registros de este archivo es el nombre asignado al grupo de dispositivos (máximo 14 caracteres). El segundo campo incluye los nombres de los miembros del grupo separados por comas.



© Copyright 2002 Ricuei