aix versión 7 - ibm

444
AIX Versión 7.2 Gestión del sistema operativo IBM

Upload: others

Post on 02-Oct-2021

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AIX Versión 7 - IBM

AIX Versión 7.2

Gestión del sistema operativo

IBM

Page 2: AIX Versión 7 - IBM

Nota

Antes de utilizar esta información y el producto al que da soporte, lea la información de “Avisos” en lapágina 415.

Esta edición se aplica a AIX Versión 7.1 y a todos los releases y modificaciones posteriores, a menos que se indique locontrario en nuevas ediciones.© Copyright International Business Machines Corporation 2010, 2018.

Page 3: AIX Versión 7 - IBM

Contenido

Acerca de este documento..................................................................................... vResalte.......................................................................................................................................................... vSensibilidad a mayúsculas y minúsculas en AIX.........................................................................................vISO 9000.......................................................................................................................................................v

Gestión del sistema operativo................................................................................ 1Administración del sistema operativo.........................................................................................................1

Interfaces de gestión del sistema disponibles......................................................................................1Datos vitales del producto de software................................................................................................. 2Actualizaciones del sistema operativo.................................................................................................. 2Arranque del sistema............................................................................................................................. 3Copia de seguridad del sistema...........................................................................................................20Cierre del sistema.................................................................................................................................50Entorno del sistema............................................................................................................................. 51AIX Usage Metric (SLM tags) for ILMT................................................................................................. 63AIX Runtime Expert..............................................................................................................................64Mandatos y procesos......................................................................................................................... 129Gestión del sistema colgado .............................................................................................................149Gestión de procesos.......................................................................................................................... 151Contabilidad del sistema................................................................................................................... 159Controlador de recursos del sistema................................................................................................ 187Archivos del sistema operativo..........................................................................................................192Shells del sistema operativo..............................................................................................................210Seguridad del sistema operativo....................................................................................................... 314Entorno de usuario.............................................................................................................................328Consulta de sistemas BSD................................................................................................................. 342Redirección de la entrada y la salida.................................................................................................365Recuperación de kernel de AIX......................................................................................................... 372

AIX Event Infrastructure para AIX y clústeres AIX - AHAFS..................................................................373Introducción a la infraestructura de AIX Event Infrastructure.........................................................373Componentes de AIX Event Infrastructure.......................................................................................374Configuración de AIX Event Infrastructure....................................................................................... 376Vista de alto nivel de cómo funciona AIX Event Infrastructure........................................................376Utilización de AIX Event Infrastructure.............................................................................................378Supervisión de sucesos......................................................................................................................378Generadores de sucesos predefinidos..............................................................................................392Sucesos de clúster............................................................................................................................. 405Generadores de sucesos predefinidos para una instancia AIX con reconocimiento de clúster .... 406

Avisos............................................................................................................... 415Consideraciones de política de privacidad............................................................................................. 416Marcas registradas.................................................................................................................................. 417

Índice............................................................................................................... 419

iii

Page 4: AIX Versión 7 - IBM

iv

Page 5: AIX Versión 7 - IBM

Acerca de este documento

Este documento proporciona a los usuarios y a los administradores del sistema información completa quepuede afectar a la selección de opciones al realizar tareas como la copia de seguridad y la restauracióndel sistema, la gestión del almacenamiento lógico y físico, el redimensionamiento del espacio de páginasadecuado, etc. Proporciona información completa acerca de cómo realizar tareas como la gestión devolúmenes lógicos, almacenamiento y recursos. Los usuarios del sistema pueden obtener información decómo realizar tareas como, por ejemplo, la ejecución de mandatos, el manejo de procesos, el manejo dearchivos y directorios y la impresión básica.

Otros temas útiles para los usuarios y los administradores del sistema son la creación yredimensionamiento del espacio de paginación, la gestión de la memoria virtual, la copia de seguridad yrestauración del sistema, la gestión del hardware y los seudodispositivos, la utilización del Controlador derecursos del sistema (SRC), la protección de archivos, la utilización de soportes de almacenamiento, lapersonalización de archivos de entorno y la escritura de scripts de shell. Este documento también estádisponible en el CD de documentación que se suministra con el sistema operativo.

ResalteLas siguientes convenciones resaltadas se utilizan en este documento:

Negrita Identifica mandatos, subrutinas, palabras clave, archivos, estructuras, directorios yotros elementos cuyos nombres están predefinidos por el sistema. Tambiénidentifica objetos gráficos como botones, etiquetas e iconos que el usuarioselecciona.

Cursiva Identifica parámetros cuyos nombres o valores reales deben ser proporcionados porel usuario.

Monoespaciado Identifica ejemplos de valores determinados de datos, ejemplos de texto similar alque el usuario puede ver visualizado, ejemplos de porciones de código de programasimilar al que el usuario podría haber escrito como programador, mensajes delsistema o información que debe escribir el propio usuario.

Sensibilidad a mayúsculas y minúsculas en AIXTodos los elementos del sistema operativo AIX son sensibles a las mayúsculas y minúsculas, lo quesignifica que distingue entre las letras mayúsculas y minúsculas. Por ejemplo, puede utilizar el mandatols para listar archivos. Si escribe LS, el sistema responde que el mandato no se ha encontrado. Delmismo modo, FILEA, FiLea y filea son tres nombres de archivo distintos, aunque estén en el mismodirectorio. Para evitar que se realicen acciones indeseables, asegúrese siempre de utilizar la combinacióncorrecta de mayúsculas y minúsculas.

ISO 9000En el desarrollo y la fabricación de este producto se han utilizado sistemas de calidad registrados quecumplen la norma ISO 9000.

© Copyright IBM Corp. 2010, 2018 v

Page 6: AIX Versión 7 - IBM

vi AIX Versión 7.2: Gestión del sistema operativo

Page 7: AIX Versión 7 - IBM

Gestión del sistema operativoLos usuarios y administradores del sistema pueden obtener información sobre cómo realizar tareascomo, por ejemplo, la ejecución de mandatos, el manejo de procesos, el manejo de archivos y directorios,la copia de seguridad y restauración del sistema, la gestión del almacenamiento físico y lógico, y laimpresión básica.

Otros temas útiles para los usuarios y los administradores del sistema son la creación yredimensionamiento del espacio de paginación, la gestión de la memoria virtual, la copia de seguridad yrestauración del sistema, la gestión del hardware y los seudodispositivos, la utilización del Controlador derecursos del sistema (SRC), la protección de archivos, la utilización de soportes de almacenamiento, lapersonalización de archivos de entorno y la escritura de scripts de shell. Este tema también estádisponible en el CD de documentación que se suministra con el sistema operativo.

La gestión del sistema operativo es la tarea de la persona a la que normalmente se denomina, en ladocumentación de UNIX, administrador del sistema. Desafortunadamente, sólo unas cuantas actividadesdel administrador del sistema son lo suficientemente sencillas para denominarse correctamenteadministración. Esta publicación y las guías relacionadas están pensadas para ayudar a losadministradores del sistema en sus numerosas obligaciones.

Este sistema operativo proporciona su propia versión de soporte de gestión del sistema para promocionarel fácil uso y mejorar la seguridad y la integridad.

Administración del sistema operativoPuede utilizar mandatos para gestionar la copia de seguridad y el inicio del sistema, cerrar el sistema, losshells y entornos del sistema, los recursos del sistema y otros componentes de AIX.

La gestión del sistema operativo es la tarea de la persona a la que normalmente se denomina, en ladocumentación de UNIX, administrador del sistema. Desafortunadamente, sólo unas cuantas actividadesdel administrador del sistema son lo suficientemente sencillas para denominarse correctamenteadministración. Esta publicación y las guías relacionadas están pensadas para ayudar a losadministradores del sistema en sus numerosas obligaciones.

Este sistema operativo proporciona su propia versión de soporte de gestión del sistema para promocionarel fácil uso y mejorar la seguridad y la integridad.

Interfaces de gestión del sistema disponiblesAdemás de la administración del sistema convencional de la línea de mandatos, este sistema operativoproporciona las interfaces SMIT.

A continuación se muestran las interfaces SMIT:

• System Management Interface Tool (SMIT), interfaz de usuario basada en menús que construyemandatos a partir de las opciones que el usuario elige y los ejecuta.

Con SMIT, puede:

– Instalar, actualizar y mantener software– Configurar dispositivos– Configurar unidades de almacenamiento de disco en grupos de volúmenes y volúmenes lógicos– Crear y ampliar sistemas de archivos y espacio de paginación– Gestionar usuarios y grupos– Configurar redes y aplicaciones de comunicación– Imprimir– Realizar la determinación de problemas

© Copyright IBM Corp. 2010, 2018 1

Page 8: AIX Versión 7 - IBM

– Planificar trabajos– Gestionar los recursos del sistema y la carga de trabajo– Gestionar entornos del sistema– Gestionar datos del sistema de clústeres

• Una interfaz gráfica de usuario orientada a objetos que soporta las mismas tareas de gestión delsistema que SMIT, pero las facilita mediante:

– La reducción de errores del usuario con la comprobación de errores y diseño de diálogos– La oferta de procedimientos paso a paso para tareas nuevas o complejas– La oferta de opciones para administradores más experimentados– La facilitación de la visualización de datos complejos o de relaciones entre objetos del sistema– La supervisión de la actividad del sistema y la alerta al administrador cuando se producen sucesos

predefinidos– La proporción de ayudas según contexto, visiones generales, sugerencias y enlaces para

documentación en línea

Datos vitales del producto de softwareDeterminada información de los productos de software y sus opciones instalables se mantiene en la basede datos de Datos Vitales del Producto de Software (SWVPD).

Los SWVPD consisten en un conjunto de mandatos y clases de objetos del Gestor de datos objeto (ODM)para el mantenimiento de la información del producto de software. Los mandatos de SWVPD seproporcionan para que el usuario consulte (lslpp) y verifique (lppchk) los productos de softwareinstalados. Las clases de objetos ODM definen el ámbito y el formato de la información del producto desoftware que se mantiene.

El mandato installp utiliza el ODM para mantener la siguiente información en la base de datos SWVPD:

• Nombre del producto de software instalado• Versión del producto de software instalado• Nivel de release del producto de software, que indica los cambios en la interfaz de programación

externa del producto de software• Nivel de modificación del producto de software, que indica los cambios que no afectan a la interfaz de

programación externa del producto de software• Nivel de arreglo del producto de software, que indica pequeñas actualizaciones que se deben compilar

en un nivel de modificación normal en un momento posterior• Campo de identificación del arreglo• Nombres, sumas de comprobación y tamaños de los archivos que componen el producto o la opción de

software• Estado de la instalación del producto de software: aplicando, aplicado, confirmando, confirmado,

rechazando o interrumpido.

Actualizaciones del sistema operativoEl paquete del sistema operativo se divide en catálogos de archivos, en los que cada catálogo de archivocontiene un grupo de archivos relacionados lógicamente que se pueden entregar al cliente. Cada catálogode archivos se puede instalar y actualizar individualmente.

Se hace un seguimiento de las revisiones de los catálogos de archivos utilizando los niveles de versión,release, mantenimiento y arreglo (VRMF). Por norma, cada vez que se aplica una actualización a uncatálogo de archivos de AIX, se ajusta el nivel de arreglo. Cada vez que se aplica un paquete demantenimiento o nivel de tecnología de AIX, se ajusta el nivel de modificación y el nivel de arreglo serestablece en cero. La instalación inicial de una versión de AIX, por ejemplo, AIX6.1, se denominainstalación base. El sistema operativo proporciona actualizaciones de sus características y funcionalidad,

2 AIX Versión 7.2: Gestión del sistema operativo

Page 9: AIX Versión 7 - IBM

que pueden estar empaquetadas como un paquete de mantenimiento, un nivel de tecnología, un arreglotemporal del programa (PTF) o un paquete de servicio (grupo de PTF).

Paquetes de mantenimiento y niveles de tecnologíaLos paquetes de mantenimiento y niveles de tecnología proporcionan una nueva funcionalidad queestá pensada para actualizar el release. La parte de mantenimiento de VRMF se actualiza en unpaquete de mantenimiento. Por ejemplo, el primer paquete de mantenimiento para AIX 6.1 es6.1.1.0; el segundo es 6.1.2.0, etc. Para listar el paquete de mantenimiento, utilice el mandatooslevel -r.

Para determinar el paquete de mantenimiento o el nivel de tecnología instalados en un sistemadeterminado, escriba:

oslevel

Para determinar qué catálogos de archivos se deben actualizar para que el sistema alcance unpaquete de mantenimiento o nivel de tecnología específico (en este ejemplo, 6.1.1.0), utilice elmandato siguiente:

oslevel -l 6.1.1.0

Para determinar si un paquete de mantenimiento recomendado o nivel de tecnología está instalado(en este ejemplo, 6100-02), utilice el mandato siguiente:

oslevel -r 6100-02

Para determinar qué catálogos de archivos se deben actualizar para que el sistema alcance el nivel detecnología o paquete de mantenimiento 6100-02, utilice el mandato siguiente:

oslevel -rl 6100-02

Para determinar el paquete de mantenimiento o nivel de tecnología de un catálogo de archivosdeterminado (en este ejemplo, bos.mp), utilice el mandato siguiente:

lslpp -L bos.mp

PTFEntre releases, puede recibir PTF para corregir o impedir un problema en particular. Una instalaciónen particular puede necesitar parte, todos o ninguno de los PTF disponibles.

Paquetes de mantenimiento recomendadosUn paquete de mantenimiento recomendado es un conjunto de PTF entre niveles de tecnología quese han probado extensamente juntos y que están recomendados como mantenimiento preventivo.

Arreglos temporalesUn arreglo temporal es similar a un PTF, pero normalmente se ofrece cuando no hay un PTFdisponible. También están disponibles arreglos temporales cuando un PTF actualiza el sistema alsiguiente nivel de mantenimiento y es posible que los usuarios deseen que sus sistemaspermanezcan en el nivel actual.

Para determinar la versión y el nivel de release, el paquete de mantenimiento, el nivel de tecnología y elnivel de paquete de servicio, así como qué catálogos de archivos se deben actualizar para alcanzar unnivel determinado, consulte los mandatos oslevel y lslpp.

Arranque del sistemaCuando se inicia el sistema operativo base, el sistema inicia un conjunto de tareas complejo. Bajocondiciones normales, estas tareas se realizan automáticamente.

En algunas situaciones, deseará dar instrucciones al sistema para que rearranque; por ejemplo, para queel sistema reconozca el software que acaba de instalar, para restablecer los dispositivos periféricos, pararealizar las tareas rutinarias de mantenimiento como comprobar los sistemas de archivos o para

Gestión del sistema operativo 3

Page 10: AIX Versión 7 - IBM

recuperar el sistema cuando se cuelga. Para obtener información acerca de estos procedimientos,consulte:

Tareas relacionadasNueva creación de una imagen de arranque dañadaEn el procedimiento siguiente se describe cómo identificar una imagen de arranque dañada y el modo devolverla a crear.

Administración del arranque del sistemaExisten diversas situaciones en las que se puede encontrar que desee arrancar o rearrancar el sistema.Para cerrar o rearrancar el sistema, puede utilizar el mandato shutdown o reboot. Debe utilizar elmandato shutdown cuando varios usuarios hayan iniciado sesión en el sistema.

Rearranque de un sistema en ejecuciónPuesto que puede haber procesos en ejecución que se deban terminar de una manera más ordenada delo que permite reboot, shutdown es el método preferido para todos los sistemas.

Hay dos métodos de cerrar y rearrancar el sistema, shutdown y reboot. Utilice siempre el métodoshutdown cuando varios usuarios hayan iniciado sesión en el sistema.

Tarea Vía rápida de SMIT Mandato o archivo

Rearranque de un sistema multiusuario smit shutdown shutdown -r

Rearranque de un sistema de un solo usuario smit shutdown shutdown -r o reboot

Cómo rearrancar de forma remota un sistema que no respondeEl recurso de rearranque remoto permite rearrancar el sistema a través de un puerto nativo (integrado)del sistema.

Los puertos del sistema integrados POWER5 son similares a los puertos serie excepto en que los puertosdel sistema sólo están disponibles para funciones específicamente soportadas.

El sistema se rearranca cuando se recibe la serie_de_rearranque en el puerto. Este recurso es útilcuando el sistema no responde de otra modo pero es capaz de dar servicio a interrupciones de puertosdel sistema. El rearranque remoto sólo se puede habilitar en un puerto del sistema nativo cada vez. Seespera que los usuarios proporcionen su propia seguridad externa para el puerto. Este recurso se ejecutaen la clase de interrupción de dispositivo más alta y una anomalía de UART (Recepción/Transmisiónasíncrona universal) para borrar el almacenamiento intermedio de transmisión puede tener el efecto deprovocar que otros dispositivos pierdan datos si sus almacenamientos intermedios se desbordan duranteeste tiempo. Se sugiere utilizar este recurso sólo para rearrancar una máquina que de otra forma estaríacolgada y en la que no se puede iniciar la sesión de forma remota. Los sistemas de archivos no sesincronizarán y existe la posibilidad de perder algunos datos que no se hayan desechado. Se sugiereencarecidamente que cuando se habilite el rearranque remoto, no se utilice el puerto para ningún otropropósito, especialmente para la transferencia de archivos, a fin de prevenir un rearranque inadvertido.

Dos atributos de puerto nativo del sistema controlan la operación del rearranque remoto.

reboot_enable

Indica si este puerto está habilitado para rearrancar la máquina al recibir reboot_string y, si es así, si sedebe realizar un vuelco del sistema antes del rearranque.

no - Indica que el rearranque remoto está inhabilitadoreboot - Indica que el rearranque remoto está habilitadodump - Indica que el rearranque remoto está habilitado y que antes se realizará un vuelco del sistema en el dispositivo de vuelcos primario

reboot_string

Especifica la serie de reboot_string que el puerto serie explorará cuando la característica de rearranqueremoto está habilitada. Cuando la característica de rearranque remoto está habilitada y se recibereboot_string en el puerto, se transmite un carácter > y el sistema está preparado para reiniciarse. Si serecibe un carácter 1, el sistema se rearranca; cualquier otro carácter que no sea 1 termina anormalmente

4 AIX Versión 7.2: Gestión del sistema operativo

Page 11: AIX Versión 7 - IBM

el proceso de rearranque. reboot_string tiene una longitud máxima de 16 caracteres y no debe contenerningún carácter de espacio, dos puntos, signo igual, nulo, nueva línea ni Control-\.

El rearranque remoto se puede habilitar mediante SMIT o la línea de mandatos. En SMIT, la vía de accesoEntornos del sistema -> Gestionar recurso de rearranque remoto se puede utilizar para una TTYconfigurada. De forma alternativa, cuando se configura una nueva TTY, se puede habilitar un rearranqueremoto desde los menús Añadir una TTY o Cambiar/Mostrar características de una TTY. El acceso aestos menús se efectúa a través de la vía de acceso Dispositivos -> TTY.

En la línea de mandatos, se utilizan los mandatos mkdev o chdev para habilitar el rearranque remoto. Porejemplo, el mandato siguiente habilita el rearranque remoto (con la opción de vuelco) y establece la seriede rearranque en ReBoOtMe en tty1.

chdev -l tty1 -a remreboot=dump -a reboot_string=ReBoOtMe

Este ejemplo permite el rearranque remoto en tty0 con reboot_string actual sólo en la base de datos(tendrá efecto en el siguiente rearranque).

chdev -P -l tty0 -a remreboot=reboot

Si la tty se utiliza como puerto normal, deberá utilizar el mandato pdisable antes de habilitar elrearranque remoto. Después, puede utilizar penable para volver a habilitar el puerto.

Información relacionadaDiferencias de funciones entre puertos del sistema y puertos serie

Arranque desde disco duro para mantenimientoPuede arrancar una máquina en modalidad de mantenimiento desde un disco duro.

Requisitos previos

No debe haber un soporte extraíble arrancable (cinta o CD-ROM) en la unidad. Además, consulte en ladocumentación del hardware las instrucciones específicas para habilitar el arranque en modalidad demantenimiento de su modelo en particular.

Procedimiento

Para arrancar una máquina en modalidad de mantenimiento desde el disco duro:

1. Para rearrancar, apague la máquina y después vuélvala a encender, o pulse el botón de restablecer.2. Pulse la secuencia de teclas para rearrancar en modalidad de mantenimiento que se especifica en la

documentación del hardware.3. La máquina rearrancará en un punto donde tenga configurado un dispositivo de consola.

Si hay un vuelco del sistema que se debe recuperar, el menú de vuelcos del sistema se visualizará enla consola.

Nota:

a. Si la consola no se puede configurar cuando hay un vuelco que se debe recuperar, el sistema secolgará. El sistema se debe rearrancar desde un soporte extraíble para recuperar el vuelco.

b. El sistema vuelca automáticamente en el dispositivo de vuelco especificado al pulsar el botón derestablecer. Para cambiar la designación de dispositivo de vuelco primario o secundario en unsistema en ejecución, consulte el mandato sysdumpdev.

4. Si no hay ningún vuelco del sistema, o si se ha copiado, se visualizarán las instrucciones operativas dediagnóstico. Pulse Intro para continuar en el menú Selección de función.

5. En el menú Selección de función, puede seleccionar la modalidad de diagnóstico o de un solo usuario:

Modalidad de un solo usuario: Para realizar el mantenimiento en un entorno de un solousuario, seleccione esta opción (opción 5). El sistema continúa con el arranque y entra en modalidadde un solo usuario. El mantenimiento que requiere que el sistema esté en modalidad autónoma puederealizarse en esta modalidad, y se puede ejecutar el mandato bosboot, si es necesario.

Gestión del sistema operativo 5

Page 12: AIX Versión 7 - IBM

Información relacionadaInicio de un vuelco del sistema

Arranque de un sistema que se ha colgadoEn algunos casos, puede tener que arrancar un sistema que se ha detenido (colgado) sin que se hayacerrado correctamente.

Los requisitos previos para este procedimiento son:

• El sistema se ha colgado y no se ha cerrado correctamente debido a condiciones inusuales.• El sistema se ha apagado.

Este procedimiento abarca los puntos básicos de cómo se debe arrancar el sistema si no se ha podidorecuperar cuando se ha colgado. Siga estos pasos:

1. Asegúrese de que todo el hardware y los dispositivos periféricos estén conectados correctamente.2. Encienda todos los dispositivos periféricos.3. Observe la pantalla para obtener información acerca de los diagnósticos automáticos de hardware.

a) Si las pruebas de diagnóstico de hardware no son satisfactorias, consulte la documentación dehardware.

b) Si todas las pruebas de diagnósticos de hardware son satisfactorias, encienda la unidad delsistema.

Restablecimiento de una contraseña root desconocidaEn el procedimiento siguiente se describe cómo recuperar el acceso a los privilegios raíz cuando sedesconoce la contraseña root del sistema o no está disponible.

El procedimiento siguiente necesita un tipo de inactividad del sistema. Si es posible, planifique lainactividad cuando menos impacte en la carga de trabajo como protección contra posibles pérdidas dedatos o funcionalidad.

La información de este procedimiento se ha probado utilizando versiones específicas de AIX. Losresultados que obtenga pueden variar significativamente dependiendo de la versión y el nivel de AIX.

1. Inserte el soporte del producto para la misma versión y nivel que la instalación actual en la unidadadecuada.

2. Encienda la máquina.3. Cuando aparezca la pantalla de iconos, o cuando oiga un pitido doble, pulse la tecla F1 varias veces

hasta que aparezca el menú Servicios de gestión del sistema.4. Seleccione Multiarranque.5. Seleccione Instalar desde.6. Seleccione el dispositivo que contiene el soporte del producto y, a continuación, seleccione Instalar.7. Seleccione el icono de versión de AIX.8. Defina el sistema actual como la consola del sistema pulsando la tecla F1 y, a continuación, pulse

Intro.9. Seleccione el número del idioma preferido y pulse Intro.

10. Elija Iniciar Modalidad Mantenimiento para Recuperación Sistema tecleando 3 y pulse Intro.11. Seleccione Acceder a un Grupo de volúmenes raíz.

Se visualiza un mensaje que explica que no podrá volver a los menús de instalación sin rearrancar sicambia el grupo de volúmenes raíz en este momento.

12. Escriba 0 y pulse Intro.13. Escriba el número del grupo de volúmenes adecuado de la lista y pulse Intro.14. Seleccione Acceder a este grupo de volúmenes e iniciar un shell tecleando 1 y pulse Intro.15. En el indicador # (signo de número), escriba el mandato passwd en el indicador de línea de

mandatos para restablecer la contraseña root.Por ejemplo:

6 AIX Versión 7.2: Gestión del sistema operativo

Page 13: AIX Versión 7 - IBM

# passwdCambiando contraseña para "root"Contraseña nueva de root: Vuelva a especificar la contraseña nueva:

16. Para grabar todo el contenido del almacenamiento intermedio al disco duro y rearrancar el sistema,escriba lo siguiente:

sync;sync;sync;reboot

Cuando aparezca la pantalla de inicio de sesión, la contraseña que ha establecido en el paso 15 le debepermitir acceder a los privilegios raíz.

Información relacionadaMandato passwdMandato reboot

Arranque de sistemas con gráficos de placaSi la máquina se ha instalado sólo con el subsistema de gráficos de placa, y después se añade unadaptador de gráficos adicional al sistema, se produce lo siguiente:

1. Se añade un nuevo adaptador gráfico al sistema y se instala el software de controlador de dispositivoasociado.

2. Se rearranca el sistema y se produce una de las situaciones siguientes:

a. Si /dev/lft0 se ha definido como la consola del sistema (lscons visualiza esta información), sesolicita al usuario que seleccione la pantalla que es la consola del sistema al rearrancar. Si elusuario selecciona un adaptador gráfico (un dispositivo no TTY), también se convierte en la nuevapantalla predeterminada. Si el usuario selecciona un dispositivo TTY en lugar de un dispositivo LFT,no aparece el inicio de sesión del sistema. Rearranque de nuevo y se visualizará la pantalla de iniciode sesión TTY. Se supone que si el usuario añade un adaptador gráfico adicional al sistema y laconsola del sistema es un dispositivo FLT, el usuario no seleccionará el dispositivo TTY comoconsola del sistema.

b. Si la consola del sistema se ha definido como TTY, al rearrancar el adaptador de visualización quese acaba de añadir se convierte en la pantalla predeterminada.

Nota: Puesto que la TTY es la consola del sistema, continúa siendo la consola del sistema.3. Si la consola del sistema es /def/lft0, después del rearranque, se inhabilita DPMS para mostrar el

texto de selección de consola del sistema en la pantalla durante un periodo de tiempo indefinido. Paravolver a habilitar DPMS, vuelva a rearrancar el sistema.

Despliegue de la ejecución del script de nivel de ejecuciónLos scripts de nivel de ejecución permiten a los usuarios iniciar y detener las aplicaciones seleccionadasmientras se cambia el nivel de ejecución.

Coloque los scripts de nivel de ejecución en el subdirectorio /etc/rc.d específico del nivel de ejecución:

• /etc/rc.d/rc2.d• /etc/rc.d/rc3.d• /etc/rc.d/rc4.d• /etc/rc.d/rc5.d• /etc/rc.d/rc6.d• /etc/rc.d/rc7.d• /etc/rc.d/rc8.d• /etc/rc.d/rc9.d

/etc/rc.d/rc ejecutará los scripts que encuentre en el directorio especificado cuando cambie el nivelde ejecución - ejecutará primero los scripts de detención de aplicaciones y luego los scripts de inicio deaplicaciones.

Gestión del sistema operativo 7

Page 14: AIX Versión 7 - IBM

Nota: Los scripts que empiezan por K son scripts de detención, mientras que los scripts que empiezanpor S son los scripts de inicio.

Modificación del archivo /etc/inittabEstán disponibles cuatro mandatos para modificar los registros del archivo etc/inittab.

Cómo añadir registros - mandato mkitab

Para añadir un registro al archivo /etc/inittab, escriba lo siguiente en el indicador de mandatos:

mkitab Identificador:Nivel de ejecución:Acción:Mandato

Por ejemplo, para añadir un registro para tty2, escriba lo siguiente en un indicador de mandatos:

mkitab tty002:2:respawn:/usr/sbin/getty /dev/tty2

En el ejemplo anterior:

Elemento Descripción

tty002 Identifica el objeto cuyo nivel de ejecución está definiendo.

2 Especifica el nivel de ejecución en el que se ejecuta esteproceso.

respawn Especifica la acción que el mandato init debe realizar paraeste proceso.

/usr/sbin/getty /dev/tty2 Especifica el mandato de shell que se debe ejecutar.

Cómo cambiar registros - mandato chitab

Para cambiar un registro para el archivo /etc/inittab, escriba lo siguiente en un indicador demandatos:

chitab Identificador:Nivel de ejecución:Acción:Mandato

Por ejemplo, para cambiar un registro para tty2 de modo que este proceso se ejecute en los niveles deejecución 2 y 3, escriba:

chitab tty002:23:respawn:/usr/sbin/getty /dev/tty2

En el ejemplo anterior:

Elemento Descripción

tty002 Identifica el objeto cuyo nivel de ejecución está definiendo.

23 Especifica los niveles de ejecución en los que se ejecutaeste proceso.

respawn Especifica la acción que el mandato init debe realizar paraeste proceso.

/usr/sbin/getty /dev/tty2 Especifica el mandato de shell que se debe ejecutar.

Cómo listar registros - mandato lsitab

Para listar todos los registros del archivo /etc/inittab, escriba lo siguiente en un indicador demandatos:

lsitab -a

Para listar un registro específico en el archivo /etc/inittab, escriba:

lsitab Identificador

8 AIX Versión 7.2: Gestión del sistema operativo

Page 15: AIX Versión 7 - IBM

Por ejemplo, para listar el registro para tty2, escriba: lsitab tty2.

Cómo eliminar registros - mandato rmitab

Para eliminar un registro del archivo /etc/inittab, escriba lo siguiente en un indicador de mandatos:

rmitab Identificador

Por ejemplo, para eliminar el registro para tty2, escriba: rmitab tty2.

Conceptos relacionadosNivel de ejecución del sistemaEl nivel de ejecución del sistema especifica el estado del sistema y define los procesos que se inician.

Reactivación de un sistema inactivoEl sistema puede quedarse inactivo debido a un problema de hardware, un problema de software o unacombinación de ambos.

Este procedimiento le guía por los pasos que debe seguir para corregir el problema y reiniciar el sistema.Si el sistema sigue inactivo después de completar el procedimiento, consulte la información acerca de ladeterminación de problemas en la documentación del hardware.

Utilice los siguientes procedimientos para reactivar un sistema inactivo:

Comprobación de hardwareSe pueden utilizar varios procedimientos para comprobar el hardware.

Compruebe el hardware siguiendo estos procedimientos:

Comprobación de la alimentación:

Si la luz de encendido del sistema está encendida, vaya al apartado Comprobación del visor del paneldel operador, más abajo.

Si la luz de encendido del sistema no está encendida, compruebe que la alimentación esté encendida y elsistema enchufado.

Comprobación del visor del panel del operador:

Si el sistema tiene un visor del panel del operador, compruebe si hay algún mensaje.

Si el visor del panel del operador del sistema está en blanco, vaya al apartado Activación del visor oterminal, más abajo.

Si el visor del panel del operador del sistema no está en blanco, vaya a la guía de servicio para la unidad afin de encontrar información relativa a los dígitos del visor del panel del operador.

Activación del visor o terminal:

Compruebe varias partes del visor o terminal, de la manera siguiente:

• Asegúrese de que el cable del visor esté bien conectado al visor y a la unidad del sistema.• Asegúrese de que el cable del teclado esté bien conectado.• Asegúrese de que el cable del ratón esté bien conectado.• Asegúrese de que el visor encendido y la luz de encendido esté encendida.• Ajuste el control del brillo en el visor.• Asegúrese de que los valores de comunicación del terminal sean correctos.

Si el sistema está activo, las comprobaciones del hardware han corregido el problema.

Tareas relacionadasReinicio del sistemaAdemás de comprobar el hardware y los procesos, puede reiniciar el sistema para reactivar un sistemainactivo.Comprobación de los procesos

Gestión del sistema operativo 9

Page 16: AIX Versión 7 - IBM

Un proceso detenido o retenido puede hacer que el sistema se quede inactivo.

Comprobación de los procesosUn proceso detenido o retenido puede hacer que el sistema se quede inactivo.

Compruebe los procesos del sistema mediante:

1. El reinicio del desplazamiento de línea2. La utilización de la secuencia de teclas Control+D3. La utilización de la secuencia de teclas Control+C4. El inicio de la sesión desde un terminal remoto o sistema principal5. La finalización remota de los procesos retenidos

Reinicio del desplazamiento de línea:

Reinicie el desplazamiento de línea detenido mediante la secuencia de teclas Control-S realizando losiguiente:

1. Active la ventana o shell con el proceso del problema.2. Pulse la secuencia de teclas Control-Q para reiniciar el desplazamiento.

La secuencia de teclas Control-S detiene el desplazamiento de línea y la secuencia de teclas Control-Qlo reinicia.

Si la comprobación de desplazamiento no ha corregido el problema del sistema inactivo, vaya a lasiguiente sección, Utilización de la secuencia de teclas Control-D.

Utilización de la secuencia de teclas Control-D:

1. Active la ventana o shell con el proceso del problema.2. Pulse la secuencia de teclas Control-D. La secuencia de teclas Control-D envía una señal de fin del

archivo (EOF) al proceso. La secuencia de teclas Control-D puede cerrar la ventana o shell y finalizar lasesión.

Si la secuencia de claves Control-D no ha corregido el problema del sistema inactivo, vaya a la siguientesección, Utilización de la secuencia de teclas Control-C.

Utilización de la secuencia de teclas Control-C:

Finalice un proceso detenido realizando las acciones siguientes:

1. Active la ventana o shell con el proceso del problema.2. Pulse la secuencia de teclas Control-C. La secuencia de teclas Control-C detiene la búsqueda o filtro

actual.

Si la secuencia de claves Control-C no ha corregido el problema del sistema inactivo, vaya a la siguientesección, Inicio de sesión desde un terminal o sistema principal remoto:.

Inicio de sesión desde un terminal o sistema principal remoto:

Inicie la sesión remotamente de dos maneras:

• Inicie la sesión en el sistema desde otro terminal si hay más de un terminal conectado al sistema.• Inicie la sesión desde otro sistema remoto de la red (si el sistema está conectado a la red) escribiendo

el mandato tn de la manera siguiente:

tn NombreSistema

El sistema solicita el nombre de inicio de sesión regular y la contraseña cuando se utiliza el mandato tn.

Si puede iniciar la sesión en el sistema desde un terminal o sistema principal remoto, vaya a la siguientesección, Finalización remota de procesos retenidos.

Si no ha podido iniciar la sesión en el sistema desde un terminal o sistema principal remoto, deberáreiniciar el sistema.

10 AIX Versión 7.2: Gestión del sistema operativo

Page 17: AIX Versión 7 - IBM

También puede iniciar un vuelco del sistema para determinar la causa de que el sistema esté inactivo.

Finalización remota de procesos retenidos:

Finalice un proceso retenido desde un terminal remoto realizando las acciones siguientes:

1. Liste los procesos activos escribiendo el siguiente mandato ps:

ps -ef

Los distintivos -e y -f identifican todos los procesos activos e inactivos.2. Identifique el ID del proceso retenido.

Para obtener ayuda en la identificación de procesos, utilice el mandato grep con una serie debúsqueda. Por ejemplo, para finalizar el proceso xlock, escriba lo siguiente para buscar el ID deproceso:

ps -ef | grep xlock

El mandato grep permite buscar en la salida del mandato ps para identificar el ID de un procesoespecífico.

3. Finalice el proceso escribiendo el siguiente mandato kill:

Nota: Debe tener autorización de usuario de root para poder utilizar el mandato kill en los procesosque no ha iniciado.

kill -9 IDProceso

Si no puede identificar el proceso con problemas, el proceso activado más recientemente debe ser lacausa del sistema inactivo. Finalice el proceso más reciente si piensa que este es el problema.

Si las comprobaciones de procesos no han corregido el problema del sistema inactivo, deberá reiniciar elsistema.

Conceptos relacionadosComprobación de hardwareSe pueden utilizar varios procedimientos para comprobar el hardware.Tareas relacionadasReinicio del sistemaAdemás de comprobar el hardware y los procesos, puede reiniciar el sistema para reactivar un sistemainactivo.Información relacionadaRecurso de vuelco del sistema

Reinicio del sistemaAdemás de comprobar el hardware y los procesos, puede reiniciar el sistema para reactivar un sistemainactivo.

Si el procedimiento para la “Comprobación de hardware” en la página 9 y la “Comprobación de losprocesos” en la página 10 no puede corregir el problema que hace que el sistema esté inactivo, debereiniciar el sistema.

Nota: Antes de reiniciar el sistema, complete un vuelco del sistema.

1. Compruebe el estado del dispositivo de arranque.

El sistema arranca con un soporte extraíble, un dispositivo externo, un dispositivo de interfaz parapequeños sistemas (SCSI), un dispositivo de electrónica de dispositivos integrados (IDE) o una red deárea local (LAN). Decida el método que se aplica a su sistema y siga estas instrucciones paracomprobar el dispositivo de arranque:

Gestión del sistema operativo 11

Page 18: AIX Versión 7 - IBM

• Para un soporte extraíble, como una cinta, asegúrese de que el soporte está insertadocorrectamente.

• Para dispositivos IDE, verifique que los valores de ID de dispositivo IDE son exclusivos poradaptador. Si sólo hay un dispositivo conectado al adaptador, el ID de dispositivo IDE debeestablecerse en el dispositivo maestro.

• Para un dispositivo conectado externamente, como una unidad de cintas, asegúrese de que:

– La alimentación del dispositivo esté encendida.– Los cables del dispositivo estén conectados correctamente al dispositivo y a la unidad del

sistema.– El indicador de preparado esté encendido (si el dispositivo tiene uno).

• Para dispositivos SCSI externos, verifique que los valores de la dirección SCSI sean exclusivos.• Para una LAN, verifique que la red esté activada y sea operativa.

Si el dispositivo de arranque funciona correctamente, continúe en el paso siguiente.2. Cargue el sistema operativo:

a) Apague la alimentación del sistema.b) Espere un minuto.c) Encienda la alimentación del sistema.d) Espere que el sistema arranque.

Si el sistema operativo no se ha podido cargar, arranque el disco duro desde la modalidad demantenimiento o los diagnósticos de hardware.

Si todavía no puede reiniciar el sistema, utilice un SRN para informar del problema del sistema inactivo alrepresentante de servicio.

Conceptos relacionadosComprobación de hardwareSe pueden utilizar varios procedimientos para comprobar el hardware.Tareas relacionadasComprobación de los procesosUn proceso detenido o retenido puede hacer que el sistema se quede inactivo.Información relacionadaRecurso de vuelco del sistema

Creación de imágenes de arranquePara instalar el sistema operativo base o para acceder a un sistema que no arranca desde la unidad dedisco duro del sistema, necesita una imagen de arranque. Este procedimiento describe cómo crearimágenes de arranque. La imagen de arranque varía según cada tipo de dispositivo.

Cuando el sistema se instala por primera vez, el mandato bosboot crea una imagen de arranque a partirde una imagen del sistema de archivos de disco RAM (memoria de acceso aleatorio) y el kernel delsistema operativo. La imagen de arranque se transfiere a un soporte determinado, como el disco duro.Cuando se rearranca la máquina, la máquina de arranque se carga desde el soporte en la memoria. Paraobtener más información acerca del mandato bosboot, consulte bosboot.

El sistema de archivos de disco RAM contiene rutinas de configuración de dispositivos para los siguientesdispositivos:

• Disco• Cinta• CD-ROM• Dispositivo de Red en Anillo, Ethernet o FDDI

• Debe tener autorización de root para utilizar el mandato bosboot.

12 AIX Versión 7.2: Gestión del sistema operativo

Page 19: AIX Versión 7 - IBM

• El sistema de archivos /tmp debe tener como mínimo 20 MB de espacio libre.• El disco físico debe contener el volumen lógico de arranque. Para determinar el dispositivo de disco que

se debe especificar, escriba lo siguiente en un indicador de mandatos:

lsvg -l rootvg

El mandato lsvg -l lista los volúmenes lógicos del grupo de volúmenes raíz (rootvg). En la lista puedeencontrar el nombre del volumen lógico de arranque.

Después escriba lo siguiente en el indicador de mandatos:

lsvg -M rootvg

El mandato lsvg -M lista los discos físicos que contienen los diversos volúmenes lógicos.

Creación de una imagen de arranque en un volumen lógico de arranqueSi se está instalando el sistema operativo base (una nueva instalación o una actualización), se llama almandato bosboot para colocar la imagen de arranque en el volumen lógico de arranque. El volumenlógico de arranque es un área contigua físicamente del disco creado mediante el Gestor de volúmeneslógicos (LVM) durante la instalación.

Para obtener una lista de los requisitos previos para este procedimiento, consulte el apartado “Creaciónde imágenes de arranque” en la página 12.

El mandato bosboot hace lo siguiente:

1. Comprueba si en el sistema de archivos hay suficiente espacio para crear la imagen de arranque.2. Crea un sistema de archivos RAM utilizando el mandato mkfs y un archivo prototipo.3. Llama al mandato mkboot, que fusiona el kernel y el sistema de archivos RAM en una imagen de

arranque.4. Graba la imagen de arranque en el volumen lógico de arranque.

Para crear una imagen de arranque en el volumen lógico de arranque predeterminado del disco fijo,escriba lo siguiente en un indicador de mandatos:

bosboot -a

O BIEN:

bosboot -ad /dev/ipldevice

Nota: No rearranque la máquina si el mandato bosboot falla al crear una imagen de arranque. Resuelvael problema y ejecute el mandato bosboot hasta que se complete satisfactoriamente.

Debe rearrancar el sistema para que la nueva imagen de arranque se pueda utilizar.

Creación de imágenes de arranque para dispositivos de redPuede crear imágenes de arranque para un arranque Ethernet o de Red en anillo.

Para obtener una lista de los requisitos previos para este procedimiento, consulte el apartado “Creaciónde imágenes de arranque” en la página 12.

Para crear una imagen de arranque para un arranque Ethernet, escriba lo siguiente en un indicador demandatos:

bosboot -ad /dev/ent

Para un arranque de Red en anillo:

bosboot -ad /dev/tok

Gestión del sistema operativo 13

Page 20: AIX Versión 7 - IBM

Nivel de ejecución del sistemaEl nivel de ejecución del sistema especifica el estado del sistema y define los procesos que se inician.

Por ejemplo, cuando el nivel de ejecución es 3, se inician todos los procesos definidos para operar en esenivel de ejecución. Cerca del final de la fase de arranque del sistema del proceso de arranque, el nivel deejecución se lee de la entrada initdefault del archivo /etc/inittab. El sistema funciona en ese nivel deejecución hasta que recibe una señal para cambiarlo. El nivel de ejecución del sistema se puede cambiarcon el mandato init. El archivo /etc/inittab contiene un registro para cada proceso que define losniveles de ejecución para ese proceso. Cuando se arranca el sistema, el mandato init lee elarchivo /etc/inittab para determinar los procesos que se deben iniciar.

Los niveles de ejecución definidos actualmente son los siguientes:

Elemento Descripción

0-9 Cuando el mandato init cambia a los niveles de ejecución de 0 a 9, mata todos losprocesos de los niveles de ejecución actuales y después reinicia los procesos asociados alos nuevos niveles de ejecución.

0-1 Reservado para uso futuro del sistema operativo.

2 Nivel de ejecución predeterminado.

3-9 Se puede definir según las preferencias del usuario.

a, b, c Cuando el mandato init solicita un cambio a los niveles de ejecución a, b o c, no mata losprocesos de los niveles de ejecución actuales; simplemente inicia los procesos asignadoscon los nuevos niveles de ejecución.

Q, q Indica al mandato init que vuelva a examinar el archivo /etc/inittab.

Tareas relacionadasModificación del archivo /etc/inittabEstán disponibles cuatro mandatos para modificar los registros del archivo etc/inittab.

Identificación del nivel de ejecución del sistemaAntes de realizar el mantenimiento del sistema operativo o cambiar el nivel de ejecución del sistema, esaconsejable examinar los distintos niveles de ejecución.

Este procedimiento describe cómo identificar el nivel de ejecución en el que opera el sistema y cómovisualizar un histórico de los niveles de ejecución anteriores. El mandato init determina el nivel deejecución del sistema.

Identificación del nivel de ejecución actual

En la línea de mandatos, escriba cat /etc/.init.state. El sistema visualiza un dígito; que es el nivelde ejecución actual. Consulte el mandato init o el archivo /etc/inittab para obtener másinformación acerca de los niveles de ejecución.

Visualización de un histórico de niveles de ejecución anterioresPuede visualizar un histórico de los niveles de ejecución anteriores utilizando el mandato fwtmp.

Nota: El código bosext2.acct.obj debe estar instalado en el sistema para utilizar este mandato.

1. Inicie la sesión como usuario root.2. Escriba lo siguiente en un indicador de mandatos:

/usr/lib/acct/fwtmp </var/adm/wtmp |grep run-level

El sistema visualiza información similar a la siguiente:

run-level 2 0 1 0062 0123 697081013 Dom 2 Feb 19:36:53 CST 1992run-level 2 0 1 0062 0123 697092441 Dom 2 Feb 22:47:21 CST 1992run-level 4 0 1 0062 0123 698180044 Sáb 15 Feb 12:54:04 CST 1992

14 AIX Versión 7.2: Gestión del sistema operativo

Page 21: AIX Versión 7 - IBM

run-level 2 0 1 0062 0123 698959131 Dom 15 Feb 10:52:11 CST 1992run-level 5 0 1 0062 0123 698967773 Lun 24 Feb 15:42:53 CST 1992

Configuración de niveles de ejecución en sistemas de múltiples usuariosPuede cambiar los niveles de ejecución en los sistemas de múltiples usuarios.

1. Compruebe el archivo /etc/inittab y confirme que el nivel de ejecución al que cambia soporta losprocesos que está ejecutando.El proceso getty es especialmente importante, ya que controla el acceso a la línea de terminal para laconsola del sistema y otros inicios de sesión. Asegúrese de que el proceso getty está habilitado entodos los niveles de ejecución.

2. Utilice el mandato wall para informar a todos los usuarios que piensa cambiar el nivel de ejecución ysolicitar que finalicen la sesión.Para obtener más información sobre el mandato wall, consulte el apartado wall.

3. Utilice la vía rápida smit telinit para acceder al menú Establecer el Nivel de Ejecución delSistema.

4. Escriba el nuevo nivel de ejecución en el campo NIVEL DE EJECUCIÓN del Sistema.5. Pulse Intro para implementar todos los valores de este procedimiento.

El sistema responde indicando los procesos que están terminando o iniciando como resultado delcambio del nivel de ejecución y visualizando el mensaje:

INIT: Nuevo nivel de ejecución: n

donde n es el número del nuevo nivel de ejecución.

Configuración de los niveles de ejecución en sistemas de un solo usuarioPuede cambiar los niveles de ejecución en los sistemas de un solo usuario.

1. Compruebe el archivo /etc/inittab para confirmar que el nivel de ejecución al que está cambiandosoporta los procesos que está ejecutando.El proceso getty es especialmente importante, ya que controla el acceso a la línea de terminal para laconsola del sistema y otros inicios de sesión. Asegúrese de que el proceso getty está habilitado entodos los niveles de ejecución. Para obtener más información acerca del archivo inittab, consulte elapartado inittab.

2. Utilice la vía rápida smit telinit para acceder al menú Establecer Nivel de Ejecución del Sistema.Para obtener más información acerca del mandato telinit, consulte el apartado telinit.

3. Escriba el nuevo nivel de ejecución del sistema en el campo NIVEL DE EJECUCIÓN del Sistema.4. Pulse Intro para implementar todos los valores de este procedimiento.

El sistema responde indicando los procesos que están terminando o iniciando como resultado delcambio del nivel de ejecución y visualizando el mensaje:

INIT: Nuevo nivel de ejecución: n

donde n es el número del nuevo nivel de ejecución.

Proceso de arranqueHay tres tipos de arranques del sistema y dos recursos que se necesitan para arrancar el sistemaoperativo.

Durante el proceso de arranque, el sistema prueba el hardware, carga y ejecuta el sistema operativo yconfigura los dispositivos. Para arrancar el sistema operativo, se necesitan los recursos siguientes:

• Una imagen de arranque que se puede cargar después de encender o restablecer la máquina.• Acceso a los sistemas de archivos raíz (/) y /usr.

Hay tres tipos de arranques del sistema:

Gestión del sistema operativo 15

Page 22: AIX Versión 7 - IBM

Elemento Descripción

Arranque de disco duro Se inicia una máquina para operaciones normales.

Arranque de red sin disco Una estación de trabajo sin disco o sin datos se inicia remotamentea través de la red. Se inicia una máquina para operacionesnormales. Uno o varios servidores de archivos remotosproporcionan los archivos y los programas que las estaciones detrabajo sin disco o sin datos necesitan para arrancar.

Arranque de mantenimiento Una máquina se inicia desde un disco duro, red, cinta o CD-ROM enmodalidad de mantenimiento. El administrador del sistema puederealizar tareas como instalar software nuevo o actualizado yejecutar comprobaciones de diagnóstico.

Durante un arranque de disco duro, la imagen de arranque se encuentra en un disco local creado cuandose ha instalado el sistema operativo. Durante el proceso de arranque, el sistema configura todos losdispositivos encontrados en la máquina e inicializa otro software básico necesario para que el sistemafuncione (por ejemplo, el Gestor de volúmenes lógicos). Al final de este proceso, los sistemas de archivosse montan y están preparados para utilizarlos.

Los mismos requisitos generales se aplican a los clientes de red sin disco. También necesitan una imagende arranque y acceder al árbol de archivos del sistema operativo. Los clientes de red sin disco no tienensistemas de archivos locales y obtienen toda su información mediante el acceso remoto.

Conceptos relacionadosProceso de arranque del sistemaLa mayoría de usuarios realizan un arranque de disco duro al iniciar el sistema para operacionesgenerales. El sistema encuentra toda la información necesaria para el proceso de arranque en su unidadde disco.Proceso de arranque de mantenimientoEn ocasiones, se necesita un rearranque para realizar tareas especiales como la instalación de softwarenuevo o actualizado, la realización de comprobaciones de diagnóstico o para el mantenimiento. En estoscasos, el sistema se inicia desde un soporte arrancable como, por ejemplo, un CD-ROM, DVD, una unidadde cintas, la red o una unidad de disco.Sistema de archivos RAMEl sistema de archivos RAM, parte de la imagen de arranque, reside totalmente en la memoria y contienetodos los programas que permiten continuar el proceso de arranque. Los archivos del sistema de archivosRAM son específicos para el tipo de arranque.

Proceso de arranque del sistemaLa mayoría de usuarios realizan un arranque de disco duro al iniciar el sistema para operacionesgenerales. El sistema encuentra toda la información necesaria para el proceso de arranque en su unidadde disco.

Cuando el sistema se inicia encendiendo el interruptor de alimentación (arranque en frío) o se reinicia conlos mandatos reboot o shutdown (arranque en caliente), se pueden producir diversos sucesos antes deque el sistema esté preparado para poderse utilizar. Estos sucesos se pueden dividir en las siguientesfases:

Conceptos relacionadosProceso de arranqueHay tres tipos de arranques del sistema y dos recursos que se necesitan para arrancar el sistemaoperativo.

Fase de firmwareEl firmware prepara el sistema para cargar y ejecutar el sistema operativo.

Su fase de inicialización implica los pasos siguientes:

16 AIX Versión 7.2: Gestión del sistema operativo

Page 23: AIX Versión 7 - IBM

1. El firmware realiza una prueba básica en los recursos del sistema que son necesarios para iniciar elsistema operativo.

2. El firmware comprueba la lista de arranque del usuario, una lista de dispositivos de arranquedisponibles. Esta lista de arranque se puede modificar para acomodarse a las necesidades utilizandoel mandato bootlist. Si la lista de arranque del usuario en la memoria de acceso aleatoria no volátil(NVRAM) no es válida o si no se encuentra un dispositivo de arranque válido, se comprueba la lista dearranque predeterminada. En cualquier caso, el primer dispositivo de arranque válido que seencuentra en la lista de arranque se utiliza para el arranque del sistema. Si existe una lista de arranquedel usuario válida en NVRAM, los dispositivos de la lista se comprueban por orden. Si no existe unalista de arranque del usuario, se comprueban todos los adaptadores y dispositivos del bus. Encualquier caso, los dispositivos se comprueban en un bucle continuo hasta que se encuentra undispositivo de arranque válido para el arranque del sistema.

Nota: El sistema mantiene una lista de arranque predeterminada que se guarda en NVRAM para elarranque en modalidad normal. En NVRAM, también se guarda otra lista de arranque en modalidad deservicio. Debe consultar las instrucciones específicas del hardware correspondientes a su modelo paraver cómo se accede a la lista de arranque en modalidad de servicio.

3. Cuando se encuentra un dispositivo de arranque válido, se comprueba el primer registro o número desector de programa (PSN). Si se trata de un registro de arranque válido, se lee en la memoria y seañade al bloque de control de IPL en la memoria. En los datos de registro de arranque de clave seincluyen la ubicación de inicio de la imagen de arranque en el dispositivo de arranque, la longitud de laimagen de arranque y las instrucciones sobre dónde se debe cargar la imagen de arranque en lamemoria.

4. La imagen de arranque se lee secuencialmente desde el dispositivo de arranque en la memoriaempezando en la ubicación especificada en NVRAM. La imagen de arranque de disco consiste en elkernel, un sistema de archivos RAM y la información de dispositivo personalizada base.

5. El control se pasa al kernel, que empieza la inicialización del sistema.6. El kernel ejecuta init, que ejecuta la fase 1 del script rc.boot.

Cuando se completa la fase de inicialización del kernel, empieza la configuración del dispositivo base.

Fase de configuración del dispositivo baseEl proceso init inicia el script rc.boot. La fase 1 del script rc.boot realiza la configuración deldispositivo base.

La fase 1 del script rc.boot incluye los pasos siguientes:

1. El script de arranque llama al programa restbase para crear la base de datos personalizada del Gestorde Datos Objeto (ODM) en el sistema de archivos RAM a partir de los datos personalizadoscomprimidos.

2. El script de arranque inicia el gestor de configuración, que accede a las normas de configuración deODM de la fase 1 para configurar los dispositivos base.

3. El gestor de configuración inicia los métodos de configuración de sys, bus, disk, SCSI, el Gestor devolúmenes lógicos (LVM) y el grupo de volúmenes rootvg.

4. Los métodos de configuración cargan los controladores de dispositivos, crean archivos especiales yactualizan los datos personalizados en la base de datos ODM.

Arranque del sistemaEste procedimiento completa la fase de arranque del sistema.

1. El proceso init inicia la ejecución de la fase 2 del script rc.boot. La fase 2 de rc.boot incluye lospasos siguientes:a) Llame al programa ipl_varyon para cambiar el grupo de volúmenes rootvg.b) Monte los sistemas de archivos de disco duro en sus puntos de montaje normales.c) Ejecute el programa swapon para empezar la paginación.

Gestión del sistema operativo 17

Page 24: AIX Versión 7 - IBM

d) Copie los datos personalizados de la base de datos ODM en el sistema de archivos RAM de la baseODM del sistema de archivos del disco duro.

e) Salga del script rc.boot.2. Después de que se complete la fase 2 del script rc.boot, el proceso de arranque cambia del sistema

de archivos RAM a los sistemas de archivos que están almacenados en el disco duro.3. Después el proceso init ejecuta los procesos definidos por los registros del archivo /etc/inittab.

Una de las instrucciones del archivo /etc/inittab ejecuta la fase 3 del script rc.boot, que incluyelos pasos siguientes:a) Monte el sistema de archivos de disco duro /tmp.b) Inicie la fase 2 del gestor de configuración para configurar todos los dispositivos restantes.c) Utilice el mandato savebase para guardar los datos personalizados en el volumen lógico de

arranque.d) Salga del script rc.boot.

Al final del proceso, el sistema está preparado para utilizarlo.

Proceso de arranque de mantenimientoEn ocasiones, se necesita un rearranque para realizar tareas especiales como la instalación de softwarenuevo o actualizado, la realización de comprobaciones de diagnóstico o para el mantenimiento. En estoscasos, el sistema se inicia desde un soporte arrancable como, por ejemplo, un CD-ROM, DVD, una unidadde cintas, la red o una unidad de disco.

La secuencia de arranque de mantenimiento de los sucesos es similar a la secuencia de un arranquenormal.

1. El firmware realiza una prueba básica en los recursos del sistema que son necesarios para iniciar elsistema operativo.

2. El firmware comprueba la lista de arranque del usuario. Puede utilizar el mandato bootlist paramodificar la lista de arranque del usuario para acomodarla a sus requisitos. Si la lista de arranque delusuario en NVRAM (Memoria de acceso aleatorio no volátil)no es válida o si no se encuentra ningúndispositivo de arranque válido, se comprueba la lista de arranque predeterminada. En cualquier caso,el primer dispositivo de arranque válido que se encuentra en la lista de arranque se utiliza para iniciarel sistema.

Nota: Para un arranque normal, el sistema operativo también mantiene una lista de arranquepredeterminada y una lista de arranque del usuario almacenadas en NVRAM. La lista de arranquepredeterminada y la lista de arranque del usuario también se mantienen durante el inicio del sistemaen modo de mantenimiento.

3. Cuando se encuentra un dispositivo de arranque válido, se comprueba el primer registro o número desector de programa (PSN). Si se trata de un registro de arranque válido, se lee en la memoria y seañade al bloque de control de la carga del programa inicial (IPL) en memoria. En los datos del registrode arranque de claves se incluyen la ubicación de inicio de la imagen de arranque en el dispositivo dearranque, la longitud de la imagen de arranque y el desplazamiento para el punto de entrada paraempezar la ejecución cuando la imagen de arranque está en la memoria.

4. La imagen de arranque se lee secuencialmente desde el dispositivo de arranque en la memoria,empezando por la ubicación especificada en NVRAM.

5. El control se pasa al kernel, que empieza a ejecutar los programas del sistema de archivos RAM.6. El contenido de la base de datos ODM determina qué dispositivos están presentes y el mandatocfgmgr configura dinámicamente todos los dispositivos encontrados, incluyendo todos los discos quedeben contener el sistema de archivos raíz.

7. Si se utiliza un CD-ROM, DVD, una cinta o la red para arrancar el sistema, el grupo de volúmenes rootvg(o rootvg) no se activa, porque puede que rootvg no exista (como en el caso de la instalación delsistema operativo en un nuevo sistema). Se puede producir la configuración de la red en estemomento. No se produce ninguna paginación cuando se realiza un arranque de mantenimiento.

18 AIX Versión 7.2: Gestión del sistema operativo

Page 25: AIX Versión 7 - IBM

Al final de este proceso, el sistema está preparado para la instalación, el mantenimiento o losdiagnósticos.

Nota: Si el sistema se inicia desde el disco duro, rootvg se activa, el sistema de archivos raíz de disco duroy el sistema de archivos de disco duro /usr se montan en el sistema de archivos RAM, se visualiza unmenú que permite entrar en varias modalidades de diagnóstico o en la modalidad de un solo usuario.Puede seleccionar la modalidad de un solo usuario, puede continuar el proceso de arranque y entrar enmodalidad de un solo usuario, donde el nivel de ejecución de init se establece en "S". El sistema yaestará preparado para las actualizaciones de software, mantenimiento o para ejecutar el mandatobosboot.

Conceptos relacionadosProceso de arranqueHay tres tipos de arranques del sistema y dos recursos que se necesitan para arrancar el sistemaoperativo.

Sistema de archivos RAMEl sistema de archivos RAM, parte de la imagen de arranque, reside totalmente en la memoria y contienetodos los programas que permiten continuar el proceso de arranque. Los archivos del sistema de archivosRAM son específicos para el tipo de arranque.

Es posible que un sistema de archivos RAM de arranque de mantenimiento no tenga rutinas devolúmenes lógicos, ya que es posible que no se deba activar rootvg. Sin embargo, durante un arranque dedisco duro, es conveniente activar rootvg y la paginación en cuanto sea posible. Aunque hay diferenciasen estos dos casos de ejemplo de arranque, la estructura del sistema de archivos RAM no cambia mucho.

El mandato init, que está en el sistema de archivos RAM, es un programa de intérprete de mandatos dearranque básico creado para utilizarlo durante el proceso de arranque. Este programa de intérprete demandatos de arranque controla el proceso de arranque llamando al script rc.boot script. El scriptrc.boot determina la máquina desde donde se inicia el dispositivo. El dispositivo de arranque determinalos dispositivos que se deben configurar en el sistema de archivos RAM. Si la máquina se ha iniciado en lared, los dispositivos de red se deben configurar de manera que los sistemas de archivos del cliente sepuedan montar remotamente. En el caso de un arranque de cinta, de CD-ROM o de DVD, la consola seconfigura para visualizar los menús de instalación de BOS (sistema operativo base). Después de querc.boot identifique el dispositivo de arranque, se llaman a las rutinas de configuración adecuadas desdeel sistema de archivos RAM. El programa de intérprete de mandatos de arranque llama dos veces al scriptrc.boot para que coincidan las dos fases de configuración durante el arranque. Una tercera llamada arc.boot se produce durante un arranque de disco o de red cuando se llama al mandato init real. Elarchivo inittab contiene una stanza rc.boot que completa la configuración final de la máquina.

El sistema de archivos RAM para cada dispositivo de arranque también es exclusivo debido a los distintostipos de dispositivos que se deben configurar. Hay un archivo prototipo asociado a cada tipo dedispositivo de arranque. El archivo prototipo es una plantilla de archivos que componen el sistema dearchivos RAM. El mandato bosboot utiliza el mandato mkfs para crear el sistema de archivos RAMutilizando los distintos archivos prototipo. Consulte el mandato bosboot para ver más detalles.

Conceptos relacionadosProceso de arranqueHay tres tipos de arranques del sistema y dos recursos que se necesitan para arrancar el sistemaoperativo.

Resolución de problemas de arranque del sistemaUtilice los siguientes métodos de resolución de problemas para solucionar algunos de los problemasbásicos que pueden producirse al iniciar el sistema. Si la información de resolución de problemas noresuelve su problema, póngase en contacto con el representante de servicio.

Sistemas que no arrancanAunque un sistema no arranque desde el disco duro, todavía puede obtener acceso al sistema paraaveriguar y corregir el problema.

Gestión del sistema operativo 19

Page 26: AIX Versión 7 - IBM

Si tiene un sistema que no arranca desde el disco duro, consulte el procedimiento acerca de cómoacceder a un sistema que no arranca en el apartado Resolución de problemas de instalación deInstallation and migration.

Este procedimiento permite obtener un indicador del sistema para que pueda intentar recuperar datosdel sistema o realizar la acción correctora que permita que el sistema rearranque desde el disco duro.

Nota:

• Este procedimiento sólo está pensado para los gestores del sistema con experiencia que tienenconocimientos de cómo arrancar y recuperar datos de un sistema que no puede arrancar desde el discoduro. La mayoría de usuarios no deben intentar este procedimiento, sino que deben ponerse encontacto con el representante de servicio.

• Este procedimiento no está pensado para los gestores del sistema que acaban de completar una nuevainstalación, porque en este caso el sistema no contiene datos que se deban recuperar. Si no puedearrancar desde el disco duro después de completar una nueva instalación, póngase en contacto con elrepresentante de servicio.

Referencia relacionadaDiagnósticos de problemas de arranqueDistintos factores pueden hacer que un sistema no pueda arrancar.

Diagnósticos de problemas de arranqueDistintos factores pueden hacer que un sistema no pueda arrancar.

Algunos de estos factores son:

• Problemas de hardware• Cintas o CD-ROM de arranque defectuosos• Servidores de arranque de red configurados incorrectamente• Sistemas de archivos dañados• Errores en scripts como /sbin/rc.boot

Si el proceso de arranque se detiene con el código de referencia 2702 y muestra un mensaje que indicaque la cantidad de memoria autorizada no es suficiente ("INSUFFICIENT ENTITLED MEMORY"), utiliceHMC para aumentar la cantidad de memoria autorizada disponible para dicha partición.

Conceptos relacionadosSistemas que no arrancanAunque un sistema no arranque desde el disco duro, todavía puede obtener acceso al sistema paraaveriguar y corregir el problema.

Copia de seguridad del sistemaUna vez que el sistema esté en marcha, la siguiente consideración que debe tener en cuenta debe serhacer copia de seguridad de los sistemas de archivos, directorios y archivos. Si hace copia de seguridadde los sistemas de archivos, puede restaurar los archivos o los sistemas de archivos en caso de que eldisco duro se cuelgue. Hay métodos diferentes para hacer copia de seguridad de la información.

La copia de seguridad de sistemas de archivos, directorios y archivos representa una inversión importantede tiempo y esfuerzo. A la vez, todos los archivos del sistema se pueden cambiar o borrar con facilidad,intencionada o accidentalmente.

Atención: Cuando se cuelga un disco duro, la información que contiene se destruye. La únicaforma de recuperar los datos destruidos es recuperar la información a partir de la copia deseguridad.

Si realiza la copia de seguridad de los sistemas de archivos de forma cuidadosa y metódica, siemprepodrá restaurar las versiones recientes de los archivos o de los sistemas de archivos sin dificultad.

Existen diversos métodos para hacer copia de seguridad de la información. Uno de los métodos utilizadoscon más frecuencia se denomina copia de seguridad por nombre, archivado de nombres de archivos o

20 AIX Versión 7.2: Gestión del sistema operativo

Page 27: AIX Versión 7 - IBM

copia de seguridad regular. Se trata de una copia de un sistema de archivos, un directorio o un archivoque se conserva para la transferencia de archivos o para el caso de que se cambien o destruyanaccidentalmente los datos originales. Este método de copia de seguridad se realiza cuando se especificael distintivo i y se utiliza para hacer una copia de seguridad de archivos individuales y directorios. Se tratade un método utilizado normalmente por usuarios individuales para hacer copia de seguridad de suscuentas.

Otro método utilizado con frecuencia se denomina copia de seguridad por i-nodo, archivado de sistemasde archivos o copia de seguridad de archivado. Este método de copia de seguridad se realiza cuando eldistintivo i no se especifica. Se utiliza para futuras referencias, finalidades históricas o para larecuperación si se dañan o pierden los datos originales. Se utiliza para hacer una copia de seguridad detodo un sistema de archivos y es el método que los administradores del sistema utilizan normalmentepara hacer copia de seguridad de grandes grupos de archivos como, por ejemplo, todas las cuentas deusuario de /home. Una copia de seguridad de sistema de archivos permite realizar fácilmente copias deseguridad incrementales. Una copia de seguridad incremental hace copia de seguridad de todos losarchivos que se han modificado desde la copia de seguridad anterior especificada.

Los mandatos compress y pack permiten comprimir archivos para almacenamiento y los mandatosuncompress y unpack desempaquetan los archivos cuando se han restaurado. El proceso deempaquetamiento y desempaquetamiento de archivos tarda tiempo, pero una vez empaquetados, losdatos utilizan menos espacio de tiempo en el soporte de copia de seguridad. Para obtener másinformación acerca de estos mandatos, consulte compress, pack, uncompress y unpack.

Existen varios mandatos que crean copias de seguridad y archivados. Por esto, los datos de los que se hahecho copia de seguridad se deben etiquetar para saber el mandato que se ha utilizado para iniciar lacopia de seguridad, y cómo se ha realizado la copia de seguridad (por nombre o por sistema de archivos).

Elemento Descripción

backup Hace copia de seguridad por nombre o por sistema de archivos. Para obtener másinformación, consulte backup.

mksysb Crea una imagen instalable de rootvg. Para obtener más información, consulte mksysb.

cpio Copia archivos en y desde el almacenamiento de archivado. Para obtener másinformación, consulte cpio.

dd Convierte y copia un archivo. Normalmente se utiliza para convertir y copiar datos ensistemas que ejecutan otros sistemas operativos o desde ellos, por ejemplo, sistemasprincipales. dd no agrupa múltiples archivos en un archivado; se utiliza para manipular ymover datos. Para obtener más información, consulte dd.

tar Crea o manipula archivados de formato tar. Para obtener más información, consulte tar.

rdump Hace copia de seguridad de archivos por sistema de archivos en el dispositivo de unamáquina remota. Para obtener más información, consulte rdump.

pax (Programa de utilidad de archivado que se ajusta a POSIX) lee y graba archivados tar ycpio. Para obtener más información, consulte pax.

Conceptos relacionadosCopia de seguridad para los gestores del sistema BSD 4.3Los gestores del sistema BSD 4.3 pueden hacer copia de seguridad de datos.Tareas relacionadasCopia de seguridad de archivos o sistemas de archivos del usuarioSe pueden utilizar dos procedimientos para hacer copia de seguridad de archivos y sistemas de archivos:las vías rápidas de SMIT smit backfile o smit backfilesys, y el mandato backup.

Conceptos de copia de seguridadAntes de empezar a realizar una copia de seguridad de los datos, debe conocer los tipos de datos, laspolíticas y los soportes que puede utilizar.

Gestión del sistema operativo 21

Page 28: AIX Versión 7 - IBM

Políticas de copia de seguridadNinguna política de copias de seguridad cumple con los requisitos de todos los usuarios. Una política quefunciona bien para un sistema con un usuario, por ejemplo, puede ser inadecuada para un sistema quesirve a cientos de usuarios. De igual modo, una política desarrollada para un sistema en que puedenmodificarse muchos archivos diariamente sería ineficaz para un sistema en el que los datos cambian conpoca frecuencia.

Se cual sea la estrategia de copia de seguridad adecuada para el sitio, es muy importante que exista una yque se hagan copias de seguridad con frecuencia y regularmente. Es difícil la recuperación de la pérdidade datos si no se ha implementado una buena estrategia de copia de seguridad.

Sólo el propio usuario puede determinar la mejor política de copia de seguridad para el sistema, pero lassiguientes directrices generales pueden ser útiles:

• Asegúrese de que puede realizar la recuperación ante pérdidas importantes.

¿Puede seguir funcionado el sistema si falla alguno de los discos duros fijos? ¿Puede restaurar elsistema si fallan todos los discos duros? ¿Podría restablecer el sistema si perdiera los disquetes ocintas de seguridad por incendio o robo? Si se pierden datos, ¿qué dificultades supondría tener quevolver a crearlos? Considere las posibles pérdidas principales, aunque no sean probables, y diseñe unapolítica de copia de seguridad que permita realizar la recuperación del sistema tras producirsecualquiera de ellas.

• Compruebe las copias de seguridad periódicamente.

Los soportes de copia de seguridad y su hardware pueden no ser fiables. Una gran biblioteca de cintas odisquetes de copia de seguridad es inútil si no se pueden volver a leer los datos en un disco fijo. Paraasegurarse de que se pueden utilizar las copias de seguridad, visualice periódicamente la tabla decontenido de la cinta de copia de seguridad (utilizando restore -T o tar -t para cintas dearchivado). Si utiliza disquetes para las copias de seguridad y tiene más de una unidad de disquetes, lealos disquetes desde otra unidad que no sea donde las ha creado. También puede repetir cada copia deseguridad de nivel 0 en un segundo conjunto de soportes para más seguridad. Si utiliza un dispositivode cintas en modalidad continua para las copias de seguridad, puede utilizar el mandato tapechk pararealizar comprobaciones de coherencia básicas en la cinta. Para obtener más información acerca deestos mandatos, consulte restore -T, tar -t y tapechk.

• Conserve las copias de seguridad antiguas.

Desarrolle un plan cíclico regular de reutilización de los soportes de copias de seguridad; no obstante,no vuelva a utilizar todos los soportes de copia de seguridad. A veces, puede que transcurran mesesantes de darse cuenta de que falta un archivo importante o que está dañado. Guarde las copias deseguridad antiguas para estos casos. Por ejemplo, podría planificar los siguientes tres ciclos de cintas odisquetes de copias de seguridad:

– Una vez por semana, recicle todos los disquetes diarios, excepto el del viernes.– Una vez por mes, reciclar todos los disquetes del viernes excepto el del último viernes del mes. Con

ello, las cuatro últimas copias de seguridad de los viernes siempre estarán disponibles.– Una vez por trimestre, reciclar todos los disquetes mensualmente a excepción del último. Conserve

el último disquete mensual de cada trimestre indefinidamente, preferiblemente en un edificiodiferente.

• Compruebe los sistemas de archivos antes de hacer copia de seguridad.

Una copia de seguridad de un archivo dañado no será útil. Antes de realizar las copias de seguridad, serecomienda comprobar la integridad del sistema de archivos con el mandato fsck. Para obtener másinformación, consulte fsck.

• Asegúrese de que los archivos no se están utilizando durante la copia de seguridad.

No utilice el sistema cuando haga copias de seguridad. Si el sistema está en uso, los archivos puedencambiar mientras está realizándose la copia de seguridad de éstos y, por lo tanto, la copia de seguridadno será precisa.

• Haga copia de seguridad del sistema antes de realizar cambios importantes en él.

22 AIX Versión 7.2: Gestión del sistema operativo

Page 29: AIX Versión 7 - IBM

Es siempre aconsejable hacer copias de seguridad del sistema de archivos antes de realizar cualquierprueba de hardware o trabajo de reparación o antes de instalar algún nuevo dispositivo, programa uotras características.

• Otros factores.

Cuando planifique e implemente una estrategia de realización de copias de seguridad, tenga en cuentalos factores siguientes:

– ¿Con qué frecuencia cambian los datos? Los datos del sistema operativo no cambian con demasiadafrecuencia, por lo tanto, no es necesario que realice con frecuencia la copia de seguridad de ellos.Por otro lado, los datos del usuario normalmente cambian con frecuencia, por lo que debe hacercopia de seguridad de ellos con frecuencia.

– ¿Cuántos usuarios hay en el sistema? El número de usuarios influye en la cantidad de medios dealmacenamiento necesarios y en la frecuencia con que han de realizarse las copias de seguridad.

– ¿Qué dificultades supondría tener que volver a crear los datos? Es importante tener en cuenta quealgunos datos no pueden volver a crearse si no existe ninguna copia de seguridad disponible.

Para proteger los datos, es muy importante contar con una estrategia de realización de copias deseguridad adecuada. La evaluación de las necesidades de su entorno le ayudará a determinar cuál es lapolítica de copias de seguridad más adecuada. Realice copias de seguridad de la información de losusuarios con frecuencia y de forma regular. La recuperación de una pérdida de datos es muy difícil si nose ha implementado una buena estrategia de copias de seguridad.

Nota: Para la copia de seguridad de conductos con nombre (archivos especiales FIFO), los conductospueden estar cerrados o abiertos. Sin embargo, la restauración falla cuando se realiza la copia deseguridad en conductos con nombre abiertos. Cuando se restaura un archivo especial FIFO, el i-nodo eslo único necesario para volver a crearlo porque contiene toda la información de las características. Elcontenido del conducto con nombre no es importante para la restauración. Por lo tanto, el tamaño dearchivo durante la copia de seguridad es cero (todos los FIFO cerrados) antes de realizar la copia deseguridad.

Atención: Los procedimientos de copia de seguridad y restauración del sistema necesitan queéste se restaure en el mismo tipo de plataforma desde la que se hecho la copia de seguridad. Enparticular, las placas base de CPU y E/S deben ser del mismo tipo.

Soportes de copias de seguridadExisten varios tipos distintos de soportes para la realización de las copias de seguridad. Los distintostipos de medios de seguridad para la configuración específica del sistema depende del software y delhardware.

Están disponibles varios tipos de soportes de copia de seguridad. Los tipos de soportes de copia deseguridad disponibles para una configuración específica del sistema dependen del software y elhardware. Los tipos que se utilizan con más frecuencia son las cintas (cintas de 8 mm y cintas de 9pistas), disquetes (disquetes de 5,25 pulgadas y disquetes de 3,5 pulgadas), archivados remotos y discosduros locales alternativos. A menos que especifique un dispositivo diferente utilizando el mandatobackup -f, el mandato backup graba automáticamente la salida en /dev/rfd0, que es la unidad dedisquetes.

Atención: La ejecución del mandato backup da lugar a la pérdida de todo el material almacenadopreviamente en el soporte de copia de seguridad seleccionado.

Disquetes

Los disquetes son el medio de copias de seguridad estándar. A menos que especifique un dispositivodiferente utilizando el mandato backup -f, el mandato backup graba automáticamente su salida enel dispositivo /dev/rfd0, que es la unidad de disquetes. Para realizar la copia de seguridad de losdatos en el dispositivo de cintas por omisión, escriba /dev/rmt0 y pulse Intro.

Manipule los disquetes cuidadosamente. Puesto que cada unidad de información ocupa una pequeñazona del disquete, las pequeñas motas, polvo o partículas de tabaco pueden dejar la informacióninutilizable. Asegúrese de recordar lo siguiente:

Gestión del sistema operativo 23

Page 30: AIX Versión 7 - IBM

• No toque las superficies de grabación.• Mantenga los disquetes alejados de imanes y de fuentes que generen campos magnéticos como,

por ejemplo, teléfonos, el equipo para el dictado y las calculadoras electrónicas.• Mantenga los disquetes lejos de temperaturas extremas. La temperatura recomendada oscila entre

los 10 y los 60 grados Celsius (entre 50 y 140 grados Fahrenheit).• Un manejo correcto ayuda a evitar la pérdida de información.• Realice copias de seguridad de los disquetes con regularidad.

Atención: Las unidades de disquetes y los disquetes deben ser del tipo correcto paraalmacenar datos satisfactoriamente. Si utiliza un disquete incorrecto en la unidad de disquetesde 3,5 pulgadas, los datos del disquete podrían destruirse.

La unidad de disquetes utiliza los disquetes de 3,5 pulgadas que se indican a continuación:

• 1 MB de capacidad (almacena 720 KB de datos aproximadamente)• 2 MB de capacidad (almacena 1,44 MB de datos aproximadamente)

Cintas

Por su gran capacidad y duración, la cinta suele ser el soporte que se elige para almacenar archivosgrandes o muchos archivos como, por ejemplo, las copias de archivador de los sistemas de archivos.También se utilizan para la transferencia de muchos archivos de un sistema a otro. Las cintas no sesuelen utilizar para almacenar archivos a los que se accede con frecuencia dado que otros soportesproporcionan tiempos de acceso mucho más rápidos.

Los archivos de cinta se crean utilizando mandatos como backup, cpio y tar, que abren una unidadde cintas, graban en ella y la cierran.

Estrategia de copia de seguridadHay dos métodos para hacer copia de seguridad de grandes cantidades de datos.

• Copia de seguridad completa del sistema• Copia de seguridad incremental

Para comprender estos dos tipos de copia de seguridad y cuál es la correcta para un sitio o sistema, esimportante comprender la estructura del sistema de archivos y la colocación de los datos. Tras decidir laestrategia de la colocación de los datos, puede desarrollar una estrategia de copia de seguridad para esosdatos.

Tareas relacionadasImplementación de copias de seguridad planificadasEste procedimiento describe cómo desarrollar y utilizar un script para realizar una copia de seguridadcompleta semanal y copias de seguridad incrementales diarias de archivos del usuario.

Datos del sistema en contraposición a datos del usuarioLos datos se definen como programas o texto y para esta presentación se dividen en dos clases:

• Datos del sistema, que componen el sistema operativo y sus ampliaciones. Estos datos siempre sedeben guardar en los sistemas de archivos del sistema, a saber, / (raíz), /usr, /tmp, /var, etcétera.

• Normalmente, los datos del usuario son datos locales que las personas necesitan para completartareas específicas. Estos datos se deben mantener en el sistema de archivos /home o en los sistemasde archivos que se crean específicamente para los datos del usuario.

Los programas y el texto del usuario no se deben colocar en los sistemas de archivos diseñados paracontener datos del sistema. Por ejemplo, un gestor del sistema puede crear un nuevo sistema de archivosy montarlo en /local. Una excepción es /tmp, que se utiliza para el almacenamiento temporal de datosdel sistema y del usuario.

24 AIX Versión 7.2: Gestión del sistema operativo

Page 31: AIX Versión 7 - IBM

Copias de seguridadEn general, se conservan copias de seguridad de los datos del usuario y del sistema por si se eliminanaccidentalmente o se produce una anomalía de disco. Es más fácil gestionar las copias de seguridadcuando los datos del usuario se conservan separados de los datos del sistema.

Las razones para mantener los datos del sistema separados de los datos del usuario son:

• Los datos del usuario tienden a cambiar con mucha más frecuencia que los datos del sistema operativo.Las imágenes de copia de seguridad son mucho más pequeñas si no se realiza la copia de seguridad delos datos del sistema en la misma imagen que los datos del usuario. El número de usuarios influye en lafrecuencia y en los medios de almacenamiento necesarios con que han de realizarse las copias deseguridad.

• Es más rápido y fácil restaurar los datos del usuario cuando se conservan por separado. La restauracióndel sistema operativo junto con los datos del usuario necesita tiempo y esfuerzo adicionales. La razónes que el método utilizado para recuperar los datos del sistema operativo implica el arranque delsistema desde un soporte extraíble (cinta o CD) y la instalación de la copia de seguridad del sistema.

Para hacer copia de seguridad de los datos del sistema, desmonte todos los sistemas de archivos delusuario, incluyendo /home con el mandato umount. Si estos sistemas de archivos se están utilizando, nopuede desmontarlos. Planifique las copias de seguridad en periodos de poco uso a fin de que se puedandesmontar; si los sistemas de archivos de datos del usuario permanecen montados, se hará copia deseguridad de ellos junto con los datos del sistema operativo. Utilice el mandato mount para garantizarque sólo se monten los sistemas de archivos del sistema operativo.

Los únicos sistemas de archivos montados son /, /usr, /var y /tmp y el resultado del mandato mountpuede ser similar a la siguiente salida:

nodo montado montado sobre vfs fecha opciones

/dev/hd4 / jfs Jun 11 10:36 rw,log=/dev/hd8

/dev/hd2 /usr jfs Jun 11 10:36 rw,log=/dev/hd8

/dev/hd9var /var jfs Jun 11 10:36 rw,log=/dev/hd8

/dev/hd /tmp jfs Jun 11 10:36 rw,log=/dev/hd8

Cuando esté seguro de que se han desmontado todos los sistemas de archivos del usuario, estarápreparado para realizar una copia de seguridad de los datos del sistema operativo.

Cuando finalice la copia de seguridad del sistema operativo, monte el sistema de archivos de usuarioutilizando el mandato smit mount. Después, puede hacer copia de seguridad de los archivos, sistemasde archivos u otros grupos de volúmenes, según las necesidades.

Conceptos relacionadosCopia de seguridad de la imagen del sistema y de grupos de volúmenes definidos por el usuariorootvg se almacena en un disco duro, o grupo de discos, y contiene los archivos de arranque, el BOS, lainformación de configuración y los productos de software opcionales. Normalmente un grupo devolúmenes definido por el usuario (también denominado grupo de volúmenes no rootvg) contiene archivosde datos y software de aplicaciones.

Réplica del sistema (clonación)La clonación permite guardar los datos de configuración junto con los datos del usuario o del sistema. Porejemplo, es posible que desee replicar un sistema o un grupo de volúmenes; a veces es denominaclonación.

Después puede instalar esta imagen en otro sistema y puede utilizarla igual que el primer sistema. Elmandato mksysb se utiliza para clonar el grupo de volúmenes rootvg, que contiene el sistema operativo,mientras que el mandato savevg se utiliza para clonar un grupo de volúmenes.

Resumen de mandatos para archivos de copia de seguridad y soportes de almacenamientoHay mandatos disponibles para hacer copia de seguridad de archivos y almacenar datos.

Gestión del sistema operativo 25

Page 32: AIX Versión 7 - IBM

Elemento Descripción

backup Realiza la copia de seguridad de los archivos y de los sistemas de archivos

compress Comprime y expande los datos

cpio Copia archivos en y desde el almacenamiento de archivadores y los directorios

fdformat Formatea disquetes

flcopy Copia en y desde los disquetes

format Formatea disquetes

fsck Comprueba la coherencia del sistema de archivos y repara interactivamente elsistema de archivos

pack Comprime archivos

restore Copia los sistemas de archivos o archivos de los que anteriormente se ha realizadouna copia de seguridad, creados utilizando el mandato backup desde un dispositivolocal

tapechk Comprueba la coherencia de la unidad de cinta de modalidad continua

tar Manipula archivos

tcopy Copia una cinta magnética

uncompress Comprime y expande los datos

unpack Expande archivos

Administración de copias de seguridad del sistemaExisten varias formas de realizar y restaurar una copia de seguridad del sistema.

Copia de seguridad de archivos o sistemas de archivos del usuarioSe pueden utilizar dos procedimientos para hacer copia de seguridad de archivos y sistemas de archivos:las vías rápidas de SMIT smit backfile o smit backfilesys, y el mandato backup.

• Si hace copia de seguridad por i-nodo de sistemas de archivos que pueden estar en uso, desmóntelosprimero para evitar incoherencias.

Atención: Si intenta hacer copia de seguridad de un sistema de archivos montado, se visualizaun mensaje de aviso. El mandato backup continúa, pero pueden producirse incoherencias en elsistema de archivos. Este aviso no se aplica al sistema de archivos raíz (/).

• Para evitar errores, asegúrese de que el dispositivo de copia de seguridad se ha limpiadorecientemente.

Para hacer copia de seguridad de archivos y sistemas de archivos del usuario, puede utilizar las víasrápidas de SMIT smit backfile o smit backfilesys.

Puede utilizar la interfaz SMIT para hacer copia de seguridad de sistemas de archivos individuales ypequeños por el nombre como, por ejemplo, /home del sistema local. Tenga en cuenta que SMIT nopuede crear archivados en ningún otro formato que el proporcionado por el mandato backup. Además,no todos los distintivos del mandato backup están disponibles con SMIT. SMIT puede colgarse si senecesitan varias cintas o discos durante la copia de seguridad.

Utilice el mandato backup cuando desee hacer copia de seguridad de varios sistemas de archivosgrandes. Puede especificar un número de nivel para controlar la cantidad de datos cuya copia deseguridad se realiza (completo, 0; incremental, de 1 a 9). La utilización del mandato backup es la únicamanera de poder especificar el número de nivel en las copias de seguridad.

El mandato backup crea copias en uno de los dos formatos de copia de seguridad siguientes:

• Copia de seguridad por nombre de archivos específicos utilizando el distintivo -i.

26 AIX Versión 7.2: Gestión del sistema operativo

Page 33: AIX Versión 7 - IBM

• Copia de seguridad por i-nodo de sistemas de archivos completos, utilizando los parámetros -Nivel ySistemaArchivos. El sistema de archivos se desfragmenta cuando se restaura desde la copia deseguridad.

Atención: La copia de seguridad por i-nodo no funciona correctamente para los archivos quetienen un ID de usuario (UID) o un ID de grupo (GID) mayor que 65535. La copia de seguridad deestos archivos se realiza con el UID o GID truncado y, por lo tanto, tendrán atributos de UID o GIDincorrectos cuando se restauren. En estos casos, debe hacer copia de seguridad por nombre.

Tareas de copia de seguridad de archivos o sistemas de archivos del usuario

Tarea Vía rápida deSMIT

Mandato o archivo

Copia de seguridad de archivos del usuario smitbackfile

1. Inicie la sesión en la cuenta delusuario.

2. Copia de seguridad: find . -print | backup -ivf /dev/rmt0

Copia de seguridad de sistemas de archivosdel usuario

smitbackfilesys

1. Desmonte los sistemas de archivoscuya copia de seguridad desearealizar. Por ejemplo: umount allo umount /home /filesys1

2. Verifique los sistemas de archivos.Por ejemplo: fsck /home /filesys1

3. Haga copia de seguridad por i-nodo. Por ejemplo: backup -5 -uf/dev/rmt0 /home/libr

4. Restaure los archivos utilizando elmandato siguiente: restore -t

Nota: Si este mandato genera un mensaje de error, deberá repetir la copia de seguridad completa.

Conceptos relacionadosCopia de seguridad del sistemaUna vez que el sistema esté en marcha, la siguiente consideración que debe tener en cuenta debe serhacer copia de seguridad de los sistemas de archivos, directorios y archivos. Si hace copia de seguridadde los sistemas de archivos, puede restaurar los archivos o los sistemas de archivos en caso de que eldisco duro se cuelgue. Hay métodos diferentes para hacer copia de seguridad de la información.

Restauración de archivos de copia de seguridadTras hacer una copia de seguridad correcta de los datos, hay varios métodos de restaurar los datosbasándose en el tipo de mandato backup que se ha utilizado.

Debe conocer cómo se ha creado la copia de seguridad o el archivado para restaurarlos correctamente.Cada procedimiento de copia de seguridad proporciona información acerca de la restauración de datos.Por ejemplo, si utiliza el mandato backup, puede especificar una copia de seguridad por sistema dearchivos o por nombre. Esa copia de seguridad se debe restaurar de la misma manera en que se hacreado, por sistema de archivos o por nombre.

Varios mandatos restauran los datos de copia de seguridad, por ejemplo:

Elemento Descripción

restore Copia los archivos creados por el mandato backup. Para obtener más información acercade la utilización de este mandato, consulte la sección "Restauración de archivos utilizandoel mandato restore'.

Gestión del sistema operativo 27

Page 34: AIX Versión 7 - IBM

Elemento Descripción

rrestore Copia los sistemas de archivos de copia de seguridad de una máquina remota en lamáquina local.

cpio Copia archivos en y desde el almacenamiento de archivado.

tar Crea o manipula los archivados tar.

pax (Programa de utilidad de archivado que se ajusta a POSIX) lee y graba archivados tar ycpio.

Las secciones siguientes explican los mandatos restore y smit.

Nota:

• Los archivos deben restaurarse utilizando el mismo método que el empleado para la realización de lacopia de seguridad de éstos. Por ejemplo, si se ha hecho copia de seguridad de un sistema de archivospor nombre, debe restaurarse por nombre.

• Cuando se necesita más de un disquete, el mandato restore lee el disquete que se ha montado, lesolicita uno nuevo y espera su respuesta. Después de insertar el nuevo disquete, pulse la tecla Intropara seguir restaurando archivos.

Restauración de archivos utilizando el mandato restore

Utilice el mandato restore para leer los archivos que se han grabado mediante el mandato backupy restaurarlos en el sistema local.

Vea los ejemplos siguientes:

• Para listar los nombres de los archivos de los que previamente se ha realizado una copia deseguridad, escriba lo siguiente:

restore -T

La información se lee del dispositivo de copia de seguridad por omisión /dev/rfd0. Si se ha hechocopia de seguridad de archivos individuales, únicamente se mostrarán los nombres de los archivos.Si se ha hecho copia de seguridad de un sistema de archivos entero, también se muestra el númerode inodo.

• Para restaurar archivos en el sistema de archivos principal, escriba lo siguiente:

restore -x -v

El distintivo -x extrae todos los archivos del soporte de copia de seguridad y los restaura en el lugarque les corresponde en el sistema de archivos. El distintivo -v visualiza un informe de progreso amedida que va restaurándose cada archivo. Si está restaurándose la copia de seguridad de unsistema de archivos, los archivos se indican con sus números de inodo. De lo contrario, sólo sevisualizan los nombres.

• Para copiar el archivo /home/mike/manual/chap1, escriba lo siguiente:

restore -xv /home/mike/manual/chap1

Este mandato extrae el archivo /home/mike/manual/chap1 del soporte de copia de seguridad ylo restaura. El archivo /home/mike/manual/chap1 debe tener un nombre que el mandatorestore -T pueda visualizar.

• Para copiar todos los archivos en un directorio denominado manual, escriba lo siguiente:

restore -xdv manual

28 AIX Versión 7.2: Gestión del sistema operativo

Page 35: AIX Versión 7 - IBM

Este mandato restaura el directorio manual y los archivos que contiene. Si el directorio no existe, secrea un directorio denominado manual en el directorio actual para que contenga los archivos quese están restaurando.

Restauración de archivos utilizando el mandato smit

Utilice el mandato smit para ejecutar el mandato restore, que lee archivos grabados por elmandato backup y los restaura en el sistema local.

1. En el indicador de mandatos, escriba lo siguiente:

smit restore

2. Realice su entrada en el campo del directorio de destino, Target DIRECTORY. Éste es el directorioen el que desea que residan los archivos restaurados.

3. Continúe con el campo del dispositivo de copia de seguridad BACKUP device o del archivo FILE yescriba el nombre de dispositivo de salida, tal como se muestra en el ejemplo siguiente quecorresponde a un dispositivo de cinta magnética sin procesar:

/dev/rmt0

Si el dispositivo no está disponible, aparece un mensaje similar al siguiente:

No puede abrirse /dev/rmtX, no existe dichoarchivo o directorio.

Este mensaje indica que el sistema no puede acceder al controlador de dispositivo porque noexiste ningún archivo para rmtX en el directorio /dev. Sólo los elementos en estado disponiblese encuentran en el directorio /dev.

4. Para el campo del número de bloques que han de leerse como una única entrada NUMBER ofblocks to read in a single input, se recomienda conservar el valor predeterminado.

5. Para restaurar el sistema de archivos o directorio especificado, pulse Intro.

Creación de un archivado remotoUtilice este procedimiento para archivar archivos en un dispositivo de cinta remoto.

Los sistemas AIX en ejecución no pueden montar un dispositivo de cinta remoto como si fueran localespara el sistema; sin embargo, se pueden enviar datos a un dispositivo de cinta de una máquina remotautilizando el mandato rsh. El siguiente procedimiento sólo graba en una única cinta. Los archivados enmúltiples cintas necesitan software de aplicación especializado.

En el procedimiento siguiente, se supone lo siguiente:tamañobloque

Representa el tamaño de bloque del dispositivo de cinta de destino.sistemaprincipalremoto

Es el nombre del sistema de destino (el sistema en el que se encuentra la unidad de cinta).sistemaprincipalorigen

Es el nombre del sistema de origen (el sistema que se está archivando)./dev/rmt0

Es el nombre del dispositivo de cinta remotonombrevíaacceso

Representa el nombre completo de vía de acceso de un directorio o archivo necesario.Al utilizar las instrucciones siguientes, se supone que tanto el usuario local como el remoto son root.

1. Asegúrese de que tiene acceso a la máquina remota.La máquina de origen debe tener acceso al sistema con la unidad de cinta. (Se puede acceder alsistema de destino utilizando cualquiera de los usuarios definidos en ese sistema, pero el nombre deusuario debe tener autorización de root para poder seguir muchos de los pasos siguientes.)

Gestión del sistema operativo 29

Page 36: AIX Versión 7 - IBM

2. En el editor favorito, cree un archivo en el directorio / (raíz) del sistema de destinodenominado .rhosts que permita que el sistema de origen acceda al sistema de destino.Debe añadir el nombre de sistema principal y el ID de usuario autorizados a este archivo. Paradeterminar el nombre de la máquina de origen para el archivo .rhosts, puede utilizar el mandatosiguiente:

host direcciónIPOrigen

Para este ejemplo, se supone que se añade la siguiente línea al archivo .rhosts:

sistemaprincipalorigen.mired.com root

3. Guarde el archivo y cambie sus permisos utilizando el mandato siguiente:

chmod 600 .rhosts

4. Utilice el mandato rsh para probar el acceso desde la máquina de origen. Por ejemplo:

rsh sistemaprincipalremoto

Si se ha configurado todo correctamente, debe tener acceso de shell a la máquina remota. No debever una solicitud de inicio de sesión pidiéndole un nombre de usuario. Escriba exit para finalizar lasesión de este shell de prueba.

5. Decida el tamaño de bloque de dispositivo de cinta adecuado.Los valores recomendados son los siguientes:

Elemento Descripción

Tamaño de bloque de soporte de 9 pistas o 0,25pulgadas:

512

Tamaño de bloque de soporte de 8 mm o 4 mm: 1024

Si no está seguro y desea comprobar el tamaño de bloque actual del dispositivo de cinta, utilice elmandato tctl. Por ejemplo:

tctl -f /dev/rmt0 status

Si desea cambiar el tamaño de bloque de cinta, utilice el mandato chdev. Por ejemplo:

chdev -l rmt0 -a block_size=1024

6. Cree el archivado utilizando uno de los métodos siguientes:Copia de seguridad por nombre

Para crear remotamente un archivado de copia de seguridad por nombre, utilice el mandatosiguiente:

find nombrevíaacceso -print | backup -ivqf- | rsh sistemaprincipalremoto \ "dd of=/dev/rmt0 bs=tamañobloque conv=sync"

Copia de seguridad por inodoPara crear remotamente un archivado de copia de seguridad por inodo, primero desmonte elsistema de archivos y después utilice el mandato backup. Por ejemplo:

umount /myfsbackup -0 -uf- /myfs | rsh sistemaprincipalremoto \ "dd of=/dev/rmt0 bs=tamañobloque conv=sync"

Creación y copia de un archivado en cinta remotaPara crear y copiar un archivado en el dispositivo de cinta remoto, utilice el mandato siguiente:

find nombrevíaacceso -print | cpio -ovcB | rsh sistemaprincipalremoto \ "dd ibs=5120 obs=tamañobloque of=/dev/rmt0"

30 AIX Versión 7.2: Gestión del sistema operativo

Page 37: AIX Versión 7 - IBM

Creación de un archivado tarPara crear remotamente un archivado tar, utilice el mandato siguiente:

tar -cvdf- nombrevíaacceso | rsh sistemaprincipalremoto \ "dd of=/dev/rmt0 bs=tamañobloque conv=sync"

Creación de un vuelco remotoPara crear remotamente un vuelco remoto del sistema de archivos /myfs, utilice el mandatordump:

rdump -u -0 -f sistemaprincipalremoto:/dev/rmt0 /myfs

El distintivo -u indica al sistema que actualice los registros de nivel de copia de seguridad actualen el archivo /etc/dumpdates. -0 es el valor del distintivo Nivel. El nivel 0 de copia de seguridadespecifica que se debe hacer copia de seguridad de todos los archivos del directorio /myfs.

7. Restaure el archivado remoto utilizado uno de los métodos siguientes:Restauración de una copia de seguridad por nombre

Para restaurar un archivado de copia de seguridad remoto, utilice el mandato siguiente:

rsh sistemaprincipalremoto "dd if=/dev/rmt0 bs=tamañobloque" | restore \ -xvqdf- nombrevíaacceso

Restauración de una copia de seguridad por inodoPara restaurar un archivado de copia de seguridad remoto por inodo, utilice el mandato siguiente:

rsh sistemaprincipalremoto "dd if=/dev/rmt0 bs=tamañobloque" | restore \ -xvqf- nombrevíaacceso

Restauración de un archivado cpio remotoPara restaurar un archivado remoto creado con el mandato cpio, utilice el mandato siguiente:

rsh sistemaprincipalremoto "dd if=/dev/rmt0 ibs=tamañobloque obs=5120" | \ cpio -icvdumB

Restauración de un archivado tarPara restaurar un archivado tar remoto, utilice el mandato siguiente:

rsh sistemaprincipalremoto "dd if=/dev/rmt0 bs=tamañobloque" | tar -xvpf- nombrevíaacceso

Restauración de un vuelco remotoPara restaurar un vuelco remoto del sistema de archivos /myfs, utilice el mandato siguiente:

cd /myfsrrestore -rvf sistemaprincipalremoto:/dev/rmt0

Restauración de archivos del usuario desde una imagen de copia de seguridadSi necesita restaurar una imagen de copia de seguridad destruida por accidente, el problema más difíciles determinar qué cintas de copia de seguridad contienen este archivo. Se puede utilizar el mandatorestore -T para listar el contenido de un archivado. Es aconsejable restaurar el archivo en eldirectorio /tmp para no sobregrabar accidentalmente los demás archivos del usuario.

Asegúrese de que el dispositivo está conectado y disponible. Para comprobar la disponibilidad, escriba:

lsdev -C | pg

Si la estrategia de copia de seguridad ha incluido copias de seguridad incrementales, es útil preguntar alusuario cuándo se ha modificado por última vez el archivo. Sirve de ayuda para determinar la copia deseguridad incremental que contiene el archivo. Si no se puede obtener esta información o es incorrecta,empiece a buscar las copias de seguridad incrementales por orden invertido (7, 6, 5, ...). Para las copiasde seguridad incrementales del sistema de archivos, el distintivo -i (modalidad interactiva) del mandatorestore es muy útil para localizar y restaurar el archivo perdido. (La modalidad interactiva también es

Gestión del sistema operativo 31

Page 38: AIX Versión 7 - IBM

útil para restaurar una cuenta de usuario individual desde una copia de seguridad del sistema dearchivos /home.)

Los procedimientos de la tabla siguiente describen cómo implementar una restauración de nivel 0(completa) de un directorio o un sistema de archivos.

Tareas de restauración desde imagen de copia de seguridad

Tarea Vía rápida de SMIT Mandato o archivo

Restauración de archivos de usuario individual smit restfile Consulte el mandato restore.

Restauración de un sistema de archivos deusuario

smit restfilesys 1. mkfs /dev/hd12. mount /dev/hd1 /filesys

3. cd /filesys4. restore -r

Restauración de un grupo de volúmenes delusuario

smit restvg Consulte el mandato restvg -q.

Restauración del acceso a una biblioteca del sistema desenlazada o suprimidaCuando la biblioteca libc.a existente no está disponible, no se reconocen la mayoría de mandatos delsistema operativo.

Las causas más probables para este tipo de problema son las siguientes:

• El enlace de /usr/lib ya no existe.• El archivo de /usr/ccs/lib se ha suprimido.

El siguiente procedimiento describe cómo restaurar el acceso a la biblioteca libc.a. Este procedimientonecesita un tiempo de inactividad del sistema. Si es posible, planifique la inactividad cuando menosimpacte en la carga de trabajo como protección contra posibles pérdidas de datos o funcionalidad.

La información de este procedimiento se ha probado utilizando versiones específicas de AIX. Losresultados que obtenga pueden variar significativamente dependiendo de la versión y el nivel de AIX.

Información relacionadaMandato mountMandato unmountMandato reboot

Restauración de un enlace simbólico suprimidoUtilice el procedimiento siguiente para restaurar un enlace simbólico desde la biblioteca /usr/lib/libc.a hasta la vía de acceso /usr/ccs/lib/libc.a.

La información de este procedimiento se ha probado utilizando versiones específicas de AIX. Losresultados que obtenga pueden variar significativamente dependiendo de la versión y el nivel de AIX.

1. Con autorización de root, establezca la variable de entorno LIBPATH para que apunte aldirectorio /usr/ccs/lib escribiendo los mandatos siguientes:

# LIBPATH=/usr/ccs/lib:/usr/lib# export LIBPATH

Ahora, debe poder ejecutar mandatos del sistema.2. Para restaurar los enlaces desde la biblioteca /usr/lib/libc.a y el directorio /lib con el

directorio /usr/lib, escriba los mandatos siguientes:

ln -s /usr/ccs/lib/libc.a /usr/lib/libc.aln -s /usr/lib /lib

32 AIX Versión 7.2: Gestión del sistema operativo

Page 39: AIX Versión 7 - IBM

Ahora, los mandatos se deben ejecutar como antes. Si sigue sin poder acceder a un shell, sáltese elresto de este procedimiento y continúe en la siguiente sección, “Restauración de un archivo debiblioteca del sistema suprimido” en la página 33.

3. Escriba el mandato siguiente para eliminar el establecimiento de la variable de entorno LIBPATH.

unset LIBPATH

Restauración de un archivo de biblioteca del sistema suprimidoEste procedimiento para restaurar un archivo de biblioteca del sistema suprimido necesita un tiempo deinactividad del sistema. Se debe rearrancar el sistema y después restaurar la biblioteca desde una cintamksysb reciente.

1. Antes de rearrancar, asegúrese de que el campo PROMPT del archivo bosinst.data estáestablecido en yes.

2. Inserte una cinta mksysb reciente en la unidad de cintas.mksysb debe contener el mismo OS y paquete de mantenimiento o nivel de tecnología que elsistema instalado. Si restaura una biblioteca libc.a desde una cinta mksysb que entra en conflictocon el nivel del sistema instalado, no podrá emitir mandatos.

3. Rearranque la máquina.4. Cuando aparezca la pantalla de iconos, o cuando oiga un pitido doble, pulse la tecla F1 varias veces

hasta que aparezca el menú Servicios de gestión del sistema.5. Seleccione Multiarranque.6. Seleccione Instalar desde.7. Seleccione el dispositivo de cinta que contiene mksysb y después seleccione Instalar.

Pueden pasar varios minutos antes de que aparezca la siguiente solicitud.8. Defina el sistema actual como la consola del sistema, para ello pulse la tecla F1 y después Intro.9. Seleccione el número del idioma preferido y pulse Intro.

10. Seleccione Iniciar Modalidad de Mantenimiento para Recuperación Sistema escribiendo 3 y pulseIntro.

11. Seleccione Acceder a un Grupo de volúmenes raíz. Se visualiza un mensaje que explica que nopodrá volver a los menús de instalación sin rearrancar si cambia el grupo de volúmenes raíz en estemomento.

12. Escriba 0 y pulse Intro.13. Escriba el número del grupo de volúmenes adecuado de la lista y pulse Intro.14. Seleccione Acceder a este grupo de volúmenes escribiendo 2 y pulse Intro.15. Monte los sistemas de archivos / (raíz) y /usr escribiendo los mandatos siguientes:

mount /dev/hd4 /mntmount /dev/hd2 /mnt/usrcd /mnt

16. Para restaurar el enlace simbólico para la biblioteca libc.a, si es necesario, escriba el siguientemandato:

ln -s /usr/ccs/lib/libc.a /mnt/usr/lib/libc.a

Tras ejecutar el mandato, efectúe una de las acciones siguientes:

• Si el mandato es satisfactorio, vaya al paso 20.• Si un mensaje visualiza que el enlace ya existe, continúe en el paso 17.

17. Establezca el tamaño de bloque de la unidad de cintas emitiendo los mandatos siguientes, donde Xes el número de la unidad de cintas adecuada.

tctl -f /dev/rmtX rewindtctl -f /dev/rmtX.1 fsf 1

Gestión del sistema operativo 33

Page 40: AIX Versión 7 - IBM

restbyname -xvqf /dev/rmtX.1 ./tapeblkszcat tapeblksz

Si el valor del mandato cat tapeblksz no es igual a 512, escriba los siguientes mandatos,sustituyendo Y por el valor del mandato cat tapeblksz:

ln -sf /mnt/usr/lib/methods /etc/methods/etc/methods/chgdevn -l rmtX -a block_size=Y

Debe recibir el mensaje de que rmtX se ha cambiado.18. Asegúrese de que la cinta está en la ubicación correcta para restaurar la biblioteca para ello escriba

los mandatos siguientes (donde X es el número de la unidad de cintas adecuada):

tctl -f /dev/rmtX rewindtctl -f /dev/rmtX.1 fsf 3

19. Restaure la biblioteca que falta utilizando uno de los mandatos siguientes (donde X es el número dela unidad de cintas adecuada):

• Para restaurar únicamente la biblioteca libc.a, escriba el mandato siguiente:

restbyname -xvqf /dev/rmtX.1 ./usr/ccs/lib/libc.a

• Para restaurar el directorio /usr/ccs/lib, escriba el mandato siguiente:

restbyname -xvqf /dev/rmtX.1 ./usr/ccs/lib

• Para restaurar el directorio /usr/ccs/bin, escriba el mandato siguiente:

restbyname -xvqf /dev/rmtX.1 ./usr/ccs/bin

20. Vacíe los datos en el disco escribiendo los mandatos siguientes:

cd /mnt/usr/sbin./sync;./sync;./sync

21. Desmonte los sistemas de archivos /usr y / (raíz) escribiendo los mandatos siguientes:

cd /umount /dev/hd2umount /dev/hd4

Si el mandato umount falla, efectúe el ciclo de encendido de esta máquina e inicie esteprocedimiento de nuevo.

22. Rearranque el sistema escribiendo el mandato siguiente:

reboot

Tras rearrancar el sistema, los mandatos del sistema operativo deben estar disponibles.

Nueva creación de una imagen de arranque dañadaEn el procedimiento siguiente se describe cómo identificar una imagen de arranque dañada y el modo devolverla a crear.

Si la máquina está en ejecución actualmente y sabe que la imagen de arranque se ha dañado o suprimido,vuelva a crear la imagen de arranque ejecutando el mandato bosboot con autorización de usuario.

Atención: No rearranque nunca el sistema si sospecha que la imagen de arranque está dañada.

En el procedimiento siguiente se da por supuesto que el sistema no rearranca correctamente debido aque la imagen de arranque está dañada. Si es posible, proteja el sistema de una posible pérdida de datoso funcionalidad; para ello, planifique el tiempo de inactividad cuando el impacto a la carga de trabajo seamenor.

34 AIX Versión 7.2: Gestión del sistema operativo

Page 41: AIX Versión 7 - IBM

La información de este procedimiento se ha probado utilizando versiones específicas de AIX. Losresultados que obtenga pueden variar significativamente dependiendo de la versión y el nivel de AIX.

1. Inserte el soporte del producto en la unidad adecuada.2. Encienda la máquina siguiendo las instrucciones que se proporcionan con el sistema.3. En el menú Servicios de gestión del sistema, seleccione Multiarranque.4. En la pantalla siguiente, seleccione Instalar desde.5. Seleccione el dispositivo que contiene el soporte del producto y, a continuación, seleccione Instalar.6. Seleccione el icono de versión de AIX.7. Siga las instrucciones en línea hasta que seleccione la modalidad que utiliza para la instalación. En

este punto, seleccione Iniciar Modalidad Mantenimiento para Recuperación Sistema.8. Seleccione Acceder a un Grupo de volúmenes raíz.9. Siga las instrucciones en línea hasta que seleccione Acceder a este grupo de volúmenes e iniciar un

shell.10. Utilice el mandato bosboot para volver a crear la imagen de arranque. Por ejemplo:

bosboot -a -d /dev/hdisk0

Si el mandato da error y recibe el mensaje siguiente:

0301-165 bosboot: WARNING! bosboot failed - do not attempt to boot device.

Intente resolver el problema utilizando una de las opciones siguientes y, a continuación, vuelva aejecutar el mandato bosboot hasta que haya creado una imagen de arranque satisfactoriamente:

• Suprima el volumen lógico de arranque predeterminado (hd5) y, a continuación, cree un nuevo hd5.

O bien

• Ejecute diagnósticos en el disco duro. Repare o sustituya, según proceda.

Si el mandato bosboot sigue dando error, póngase en contacto con el representante de soporte alcliente.

Atención: No rearranque la máquina si el mandato bosboot falla al crear una imagen dearranque.

11. Cuando el mandato bosboot sea satisfactorio, utilice el mandato reboot para rearrancar el sistema.

Conceptos relacionadosArranque del sistemaCuando se inicia el sistema operativo base, el sistema inicia un conjunto de tareas complejo. Bajocondiciones normales, estas tareas se realizan automáticamente.Información relacionadaMandato bosboot

Creación de una copia de seguridad en línea de un JFSAl crear una copia de seguridad en línea de un sistema de archivos de diario (JFS) o un sistema dearchivos de diario ampliado (JFS2) se crea una imagen estática del volumen lógico que contiene elsistema de archivos.

Para crear una copia de seguridad en línea de un JFS montado, se deben duplicar el volumen lógico enque reside el sistema de archivos y el volumen lógico en que reside el registro del mismo.

Nota: puesto que las grabaciones de archivo son asíncronas, es posible que la copia subdividida nocontenga todos los datos que se han grabado inmediatamente antes de la subdivisión. Las modificacionesque se inician después de iniciar la subdivisión pueden no estar presentes en la copia de seguridad. Por lotanto, se recomienda que la actividad del sistema de archivos sea mínima mientras tiene lugar laseparación.

Gestión del sistema operativo 35

Page 42: AIX Versión 7 - IBM

La información de este procedimiento se ha probado utilizando versiones específicas de AIX. Losresultados que obtenga pueden variar significativamente dependiendo de la versión y el nivel de AIX.

Para subdividir una copia duplicada del sistema de archivos /home/xyz en un nuevo punto de montajedenominado /jfsstaticcopy, escriba lo siguiente:

chfs -a splitcopy=/jfsstaticcopy /home/xyz

Para controlar la copia duplicada que desea que se utilice como copia de seguridad, utilice el atributocopy. La segunda copia duplicada es el valor predeterminado, si el usuario no especifica ninguna copia.Por ejemplo:

chfs -a splitcopy=/jfsstaticcopy -a copy=1 /home/xyz

En este punto, existe una copia de sólo lectura del sistema de archivos disponible en /jfsstaticcopy.En la copia de seguridad no se reflejan todos los cambios realizados en el sistema de archivos originaltras la subdivisión.

Para volver a integrar la imagen de subdivisión de JFS como una copia duplicada en el punto de montaje /testcopy, utilice el mandato siguiente:

rmfs /testcopy

El mandato rmfs elimina la copia del sistema de archivos del estado de subdivisión y permite volverla aintegrar como una copia duplicada.

Creación y copia de seguridad de una instantánea de un JFS2Se puede tomar una instantánea de un JFS2 montado que establezca una imagen de nivel de bloquecoherente del sistema de archivos en un punto en el tiempo.

La información de este procedimiento se ha probado utilizando versiones específicas de AIX. Losresultados que obtenga pueden variar significativamente dependiendo de la versión y el nivel de AIX.

La imagen instantánea permanece estable incluso mientras el sistema de archivos que se ha utilizadopara crearla, denominado SAinst, continúa cambiando. La instantánea conserva los mismos permisos deseguridad que tenía SAinst cuando se ha tomado la instantánea.

En el siguiente caso, cree una instantánea y haga una copia de seguridad de ella en un soporte extraíblesin desmontar ni inmovilizar el sistema de archivos, todo ello con un solo mandato: backsnap. Tambiénpuede utilizar la instantánea para otras finalidades, por ejemplo, para acceder a los archivos o directoriostal como eran cuando se ha tomado la instantánea. Puede seguir los distintos procedimientos deinstantánea utilizando el SMIT o los mandatos backsnap y snapshot.

Para crear una instantánea del sistema de archivos /home/abc/test y hacer una copia de seguridad dela misma (por nombre) en el dispositivo de cinta /dev/rmt0, utilice el mandato siguiente:

backsnap -m /tmp/snapshot -s size=16M -i f/dev/rmt0 /home/abc/test

Este mandato crea un volumen lógico de 16 megabytes para la instantánea del sistema de archivos JFS2(/home/abc/test). La instantánea se monta en /tmp/snapshot y luego se realiza una copia deseguridad de la misma, por nombre, en el dispositivo de cinta. Una vez finalizada la copia de seguridad, lainstantánea sigue estando montada. Utilice el distintivo -R con el mandato backsnap si desea eliminar lainstantánea cuando finalice la copia de seguridad.

Información relacionadaSistemas de archivosmandato backsnapmandato chfsmandato rmfsmandato snapshot

36 AIX Versión 7.2: Gestión del sistema operativo

Page 43: AIX Versión 7 - IBM

Creación y copia de seguridad de una instantánea externa de un JFS2Se puede tomar una instantánea de un JFS2 montado que establezca una imagen de nivel de bloquecoherente del sistema de archivos en un punto en el tiempo.

La imagen instantánea permanece estable incluso mientras el sistema de archivos que se ha utilizadopara crearla, denominado SAinst, continúa cambiando. La instantánea conserva los mismos permisos deseguridad que tenía SAinst cuando se ha tomado la instantánea.

En el siguiente caso, puede utilizar el mandato backsnap para crear una instantánea externa y hacer unacopia de seguridad de ella en un soporte extraíble sin desmontar ni inmovilizar el sistema de archivos.También puede utilizar la instantánea para otras finalidades, por ejemplo, para acceder a los archivos odirectorios tal como eran cuando se ha tomado la instantánea. Puede seguir los distintos procedimientosde instantánea utilizando el SMIT, o los mandatos backsnap y snapshot.

Para crear una instantánea externa del sistema de archivos /home/abc/test y hacer una copia deseguridad de la misma en el dispositivo de cinta /dev/rmt0, utilice el mandato siguiente:

backsnap -m /tmp/snapshot -s size=16M -if/dev/rmt0 /home/abc/test

El mandato anterior crea un volumen lógico de 16 MB para la instantánea del sistema de archivos JFS2 /home/abc/test. La instantánea se monta en el directorio /tmp/snapshot y luego se realiza una copiade seguridad de la instantánea, por nombre, en el dispositivo de cinta. Una vez finalizada la copia deseguridad, la instantánea se desmonta, pero sigue estando disponible. Utilice el distintivo -R con elmandato backsnap si desea eliminar la instantánea cuando finalice la copia de seguridad.

Información relacionadaSistemas de archivos

Creación y copia de seguridad de una instantánea interna de un JFS2Se puede tomar una instantánea de un JFS2 montado que establezca una imagen de nivel de bloquecoherente del sistema de archivos en un punto en el tiempo.

La imagen instantánea permanece estable incluso mientras el sistema de archivos que se ha utilizadopara crearla, denominado SAinst, continúa cambiando. La instantánea conserva los mismos permisos deseguridad que tenía SAinst cuando se ha tomado la instantánea.

En el siguiente caso, puede utilizar el mandato backsnap para crear una instantánea interna y hacer unacopia de seguridad de ella en un soporte extraíble sin desmontar ni inmovilizar el sistema de archivos.También puede utilizar la instantánea para otras finalidades, por ejemplo, para acceder a los archivos odirectorios tal como eran cuando se ha tomado la instantánea. Puede seguir los distintos procedimientosde instantánea utilizando el SMIT, o los mandatos backsnap y snapshot.

Para crear una instantánea interna del sistema de archivos /home/abc/test y hacer una copia deseguridad de la misma en el dispositivo de cinta /dev/rmt0, utilice el mandato siguiente:

backsnap -n mysnapshot -if/dev/rmt0 /home/abc/test

El mandato anterior crea una instantánea interna, llamada mysnapshot, del sistema de archivos /home/abc/test. Se accede a la instantánea desde el directorio /home/abc/test/.snapshot/mysnapshot y luego se hace una copia de seguridad en el dispositivo de cinta. Utilice el distintivo -R conel mandato backsnap si desea eliminar la instantánea cuando finalice la copia de seguridad.

Información relacionadaSistemas de archivos

Compresión de archivos (mandatos compress y pack)Utilice el mandato compress y el mandato pack para comprimir archivos para almacenarlos.

Utilice el mandato uncompress y el mandato unpack para expandir los archivos restaurados.

El proceso de compresión y expansión de archivos requiere tiempo; sin embargo, una vez empaquetadoslos archivos, los datos utilizan menos espacios en el soporte de copia de seguridad.

Para comprimir un sistema de archivos, utilice uno de los métodos siguientes:

Gestión del sistema operativo 37

Page 44: AIX Versión 7 - IBM

• Utilice el distintivo -p con el mandato backup.• Utilice los mandatos compress o pack.

A continuación se proporcionan algunas de las ventajas de la compresión de archivos:

• Ahorrar tiempo y dinero comprimiendo los archivos antes de enviarlos a través de una red.• Ahorrar almacenamiento y archivar los recursos del sistema:

– Comprima los sistemas de archivos antes de realizar copias de seguridad para ahorrar espacio en lacinta.

– Comprima los archivos de anotaciones cronológicas creados por los scripts de shell que se ejecutandurante la noche; es fácil hacer que el script comprima el archivo antes de que realice su salida.

– Comprima los archivos a los que actualmente no se accede. Por ejemplo, pueden comprimirse losarchivos que pertenecen a un usuario que se ha ausentado por un período de tiempo prolongado ycolocarlos en un archivador tar en disco o en cinta y restaurarlos posteriormente.

Nota:

• Durante la compresión, puede que el mandato compress no disponga de suficiente espacio de trabajoen el sistema de archivos. Este mandato crea los archivos comprimidos antes de suprimir cualquiera delos archivos no comprimidos, por lo tanto, necesita aproximadamente un 50% más de espacio que hade sumarse al tamaño total de los archivos.

• Puede que un archivo no pueda comprimirse porque ya se ha comprimido. Si el mandato compress nopuede reducir los tamaños de los archivos, el mandato no se ejecuta satisfactoriamente.

Consulte el mandato compress para ver los detalles acerca de los valores de retorno pero, en general,los problemas encontrados al comprimir archivos se pueden resumen en los siguientes:

• El mandato puede quedarse sin espacio de trabajo en el sistema de archivos mientras realiza lacompresión. Debido a que el mandato compress crea los archivos comprimidos antes de suprimircualquiera de los archivos no comprimidos, necesita entre un espacio adicional entre el 50 y el 100%del tamaño de cualquier archivo dado.

• Puede que un archivo no pueda comprimirse porque ya se ha comprimido. Si el mandato compress nopuede reducir el tamaño de archivo, falla.

Compresión de archivos utilizando el mandato compressUtilice el mandato compress para reducir el tamaño de los archivos utilizando la codificación Lempel-Zevcon capacidad de adaptación.

Cada archivo original especificado por el parámetro Archivo se sustituye por un archivo comprimido con laextensión .Z añadida a su nombre. El archivo compactado conserva la misma propiedad, modalidades yhoras y acceso de modificación que el archivo original. Si no se especifican archivos, la entrada estándarse comprime en la salida estándar. Si la compresión no reduce el tamaño de un archivo, se graba unmensaje en el error estándar y el archivo original no se sustituye.

Utilice el mandato uncompress para restaurar los archivos comprimidos a su formato original.

La cantidad de compresión depende del tamaño de la entrada, del número de bits por código queespecifique la variable Bits y de la distribución de las subseries comunes. Normalmente, el código fuentede texto inglés se reduce entre un 50 y un 60 por ciento. La compresión del mandato compress suele sermás compacta y su cálculo se realiza en menos tiempo que la compresión que realiza el mandato pack,que utiliza la codificación Huffman adaptable.

Por ejemplo, para comprimir el archivo foo y grabar el porcentaje de compresión en el error estándar,escriba lo siguiente:

compress -v foo

Compresión de archivos utilizando el mandato packUtilice el mandato pack para almacenar el archivo o archivos especificados por el parámetro Archivo enun formato comprimido utilizando la codificación Huffman.

38 AIX Versión 7.2: Gestión del sistema operativo

Page 45: AIX Versión 7 - IBM

El archivo de entrada se sustituye por un archivo empaquetado cuyo nombre deriva del nombre delarchivo original (Archivo.z), con las mismas modalidades de acceso, fechas de acceso y modificación ypropietario que el archivo original. El nombre del archivo de entrada no puede contener más de 253 bytespara que exista espacio para añadir el sufijo .z. Si el mandato pack se ejecuta satisfactoriamente, elarchivo original se elimina.

Utilice el mandato unpack para restaurar los archivos empaquetados a su formato original.

Si el mandato pack no puede crear un archivo más pequeño, detiene el proceso e informa de suimposibilidad de ahorrar espacio. (Generalmente, se produce una imposibilidad de ahorrar espacio conpequeños archivos o archivos con distribución de caracteres uniforme). La cantidad de espacio ahorradodependerá del tamaño del archivo de entrada y de la distribución de frecuencia de caracteres. Puesto queel árbol de descodificación forma la primera parte de cada archivo .z, no ahorrará espacio con losarchivos que tengan menos de tres bloques. Normalmente, los archivos de texto se reduce entre un 25 yun 40 por ciento.

El valor de salida del mandato pack es el número de archivos que no ha podido empaquetar. Elempaquetado no se efectúa en ninguna de estas condiciones:

• El archivo ya se ha empaquetado.• El nombre del archivo de entrada tiene más de 253 bytes.• El archivo tiene enlaces.• El archivo es un directorio.• El archivo no se puede abrir.• El empaquetado no guarda ningún bloque de almacenamiento.• Ya existe un archivo llamado Archivo.z.• El archivo .z no puede crearse.• Se ha producido un error de E/S durante el proceso.

Por ejemplo, para comprimir los archivos chap1 y chap2, escriba lo siguiente:

pack chap1 chap2

Esto comprime chap1 y chap2 y los sustituye por los archivos denominados chap1.z y chap2.z. Elmandato pack visualiza el porcentaje de reducción del tamaño de cada archivo.

Expansión de archivos comprimidos (mandatos uncompress y unpack)Utilice los mandatos uncompress y unpack para expandir archivos comprimidos.

Expansión de archivos utilizando el mandato uncompress

Utilice el mandato uncompress para restaurar los archivos originales que se han comprimido con elmandato compress. Cada archivo comprimido que especifica la variable Archivo se elimina y sesustituye por una copia ampliada. El archivo expandido tiene el mismo nombre que la versióncomprimida pero sin la extensión .Z. El archivo expandido conserva el mismo propietario,modalidades y horas de acceso y modificación que el archivos original. Si no se especifica ningúnarchivo, la entrada estándar se expande en la salida estándar.

Aunque es parecido al mandato uncompress, el mandato zcat siempre graba la salida expandida enla salida estándar.

Por ejemplo, para descomprimir el archivo foo, escriba lo siguiente:

uncompress foo

Expansión de archivos utilizando el mandato unpack

Utilice el mandato unpack para expandir los archivos que se han creado con el mandato pack. Paracada archivo especificado, el mandato unpack busca un archivo denominado Archivo.z. Si se tratade un archivo empaquetado, el mandato unpack lo sustituye por su versión expandida. El mandatounpack cambia el nombre del nuevo archivo eliminando el sufijo .z de Archivo. El nuevo archivo tiene

Gestión del sistema operativo 39

Page 46: AIX Versión 7 - IBM

las mismas modalidades de acceso, fechas de acceso y modificación y propietario que el archivoempaquetado original.

El mandato unpack sólo funciona en archivos que finalizan en .z. Como resultado, cuando seespecifica un nombre de archivo que no finaliza en .z, el mandato unpack añade el sufijo y busca enel directorio un nombre de archivo con ese sufijo.

El valor de la salida es el número de archivos que el mandato unpack no ha podido desempaquetar.Un archivo no se puede desempaquetar en cualquiera de las situaciones siguientes:

• El nombre del archivo (sin contar la .z) tiene más de 253 bytes.• El archivo no se puede abrir.• El archivo no es un archivo empaquetado.• Ya existe un archivo con el nombre del archivo desempaquetado.• No puede crearse el archivo desempaquetado.

Nota: El mandato unpack graba un aviso en el error estándar si el archivo que desempaqueta tieneenlaces. El nuevo archivo desempaquetado tiene un número de inodo (nodo de índice) distinto delarchivo empaquetado a partir del cual se ha creado. Sin embargo, cualquiera de los otros archivosenlazados con el número de inodo original del archivo empaquetado siguen existiendo y siguenestando empaquetados.

Por ejemplo, para desempaquetar los archivos empaquetados chap1.z y chap2.z, escriba losiguiente:

unpack chap1.z chap2

Con ello se expanden los archivos empaquetados chap1.z y chap2.z y se sustituyen por losarchivos denominados chap1 y chap2.

Nota: Puede especificar el mandato unpack con nombres de archivos con o sin el sufijo .z.

Copia de seguridad de la imagen del sistema y de grupos de volúmenes definidos por el usuariorootvg se almacena en un disco duro, o grupo de discos, y contiene los archivos de arranque, el BOS, lainformación de configuración y los productos de software opcionales. Normalmente un grupo devolúmenes definido por el usuario (también denominado grupo de volúmenes no rootvg) contiene archivosde datos y software de aplicaciones.

Puede hacer copia de seguridad de una imagen del sistema y grupos de volúmenes utilizando losprocedimientos del SMIT o mandatos. Una imagen de copia de seguridad sirve para dos finalidades. Unaes restaurar un sistema dañado utilizando la imagen de copia de seguridad del sistema. La otra estransferir el software instalado y configurado de un sistema a otros.

Los procedimientos del SMIT utilizando el mandato mksysb para crear una imagen de copia de seguridaden cinta o en un archivo que se pueda almacenar. Si elige la cinta, el programa de copia de seguridadgraba una imagen de arranque en la cinta, lo que la convierte en adecuada para la instalación.

Nota:

• Las cintas de arranque no se pueden crear ni utilizar en sistemas personales basados en PowerPC.• Si elige el método de SMIT para la copia de seguridad, primero debe instalar el catálogo de archivossysbr del paquete de software bos.sysmgt.

Conceptos relacionadosCopias de seguridadEn general, se conservan copias de seguridad de los datos del usuario y del sistema por si se eliminanaccidentalmente o se produce una anomalía de disco. Es más fácil gestionar las copias de seguridadcuando los datos del usuario se conservan separados de los datos del sistema.

Copia de seguridad de la imagen del sistema y grupos de volúmenes definidos por el usuarioPuede hacer copias de seguridad de la imagen del sistema y los grupos de volúmenes definidos por elusuario.

40 AIX Versión 7.2: Gestión del sistema operativo

Page 47: AIX Versión 7 - IBM

Antes de hacer copia de seguridad del grupo de volúmenes rootvg:

• Debe estar instalado todo el hardware, incluyendo los dispositivos externos, como las unidades decintas y de CD-ROM.

• Este procedimiento de copia de seguridad necesita el catálogo de archivos sysbr, que se encuentra enel paquete de software Herramientas y aplicaciones para la gestión del sistema BOS. Escriba elmandato siguiente para determinar si el catálogo de archivos sysbr está instalado en el sistema:

lslpp -l bos.sysmgt.sysbr

Si el sistema tiene instalado el catálogo de archivos sysbr, continúe los procedimientos de copia deseguridad.

Si el mandato lslpp no lista el catálogo de archivos sysbr, debe instalarlo antes de continuar elprocedimiento de copia de seguridad.

installp -agqXd dispositivo bos.sysmgt.sysbr

donde dispositivo es la ubicación del software; por ejemplo, /dev/rmt0 para una unidad de cintas.

Antes de hacer copia de seguridad de un grupo de volúmenes definido por el usuario:

• Antes de guardar un grupo de volúmenes, se debe activar y se deben montar los sistemas de archivos.

Atención: La ejecución del mandato savevg da lugar a la pérdida de todo el materialalmacenado previamente en el soporte de salida seleccionado.

• Asegúrese de que el dispositivo de copia de seguridad se ha limpiado recientemente para evitarerrores.

Los siguientes procedimientos describen cómo crear una imagen instalable del sistema.

Tareas de copia de seguridad del sistema

Tarea Vía rápida de SMIT Mandato o archivo

Copia de seguridad del grupo devolúmenes rootvg

1. Inicie la sesión como root.2. Monte los sistemas de

archivos para copia deseguridad.1smit mountfs

3. Desmonte los directorioslocales que están montadosen otro directorio local. smitumountfs

4. Debe disponer de un mínimode 8,8MB de espacio de discolibre en el directorio /tmp.2

5. Haga la copia de seguridad:smit mksysb

6. Proteja el soporte de copia deseguridad contra grabación.

7. Anote las contraseñas de rooty usuario cuya copia deseguridad se ha realizado.

1. Inicie la sesión como root.2. Monte los sistemas de archivos para

copia de seguridad.1 Consulte elmandato mount.

3. Desmonte los directorios locales queestán montados en otro directoriolocal. Consulte el mandato umount.

4. Debe disponer de un mínimo de8,8MB de espacio de disco libre en eldirectorio /tmp.2

5. Haga la copia de seguridad. Consulteel mandato mksysb.

6. Proteja el soporte de copia deseguridad contra grabación.

7. Anote las contraseñas de root yusuario cuya copia de seguridad se harealizado.

Verificación de una cinta decopia de seguridad3

smit lsmksysb

Gestión del sistema operativo 41

Page 48: AIX Versión 7 - IBM

Tareas de copia de seguridad del sistema (continuación)

Tarea Vía rápida de SMIT Mandato o archivo

Copia de seguridad de un grupode volúmenes definido por elusuario4

smit savevg 1. Modifique el tamaño del sistema dearchivos antes de hacer la copia deseguridad, si es necesario.5mkvgdata NombreGV despuésedite /tmp/vgdata/NombreGV/NombreGV.data

2. Guarde el grupo de volúmenes.Consulte el mandato savevg.

Nota:

1. El mandato mksysb no hace copia de seguridad de los sistemas de archivos montados en una redNFS.

2. El mandato mksysb necesita este espacio de trabajo durante toda la copia de seguridad. Utilice elmandato df, que informa en unidades de bloques de 512 bytes, para determinar el espacio libre deldirectorio /tmp. Utilice el mandato chfs para cambiar el tamaño del sistema de archivos, si esnecesario.

3. Este procedimiento lista el contenido de una cinta de copia de seguridad mksysb. La lista delcontenido verifica la mayoría de información de la cinta pero no verifica si se puede arrancar la cintapara instalaciones. La única manera de verificar que la imagen de arranque de una cinta mksysbfunciona correctamente es arrancando desde la cinta.

4. Si desea excluir archivos de un grupo de volúmenes definido por el usuario de la imagen de copia deseguridad, cree un archivo denominado /etc/exclude.nombre_grupo_volúmenes, dondenombre_grupo_volúmenes es el nombre del grupo de volúmenes cuya copia de seguridad desearealizar. Después edite /etc/exclude.nombre_grupo_volúmenes y especifique los patrones de losnombres de archivos que no desea incluir en la imagen de copia de seguridad. Los patrones de estearchivo se entran en los convenios de coincidencia de patrones del mandato grep para determinar losarchivos que se excluyen de la copia de seguridad.

5. Si elige modificar el archivo NombreGV.data para cambiar el tamaño de un sistema de archivos, nodebe especificar el distintivo -i ni el distintivo -m con el mandato savevg, porque se sobregraba elarchivo NombreGV.data.

Información relacionadaInstalación de productos de software opcionales y actualizaciones de servicioInstalación de copias de seguridad del sistema

Configuración anterior a la copia de seguridadConfigure el sistema de origen antes de crear una imagen de copia de seguridad de él. Sin embargo, sitiene previsto utilizar una imagen de copia de seguridad para realizar la instalación en otros sistemas dedestino configurados de manera distinta, cree la imagen antes de configurar el sistema de origen.

El sistema de origen es el sistema a partir del cual se crea la copia de seguridad. El sistema de destino esel sistema en el que se instala la copia de seguridad.

El programa de instalación sólo instala automáticamente el soporte de dispositivo necesario para laconfiguración de hardware de la máquina instalada. Por lo tanto, si utiliza una copia de seguridad delsistema para realizar la instalación en otras máquinas, es posible que deba instalar dispositivosadicionales en el sistema de origen antes de hacer la imagen de copia de seguridad y utilizarla parainstalar en uno o varios sistemas de destino.

Utilice la vía rápida de SMIT, smit devinst, para instalar el soporte de dispositivos adicionales en elsistema de origen.

• Si hay suficiente espacio de disco en los sistemas de origen y de destino, instale todo el soporte dedispositivos.

42 AIX Versión 7.2: Gestión del sistema operativo

Page 49: AIX Versión 7 - IBM

• Si el espacio de disco está limitado en los sistemas de origen o de destino, instale selectivamente elsoporte de dispositivos.

Una copia de seguridad transfiere las siguientes configuraciones del sistema de origen al sistema dedestino:

• Información de espacio de paginación• Información de volúmenes lógicos• Información de rootvg• Colocación de particiones lógicas (si ha seleccionado la opción de correlación).

Información relacionadaInstalación de software opcional y actualizaciones de servicioPersonalización de la instalación

Montajes y desmontajes del sistema de archivosAntes de realizar una copia de seguridad, debe montar todos los sistemas de archivos cuya copia deseguridad desea realizar y desmontar todos los sistemas de archivos cuya copia de seguridad no desearealizar.

El procedimiento de Métodos de copia de seguridad sólo hace copia de seguridad de los sistemas dearchivos montados en rootvg. Por lo tanto, debe montar todos los sistemas de archivos cuya copia deseguridad desea realizar antes de empezar. Similarmente, debe desmontar todos los sistemas dearchivos cuya copia de seguridad no desea realizar.

Este procedimiento de copia de seguridad hace dos copias de seguridad de los archivos si un directoriolocal está montado en otro directorio local del mismo sistema de archivos. Por ejemplo, si monta /tmpen /usr/tmp, se hacen dos copias de seguridad de los archivos del directorio /tmp. Esta duplicaciónpuede sobrepasar el número de archivos que un sistema de archivos puede contener, lo que puedeprovocar que falle una futura instalación de la imagen de copia de seguridad.

Consideraciones sobre la seguridad de las copias de seguridadSi instala una imagen de copia de seguridad en otros sistemas, es aconsejable que, por razones deseguridad, no copie las contraseñas y direcciones de red en los sistemas de destino.

También, al copiar las direcciones de red en un sistema de destino se crean direcciones duplicadas quepueden interrumpir las comunicaciones de red.

Restauración de imágenes de copia de seguridadAl instalar la imagen de copia de seguridad, el sistema comprueba si el sistema de destino tienesuficiente espacio de disco para crear todos los volúmenes lógicos almacenados en la copia de seguridad.Si hay suficiente espacio, se recupera toda la copia de seguridad. De lo contrario, la instalación se para yel sistema solicita que elija más discos duros de destino.

Los sistemas de archivos creados en el sistema de destino tienen el mismo tamaño que el que tenían endel sistema de origen, a menos que la variable SHRINK se establezca en yes en el archivo image.dataantes de hacer crear la imagen de copia de seguridad. Una excepción es el directorio /tmp, que se puedeincrementar para asignar suficiente espacio para el mandato bosboot. Para obtener información acercadel establecimiento de variables, consulte el archivo image.data.

Cuando el sistema termina de instalar la imagen de copia de seguridad, el programa de instalación vuelvea configurar el ODM en el sistema de destino. Si el sistema de destino no tiene exactamente la mismaconfiguración que el sistema de origen, el programa puede modificar los atributos de dispositivo en lossiguientes archivos del sistema de destino:

• Todos los archivos de /etc/objrepos que empiezan por Cu• Todos los archivos del directorio /dev.

Información relacionadaInstalación de copias de seguridad del sistema

Gestión del sistema operativo 43

Page 50: AIX Versión 7 - IBM

Implementación de copias de seguridad planificadasEste procedimiento describe cómo desarrollar y utilizar un script para realizar una copia de seguridadcompleta semanal y copias de seguridad incrementales diarias de archivos del usuario.

• La cantidad de datos que se planifican para la copia de seguridad no pueden exceder de una cintacuando se utiliza este script.

• Asegúrese de que la cinta está cargada en el dispositivo de copia de seguridad antes de que el mandatocron ejecute el script.

• Asegúrese de que el dispositivo está conectado y disponible, especialmente cuando utiliza scripts quese ejecutan por la noche. Utilice el mandato lsdev -C | pg para comprobar la disponibilidad.

• Asegúrese de que el dispositivo de copia de seguridad se ha limpiado recientemente para evitarerrores.

• Si hace copia de seguridad de sistemas de archivos que puedan estar en uso, desmóntelos primeropara evitar que el sistema de archivos se dañe.

• Compruebe el sistema de archivos antes de hacer la copia de seguridad. Utilice el procedimientodescrito en Verificación del sistema de archivos o ejecute el mandato fsck.

El script incluido en este procedimiento sólo está pensado como modelo y se debe adaptarcuidadosamente a las necesidades del sitio específico.

Conceptos relacionadosEstrategia de copia de seguridadHay dos métodos para hacer copia de seguridad de grandes cantidades de datos.

Copia de seguridad de sistemas de archivos utilizando el mandato cronEste procedimiento describe cómo escribir un script crontab que se puede pasar al mandato cron parasu ejecución.

El script hace copia de seguridad de dos sistemas de archivos del usuario, /home/plan y /home/run,las noches de lunes a sábado. Se hace copia de seguridad de ambos sistemas de archivos en una cinta, ycada mañana se inserta una nueva cinta para la noche siguiente. Las copias de seguridad del lunes por lanoche son archivados completos (nivel 0). Las copias de seguridad de martes a sábado sonincrementales.

1. El primer paso en la creación del script crontab es emitir el mandato crontab-e. Esto abre unarchivo vacío donde puede efectuar las entradas que se someten al script cron para que se ejecutencada noche (el editor por omisión es vi). Escriba:

crontab -e

2. El ejemplo siguiente muestra los seis campos de crontab. El campo 1 es para el minuto, el campo 2para la hora en formato de 24 horas, el campo 3 para el día del mes y el campo 4 para el mes del año.Los campos 3 y 4 contienen un * (asterisco) para indicar que el script se ejecuta cada mes del díaespecificado en el campo day/wk. El campo 5 es para el día de la semana, y también se puedeespecificar con un rango de días, por ejemplo, 1-6. El campo 6 es para el mandato de shell que se estáejecutando.

min hr day/mo mo/yr day/wk shell command

0 2 * * 1 backup -0 -uf /dev/rmt0.1 /home/plan

La línea de mandatos que se muestra supone que personal del sitio está disponible para responder alas solicitudes cuando sea adecuado. El distintivo -0 (cero) para el mandato backup indica el nivelcero, o copia de seguridad completa. El distintivo -u actualiza el registro de copia de seguridad en elarchivo /etc/dumpdates y el distintivo f especifica el nombre de dispositivo, un dispositivo de cintamagnética sin formato 0.1 como en el ejemplo anterior.

3. Escriba una línea similar a la del paso 2 para cada sistema de archivos cuya copia de seguridad serealiza un día específico. El ejemplo siguiente muestra un script completo que realiza seis días decopias de seguridad de dos sistemas de archivos:

44 AIX Versión 7.2: Gestión del sistema operativo

Page 51: AIX Versión 7 - IBM

0 2 * * 1 backup -0 -uf/dev/rmt0.1 /home/plan0 3 * * 1 backup -0 -uf/dev/rmt0.1 /home/run0 2 * * 2 backup -1 -uf/dev/rmt0.1 /home/plan0 3 * * 2 backup -1 -uf/dev/rmt0.1 /home/run0 2 * * 3 backup -2 -uf/dev/rmt0.1 /home/plan0 3 * * 3 backup -2 -uf/dev/rmt0.1 /home/run0 2 * * 4 backup -3 -uf/dev/rmt0.1 /home/plan0 3 * * 4 backup -3 -uf/dev/rmt0.1 /home/run0 2 * * 5 backup -4 -uf/dev/rmt0.1 /home/plan0 3 * * 5 backup -4 -uf/dev/rmt0.1 /home/run0 2 * * 6 backup -5 -uf/dev/rmt0.1 /home/plan0 3 * * 6 backup -5 -uf/dev/rmt0.1 /home/run

4. Guarde el archivo que ha creado y salga del editor. El sistema operativo pasa el archivo crontab alscript cron.

Información relacionadaArchivo especial rmt

Copia de seguridad de archivos de un sistema de archivos JFS2 gestionado por DMAPIHat opciones en los mandatos tar y backbyinode que permiten hacer copia de seguridad de losatributos ampliados (EA).

Con el mandato backbyinode en un sistema de archivos DMAPI, sólo se hace copia de seguridad de losdatos residentes en el sistema de archivos en el momento de emitir el mandato. El mandatobackbyinode examina el estado actual de los metadatos para realizar su trabajo. Esto puede serventajoso con DMAPI, porque hace copia de seguridad del estado del sistema de archivos gestionado. Sinembargo, no se hará copia de seguridad de ningún dato fuera de línea.

Para hacer copia de seguridad de todos los datos de un sistema de archivos DMAPI, utilice el mandatoque lea los archivos completos como, por ejemplo, el mandato tar. Esto puede hacer que una aplicaciónhabilitada para DMAPI restaure datos para cada archivo accedido por el mandato tar, moviendo losdatos una y otra vez entre el almacenamiento secundario y terciario, por lo que puede haberimplicaciones del rendimiento.

Formateo de disquetes (mandato format o fdformat)Puede formatear los disquetes de la unidad de disquetes especificada por el parámetro Dispositivo (eldispositivo /dev/rfd0 de forma predeterminada) con los mandatos format y fdformat.

Atención: El formateo de un disquete destruye los datos existentes en ese disquete.

El mandato format determina el tipo de dispositivo, que puede ser uno de los siguientes:

• Disquete de 5,25 pulgadas de baja densidad (360 KB), que contiene 40x2 pistas, cada una de las cualestiene 9 sectores

• Disquete de 5,25 pulgadas de gran capacidad (1,2 MB) que contiene 80x2 pistas, cada una de ellas con15 sectores

• Disquete de 3,5 pulgadas de baja densidad (720 KB), que contiene 80x2 pistas, cada una de las cualestiene 9 sectores

• Disquete de 3,5 pulgadas de gran capacidad (2,88 MB) que contiene 80x2 pistas, cada una de ellas con36 sectores

El tamaño de un sector es de 512 bytes para todos los tipos de disquetes.

Utilice el mandato format para formatear un disquete para alta densidad a menos que el parámetroDispositivo especifique una densidad diferente.

Utilice el mandato fdformat para formatear un disquete para baja densidad a menos que se especifiqueel distintivo -h . El parámetro Dispositivo especifica el dispositivo que contiene el disquete que se debeformatear (por ejemplo, el dispositivo /dev/rfd0 para la unidad 0).

Antes de formatear un disquete, los mandatos format y fdformat le solicitan que verifique la acción.Esto le permite finalizar la operación limpiamente si es necesario.

Vea los ejemplos siguientes:

Gestión del sistema operativo 45

Page 52: AIX Versión 7 - IBM

• Para formatear un disquete en el dispositivo /dev/rfd0, escriba lo siguiente:

format -d /dev/rfd0

• Para formatear un disquete sin comprobar si existen pistas con errores, escriba lo siguiente:

format -f

• Para formatear un disquete de 360 KB en una unidad de disquetes de 5,25 pulgadas y 1,2 MB deldispositivo /dev/rfd1, escriba lo siguiente:

format -l -d /dev/rfd1

• Para forzar el formateo de alta densidad de un disquete cuando se utiliza el mandato fdformat,escriba lo siguiente:

fdformat -h

Comprobación de la integridad de un sistema de archivos (mandato fsck)Utilice el mandato fsck para comprobar y reparar interactivamente las incoherencias de los sistemas dearchivos.

Es importante ejecutar este mandato en cada sistema de archivos como parte de la inicialización delsistema. Debe poder leer el archivo de dispositivo en el que reside el sistema de archivos (por ejemplo, eldispositivo /dev/hd0). Por lo general, el sistema de archivos es coherente y el mandato fsck sóloinforma acerca del número de archivos, de bloques no utilizados y de bloques libres del sistema dearchivos. Si el sistema de archivos no es coherente, el mandato fsck visualiza información acerca de lasincoherencias que ha encontrado y le solicita permiso para repararlas. Puede decirse que el mandatofsck es conservador en las operaciones de reparación que realiza e intenta evitar las acciones quepueden dar como resultado la pérdida de datos válidos. Sin embargo, en algunos casos, el mandato fsckrecomienda la destrucción de un archivo dañado.

Atención: Ejecute siempre el mandato fsck en los sistemas de archivos después de un malfuncionamiento del sistema. Las acciones de corrección puede dar como resultado la pérdida dealgunos datos. La acción predeterminada para cada corrección de coherencia consiste en esperara que el operador escriba yes o no. Si no tiene permiso de grabación para un archivo afectado, elmandato fsck asumirá de forma predeterminada la respuesta no.

Vea los ejemplos siguientes:

• Para comprobar todos los sistemas de archivos por omisión, escriba lo siguiente:

fsck

Esta forma del mandato fsck le solicita permiso antes de realizar un cambio en un sistema de archivos.• Para solucionar de forma automática problemas poco importantes en los sistemas de archivos por

omisión, escriba lo siguiente:

fsck -p

• Para comprobar el sistema de archivos /dev/hd1, escriba lo siguiente:

fsck /dev/hd1

Esto comprueba el sistema de archivos sin montar ubicado en el dispositivo /dev/hd1.

Nota: El mandato fsck no realiza correcciones en un sistema de archivos montado.

Copia en o desde disquetes (mandato flcopy)Utilice el mandato flcopy para copiar un disquete (abierto como /dev/rfd0) en un archivo denominadofloppy creado en el directorio actual.

46 AIX Versión 7.2: Gestión del sistema operativo

Page 53: AIX Versión 7 - IBM

Se visualiza el mensaje Cambie el disquete, pulse retorno cuando lo haya hecho segúnsea necesario. Entonces el mandato flcopy copia el archivo floppy en el disquete.

Vea los ejemplos siguientes:

• Para copiar /dev/rfd1 en el archivo floppy del directorio actual, escriba lo siguiente:

flcopy -f /dev/rfd1 -r

• Para copiar las 100 primeras pistas del disquete, escriba:

flcopy -f /dev/rfd1 -t 100

Copia de archivos en cinta o disco (mandato cpio -o)Utilice el mandato cpio -o para leer los nombres de las vías de acceso de los archivos de la entradaestándar y copiar estos archivos en la salida estándar, junto con los nombres de las vías de acceso y lainformación de estado.

Los nombres de vías de acceso no pueden tener más de 128 caracteres. Evite proporcionar al mandatocpio nombres de vías de acceso compuestos de muchos archivos con enlaces exclusivos, dado que esposible que no exista memoria suficiente para realizar el seguimiento de los nombres de las vías deacceso y podría perderse información de enlace.

Vea los ejemplos siguientes:

• Para copiar en un disquete los archivos del directorio actual cuyos nombres acaban en .c, escriba losiguiente:

ls *.c | cpio -ov >/dev/rfd0

El distintivo -v visualiza los nombres de cada uno de los archivos.• Para copiar el directorio actual y todos los subdirectorios en disquete, escriba lo siguiente:

find . -print | cpio -ov >/dev/rfd0

Esto guarda el árbol de directorios que empieza por el directorio actual (.) e incluye todos lossubdirectorios y archivos.

• Para utilizar una serie del mandato más corta, escriba lo siguiente:

find . -cpio /dev/rfd0 -print

La entrada -print visualiza el nombre de cada archivo a medida que éste se copia.

Copia de archivos de cinta o disco (mandato cpio -i)Utilice el mandato cpio -i para leer la entrada estándar de un archivo de archivado creado por elmandato cpio -o y copiar los archivos que contiene cuyos nombres coinciden con el parámetro Patrón.

Estos archivos se copian en el árbol de directorios actual. Puede listar más de un parámetro Patrónutilizando la notación de nombre de archivo descrito en el mandato ksh. El valor predeterminado para elparámetro Patrón es un asterisco (*), que selecciona todos los archivos del directorio actual. En unaexpresión como, por ejemplo [a-z], el guión (-) significa hasta, según el orden de clasificación actual.

Nota: Los patrones "*.c" y "*.o" se deben especificar entre comillas para evitar que el shell trate elasterisco (*) como un carácter de coincidencia de patrones. Se trata de un caso especial en el que elpropio mandato cpio descodifica los caracteres de patrones de coincidencia.

Vea los ejemplos siguientes:

• Para listar los archivos que se han guardado en un disquete mediante el mandato cpio, escriba losiguiente:

cpio -itv </dev/rfd0

Gestión del sistema operativo 47

Page 54: AIX Versión 7 - IBM

Esto visualiza la tabla de contenido de los datos que se han guardado previamente en el archivo /dev/rfd0 en el formato del mandato cpio. El listado es parecido al largo listado de directorios que generael mandato ls -l.

• Para listar únicamente los nombres de vías de acceso, utilice solamente los distintivos -it.• Para copiar los archivos que se han guardado anteriormente mediante el mandato cpio desde un

disquete, escriba lo siguiente:

cpio -idmv </dev/rfd0

Esto copia los archivos que el mandato cpio ha guardado previamente en el archivo /dev/rfd0 denuevo en el sistema de archivos (especifique el distintivo -i). El distintivo -d permite que el mandatocpio cree los directorios adecuados si se guarda el árbol de directorios. El distintivo -m conserva lahora de la última modificación que tenía aplicación en el momento de guardarse los archivos. Eldistintivo -v hace que el mandato cpio visualice el nombre de cada archivo mientras se copia.

• Para copiar los archivos seleccionados de un disquete, escriba lo siguiente:

cpio -i "*.c" "*.o" </dev/rfd0

Con ello se copiarán los archivos que acaban en .c o .o del disquete.

Copia en o desde cintas (mandato tcopy)Utilice el mandato tcopy para copiar cintas magnéticas.

Por ejemplo, para copiar desde una cinta de modalidad continua en una cinta de 9 pistas, escriba losiguiente:

tcopy /dev/rmt0 /dev/rmt8

Comprobación de la integridad de una cinta (mandato tapechk)Utilice el mandato tapechk para realizar una comprobación básica de coherencia en un dispositivo decintas de modalidad continua conectado.

Simplemente leyendo una cinta puede detectar algunas anomalías de hardware de una unidad de cintade modalidad continua. El mandato tapechk proporciona un modo de realizar lecturas en los archivos deuna cinta.

Por ejemplo, para comprobar los tres primeros archivos de un dispositivo de cintas de modalidadcontinua, escriba lo siguiente:

tapechk 3

Archivador de archivos (mandato tar)El método de copia de seguridad de archivado se utiliza para realizar una copia de uno o varios archivos ode toda una base de datos que se guarda para consultarla en el futuro, con finalidades históricas o para larecuperación si se dañan o pierden los datos originales.

Normalmente, un archivador se utiliza cuando se eliminan dichos datos específicos del sistema.

Utilice el mandato tar para grabar archivos o recuperar archivos de un almacenamiento de archivar. Elmandato tar busca archivadores en el dispositivo por omisión (por lo general, el dispositivo de cintas), amenos que especifique otro dispositivo.

Cuando se graba en un archivado, el mandato tar utiliza un archivo temporal (el archivo /tmp/tar*) ymantiene en memoria una tabla de archivos con varios enlaces. Recibirá un mensaje de error si elmandato tar no puede crear el archivo temporal o si no hay suficiente memoria disponible para darcabida a las tablas de enlaces.

Vea los ejemplos siguientes:

48 AIX Versión 7.2: Gestión del sistema operativo

Page 55: AIX Versión 7 - IBM

• Para grabar los archivos file1 y file2 en un nuevo archivador en la unidad de cintas por omisión,escriba lo siguiente:

tar -c file1 file2

• Para extraer todos los archivos del directorio /tmp del archivo archivador del dispositivo decintas /dev/rmt2 y utilizar la hora de extracción como la hora de modificación, escriba lo siguiente:

tar -xm -f/dev/rmt2 /tmp

• Para visualizar los nombres de los archivos del archivo archivador de disco out.tar del directorioactual, escriba lo siguiente:

tar -vtf out.tar

Copia de seguridad de archivosUtilice el mandato backup o el mandato smit para crear copias de los archivos en un soporte de copia deseguridad como, por ejemplo, una cinta magnética o un disquete.

Atención: Si intenta realizar una copia de seguridad de un sistema de archivos montado, sevisualizará un mensaje. El mandato backup seguirá ejecutándose, pero pueden producirseincoherencias en el sistema de archivos. Esta situación no se aplica al sistema de archivos raíz (/).

Las copias que ha creado con el mandato backup o el mandato smit están en uno de los siguientesformatos de copia de seguridad:

• Archivos específicos cuya copia de seguridad se ha realizado por nombre, utilizando el distintivo -i.• Sistema de archivos completo cuya copia de seguridad se ha realizado por número de i-nodo, utilizando

los parámetros -Nivel y SistemaArchivos.

Nota:

– Cuando se modifica un archivo durante la realización de la copia de seguridad del sistema, siempreexiste la posibilidad de que se dañen los datos. Por lo tanto, asegúrese de que la actividad delsistema está al mínimo durante el procedimiento de realización de la copia de seguridad del sistema.

– Si la copia de seguridad se realiza en una cinta de 8 mm con el tamaño de bloque de dispositivoestablecido en 0 (cero), no será posible restaurar directamente los datos desde la cinta. Si harealizado copias de seguridad con el valor 0, puede restaurar datos a partir de ellas utilizando losprocedimientos especiales que se describen en el mandato restore.

Atención: Asegúrese de que los distintivos que especifica coinciden con el soporte de copia deseguridad.

Copia de seguridad de archivos utilizando el mandato backupUtilice el mandato backup para crear copias de los archivos en el soporte de copia de seguridad.

Por ejemplo, para realizar la copia de seguridad de los archivos seleccionados en el directorio $HOME pornombre, escriba lo siguiente:

find $HOME -print | backup -i -v

El distintivo -i solicita al sistema que lea en la salida estándar los nombres de los archivos cuya copia deseguridad va a realizarse. El mandato find genera una lista de archivos en el directorio del usuario. Estalista se interconecta con el mandato backup como entrada estándar. El distintivo -v visualiza un informede progreso a medida que se copia cada archivo. Se hace copia de seguridad de los archivos en eldispositivo de seguridad por omisión para el sistema local.

Vea los ejemplos siguientes:

• Para realizar una copia de seguridad del sistema de archivos raíz, escriba lo siguiente:

backup -0 -u /

Gestión del sistema operativo 49

Page 56: AIX Versión 7 - IBM

El nivel 0 y / indican al sistema que debe realizar la copia de seguridad del sistema de archivos / (raíz).La copia de seguridad del sistema de archivos se realiza en el archivo /dev/rfd0. El distintivo -u indicaal sistema que actualice el registro de nivel de copia de seguridad actual en el archivo /etc/dumpdates.

• Para realizar una copia de seguridad de todos los archivos del sistema de archivos / (raíz) que se hanmodificado desde la realización de la última copia de seguridad de nivel 0, escriba lo siguiente:

backup -1 -u /

Realización de la copia de seguridad de archivos utilizando el mandato smitUtilice el mandato smit para ejecutar el mandato backup, que crea copias de los archivos en el soportede copia de seguridad.

1. En el indicador de mandatos, escriba lo siguiente:

smit backup

2. Escriba el nombre de la vía de acceso del directorio en el que suele estar montado el sistema dearchivos en el campo del nombre completo de la vía de acceso del directorio, DIRECTORY:

/home/bill

3. En el campo de dispositivo de copia de seguridad BACKUP o en el campo de archivo FILE, escriba elnombre del dispositivo de salida, tal como se muestra en el ejemplo siguiente que corresponde a undispositivo de cinta magnética sin procesar:

/dev/rmt0

4. Utilice el tabulador para conmutar entre la activación y la desactivación del campo opcional degeneración de un informe de cada fase de la copia de seguridad, REPORT each phase, si desea quelos mensajes de error aparezcan en pantalla.

5. En un entorno de gestión de sistemas, utilice el valor predeterminado para el campo de númeromáximo de bloques que han de grabarse en un soporte de copia de seguridad (MAX number of blocksto write on backup medium) puesto que este campo no se aplica a las copias de seguridad en cinta.

6. Pulse Intro para realizar la copia de seguridad del directorio o del sistema de archivos especificado.7. Ejecute el mandato restore -t.

Si este mandato genera un mensaje de error, deberá repetir la copia de seguridad completa.

Cierre del sistemaEl mandato shutdown es la manera más segura y minuciosa de detener el sistema operativo.

Puede desear cerrar el sistema:

• Tras instalar un nuevo software o cambiar la configuración para el software existente• Cuando existe un problema de hardware• Cuando el sistema se ha colgado irrevocablemente• Cuando el rendimiento del sistema se ha degradado• Cuando posiblemente el sistema de archivos esté dañado.

Cuando se designan los distintivos adecuados, este mandato notifica a los usuarios que el sistema está apunto de cerrarse, mata todos los procesos existentes, desmonta los sistemas de archivos y detiene elsistema. Consulte el mandato shutdown para obtener más información.

Lea la siguiente información para obtener detalles sobre situaciones concretas de cierre del sistema:

Cierre del sistema sin rearranqueHay dos maneras de cerrar el sistema sin rearrancar.

50 AIX Versión 7.2: Gestión del sistema operativo

Page 57: AIX Versión 7 - IBM

Puede utilizar dos métodos para cerrar el sistema sin rearrancar: la vía rápida de SMIT o el mandatoshutdown.Requisitos previos

Debe tener autorización de usuario root para cerrar el sistema.

Para cerrar el sistema utilizando SMIT:

1. Inicie la sesión como root.2. En el indicador de mandatos, escriba:

smit shutdown

Para cerrar el sistema utilizando el mandato shutdown:

1. Inicie la sesión como root.2. En el indicador de mandatos, escriba:

shutdown

Cierre del sistema para la modalidad de un solo usuarioEn algunos casos, puede que deba cerrar el sistema y entrar en modalidad de un solo usuario pararealizar el mantenimiento de software y los diagnósticos.

1. Escriba cd / para pasar al directorio raíz.Debe estar en el directorio raíz para cerrar el sistema para la modalidad de un solo usuario a fin degarantizar que los sistemas de archivos se desmonten ordenadamente.

2. Escriba shutdown -m.El sistema se cierra para la modalidad de un solo usuario.

Se visualiza una solicitud del sistema y puede realizar actividades de mantenimiento.

Cierre del sistema en una emergenciaUtilice el mandato shutdown para detener el sistema rápidamente sin notificar a los demás usuarios.

Puede utilizar el mandato shutdown para cerrar el sistema bajo condiciones de emergencia.

Escriba shutdown -F. El distintivo -F da instrucciones al mandato shutdown para que omita el envío demensajes a otros usuarios y cierre el sistema tan rápido como sea posible.

Entorno del sistemaEl entorno del sistema es principalmente el conjunto de variables que definen o controlan determinadosaspectos de la ejecución del proceso.

Se establecen o restablecen cada vez que se inicia un shell. Desde el punto de vista de la gestión delsistema, es importante asegurarse de que el usuario está configurado con los valores correctos en elinicio de sesión. La mayoría de estas variables se establecen durante la inicialización del sistema. Susdefiniciones se leen del archivo /etc/profile o se establecen de forma predeterminada.

PerfilesEl shell utiliza dos tipos de archivos de perfil cuando se inicia la sesión en el sistema operativo.

El shell evalúa los mandatos contenidos en los archivos y a continuación ejecuta los mandatos paraconfigurar el entorno del sistema. Los archivos tienen funciones similares excepto en que elarchivo /etc/profile controla las variables de perfil para todos los usuarios de un sistema mientrasque el archivo .profile permite personalizar su propio entorno.

Se proporciona el siguiente perfil e información del entorno del sistema:

• Archivo /etc/profile• Archivo .profile• Configuración de variables del entorno del sistema

Gestión del sistema operativo 51

Page 58: AIX Versión 7 - IBM

• Cambio del mensaje del día• “Servicios de manipulación de datos de tiempo” en la página 52.

Archivo /etc/profile

El primer archivo que el sistema operativo utiliza al iniciar la sesión es el archivo /etc/profile. Estearchivo controla las variables predeterminadas de todo el sistema como, por ejemplo:

• Variables de exportación• Máscara de creación de archivos (umask)• Tipos de terminal• Mensajes de correo para indicar cuándo ha llegado nuevo correo.

El administrador del sistema configura el archivo profile para todos los usuarios del sistema.Únicamente el administrador del sistema puede modificar este archivo.

Archivo .profile

El segundo archivo que el sistema operativo utiliza al iniciar la sesión es el archivo .profile. Elarchivo .profile está presente en el directorio inicial ($HOME) y permite personalizar el entorno detrabajo individual. El archivo .profile también prevalece sobre los mandatos y variablesestablecidas en el archivo /etc/profile. Puesto que el archivo .profile está oculto, utilice elmandato ls -a para listarlo. Utilice el archivo .profile para controlar los siguientes valorespredeterminados:

• Shells que han de abrirse• Aspecto del indicador• Variables de entorno (por ejemplo, variables de entorno de búsqueda)• Sonido del teclado

El siguiente ejemplo muestra un archivo .profile típico:

PATH=/usr/bin:/etc:/home/bin1:/usr/lpp/tps4.0/user:/home/gsc/bin::epath=/home/gsc/e3:export PATH epathcsh

En este ejemplo, se definen dos vías de acceso (PATH y epath), se exportan y se abre un shell C(csh).

También puede utilizar el archivo .profile (o si no está presente, el archivo .profile) paradeterminar las variables de shell de inicio de sesión. También puede personalizar otros entornos deshell. Por ejemplo, utilice los archivos .chsrc y .kshrc para adaptar un shell C y un shell Korn,respectivamente, al iniciar cada tipo de shell.

Servicios de manipulación de datos de tiempoLas funciones de tiempo acceden y vuelven a formatear la fecha y la hora actuales del sistema.

No es necesario que especifique ningún distintivo especial para que el compilador utilice las funciones detiempo. Incluya el archivo de cabecera para estas funciones en el programa. Para incluir un archivo decabecera, utilice la sentencia siguiente:

#include <time.h>

Los servicios de tiempo son los siguientes.

Elemento Descripción

adjtime Corrige la hora para permitir la sincronización del relojdel sistema.

52 AIX Versión 7.2: Gestión del sistema operativo

Page 59: AIX Versión 7 - IBM

Elemento Descripción

ctime, localtime, gmtime, mktime,difftime, asctime, tzset

Convierte la fecha y la hora en una representación deserie.

getinterval, incinterval, absinterval,resinc, resabs, alarm, ualarm, getitimer,setitimer

Manipula el tiempo de caducidad de lostemporizadores de intervalos.

gettimer, settimer, restimer, stime,time

Obtiene o establece el valor correcto para eltemporizador especificado de todo el sistema.

gettimerid Asigna un temporizador de intervalos por proceso.

gettimeofday, settimeofday, ftime Obtiene y establece la fecha y la hora.

nsleep, usleep, sleep Suspende la ejecución de un proceso actual.

reltimerid Libera un temporizador de intervalos asignadopreviamente.

Catálogos de archivos y hardware necesarios para la modalidad de 64 bitsEl kernel se ejecuta en modalidad de 64 bits, lo que permite un acceso rápido a grandes cantidades dedatos y el manejo eficaz de tipos de datos de 64 bits.

El catálogo de archivos de tiempo de ejecución de 64 bits del sistema operativo base es bos.64bit. Lainstalación de bos.64bit también instala el archivo /etc/methods/cfg64. El archivo /etc/methods/cfg64 es un mandato que habilita el entorno de tiempo de ejecución de 64 bits. Este mandatose invoca mediante el script rc.boot durante la fase 3 del proceso de arranque.

Desde AIX 6.1, el kernel de 32 bits ha quedado obsoleto. Al instalar el sistema operativo base AIX 6.1 sehabilita la modalidad de 64 bits.

Nota: El hardware debe dar soporte a 64 bits para poder ejecutar AIX 6.1. Los siguientes modelos de RS/6000 utilizan procesadores 604e y no dan soporte a 64 bits:

• 7025 Serie F50• 7026 Serie H50• 9076 Serie H50• 7043 Serie 150• 7046 Serie B50

Para verificar la capacidad del procesador, ejecute el mandato siguiente:

/usr/sbin/prtconf -c

El mandato prtconf devuelve 32 ó 64, en función de la capacidad del procesador. Si el sistema no tieneel mandato prtconf, puede utilizar el mandato bootinfo con el distintivo -y.

Hardware necesario para la modalidad de 64 bitsDebe tener un hardware de 64 bits para ejecutar aplicaciones de 64 bits.

Para determinar si el sistema tiene una arquitectura de hardware de 32 bits o 64 bits:

1. Inicie la sesión como usuario root.2. En la línea de mandatos, especifique bootinfo -y.

Esto produce la salida de 32 o 64, según si la arquitectura de hardware es de 32 o de 64 bits. Además, sientra lsattr -El proc0 en cualquier versión de AIX, se visualiza el tipo de procesador para elservidor.

Gestión del sistema operativo 53

Page 60: AIX Versión 7 - IBM

Comparaciones del rendimiento de 32 bits y 64 bitsEn la mayoría de casos, la ejecución de aplicaciones de 32 bits en hardware de 64 bits no es un problema,ya que el hardware de 64 bits puede ejecutar software de 61 y 32 bits. Sin embargo, el hardware de 32bits no puede ejecutar software de 64 bits.

Para averiguar si existe algún problema de rendimiento para aplicaciones que se ejecutan en el sistema,consulte las guías del usuario de las aplicaciones para ver su entorno de ejecución recomendado.

Desasignación del procesador dinámicoAIX puede detectar y dejar de utilizar automáticamente un procesador anómalo.

A partir del tipo de máquina 7044 modelo 270, el hardware de todos los sistemas con dos o másprocesadores puede detectar errores corregibles, que el firmware reúne. Estos errores no son muy gravesy, siempre que se produzcan en raras ocasiones, se pueden ignorar sin problemas. Sin embargo, cuandoparezca que se está desarrollando un patrón de anomalías en un procesador específico, este patrónpuede indicar que es probable que el componente manifieste una anomalía muy grave en un futuropróximo. El firmware realiza esta previsión basándose en las velocidades de las anomalías y el análisis delos umbrales.

En estos sistemas, AIX implementa una supervisión continua del hardware y sondea regularmente elfirmware para ver si existen errores de hardware. Cuando el número de errores de procesador alcanza unumbral y el firmware reconoce que hay una clara probabilidad de que este componente del sistema falle,el firmware devuelve un informe de errores. En todos los casos, el error se anota cronológicamente en elregistro de errores del sistema. Además, en sistemas de multiprocesador, según el tipo de anomalía, AIXintenta dejar de utilizar el procesador no fiable y desasignarlo. Esta característica se denominaDesasignación del procesador dinámico.

En este punto, el firmware también coloca un distintivo en el procesador para la desasignaciónpermanente en rearranques subsiguientes, hasta que el personal de mantenimiento sustituya elprocesador.

Impacto de la desasignación del procesador en aplicacionesLa desasignación del procesador es transparente para la amplia mayoría de aplicaciones, incluyendo loscontroladores y extensiones de kernel. Sin embargo, puede utilizar las interfaces publicadas paradeterminar si una aplicación o extensión de kernel está en ejecución en una máquina multiprocesador,averiguar cuántos procesadores hay y vincular hebras a procesadores específicos.

La interfaz bindprocessor para vincular procesos o hebras a procesadores utiliza los números de CPU devinculación. Los números de CPU de vinculación están en el rango [0..N-1] donde N es el número total deCPU. Para evitar interrumpir aplicaciones o extensiones de kernel que supongan que no hay "agujeros" enla numeración de CPU, AIX hace que siempre aparezca para las aplicaciones como si fuera la "última"(número más alto) CPU de vinculación que se debe desasignar. Por ejemplo, en un SMP de 8 vías, losnúmeros de CPU de vinculación son [0..7]. Si se desasigna un procesador, el número total de CPUdisponibles se convierte en 7, y se numeran [0..6]. Externamente, parece como si la CPU 7 hubiesedesaparecido, sin tener en cuenta qué procesador físico ha fallado.

Nota: En el resto de esta descripción, el término CPU se utiliza para la entidad lógica y el términoprocesador para la entidad física.

Potencialmente, las aplicaciones o las extensiones kernel que son procesos o hebras de vinculación sepodrían interrumpir si AIX terminase silenciosamente sus hebras vinculadas o las moviese a la fuerza aotra CPU cuando uno de los procesadores necesitase la desasignación. Desasignación del procesadordinámico proporciona interfaces de programación para que se pueda notificar a estas aplicaciones yextensiones de kernel que está a punto de producirse una desasignación de un procesador. Cuando estasaplicaciones y extensiones de kernel reciben la notificación, son responsables de retirar sus hebrasvinculadas y recursos asociados (por ejemplo, bloques de petición de temporizador) del último ID de CPUde vinculación y de adaptarse a la nueva configuración de CPU.

Tras la notificación, si algunas hebras permanecen vinculadas al último ID de CPU de vinculación, ladesasignación se cancela anormalmente, ésta se anota cronológicamente en el registro de errores y AIXcontinúa utilizando el procesador defectuoso. Cuando, por último, el procesador falla, provoca una

54 AIX Versión 7.2: Gestión del sistema operativo

Page 61: AIX Versión 7 - IBM

anomalía total del sistema. Por lo tanto, es importante que las aplicaciones o extensiones de kernelreciban la notificación de la desasignación inminente del procesador y que actúen en base a este aviso.

Incluso en los raros casos que la desasignación no se puede llevar a cabo, Desasignación del procesadordinámico sigue ofreciendo avisos avanzados a los administradores del sistema. Al anotarcronológicamente el error en el registro de errores, les da la oportunidad de planificar una operación demantenimiento en el sistema para sustituir el componente defectuoso antes de que se produzca unaanomalía global del sistema.

Proceso de desasignación del procesadorAIX puede detener un procesador que falla mediante su desasignación.

El flujo de sucesos típico para la desasignación del procesador es el siguiente:

1. El firmware detecta que un procesador ha alcanzado un umbral de error recuperable.2. El informe de errores del firmware se anota cronológicamente en el registro de errores del sistema y,

cuando AIX se ejecuta en una máquina que soporta la desasignación del procesador, AIX inicia elproceso de desasignación.

3. AIX lo notifica a los procesos que no son de kernel y las hebras vinculadas a la última CPU devinculación.

4. AIX espera hasta diez minutos para que todas las hebras vinculadas se retiren de la última CPU devinculación. Si las hebras permanecen vinculadas, AIX termina anormalmente la desasignación.

5. Si todos los procesos o hebras se desvinculan desde el procesador defectuoso, se invocan a losManejadores de sucesos de alta disponibilidad (HAEH) registrados previamente. Un HAEH puededevolver un error que termine anormalmente la desasignación.

6. A menos que termine anormalmente, el proceso de desasignación detiene en último lugar elprocesador que falla.

Si se produce una anomalía en algún punto de la desasignación, la anomalía y su causa se anotancronológicamente. El administrador del sistema puede consultar el registro de errores, efectuar la accióncorrectora (cuando sea posible) y reiniciar la desasignación. Por ejemplo, si la desasignación se haterminado anormalmente debido a que una aplicación no ha desvinculado sus hebras, el administradordel sistema puede detener la aplicación, reiniciar la desasignación y, después, reiniciar la aplicación.

Habilitación de la Desasignación del procesador dinámicoSi la máquina soporta la Desasignación del procesador dinámico, puede utilizar SMIT o los mandatos delsistema para activar o desactivar la característica.

La Desasignación del procesador dinámico se habilita de forma predeterminada durante la instalación,siempre que la máquina tenga el hardware y el firmware correctos para soportarla.

Procedimiento de vía rápida de SMIT

1. Con autorización de root, escriba smit system en el indicador del sistema, después pulse Intro.2. En la ventana Entorno del sistema, seleccione Cambiar / Mostrar características del sistema

operativo.3. Utilice los diálogos de SMIT para completar la tarea.

Para obtener información adicional para completar la tarea, puede seleccionar la tecla de ayuda F1 en losdiálogos de SMIT.

Procedimientos de mandatosCon autorización de root, puede utilizar los mandatos siguientes para trabajar con la Desasignación delprocesador dinámico:

• Utilice el mandato chdev para cambiar las características del dispositivo especificado.• Si la desasignación del procesador falla por alguna razón, puede utilizar el mandato ha_star para

reiniciar después de arreglarlo.

Gestión del sistema operativo 55

Page 62: AIX Versión 7 - IBM

• Utilice el mandato errpt para generar un informe de los errores registrados.

Métodos de activar y desactivar la desasignación del procesadorDesasignación del procesador dinámico se puede habilitar o inhabilitar cambiando el valor del atributocpuguard del objeto ODM sys0.

Los valores posibles para el atributo son enable y disable.

El valor predeterminado es enabled (el atributo cpuguard tiene el valor de enable). Losadministradores del sistema que deseen inhabilitar esta característica deben utilizar los menús delsistema, el menú Entornos del sistema de SMIT, o el mandato chdev. (En versiones anteriores de AIX, elvalor predeterminado era disabled).

Nota: Si la desasignación del procesador se ha desactivado (inhabilitado), los errores se siguenregistrando. El registro de errores contendrá un error como CPU_FAILURE_PREDICTED, que indica quese ha notificado a AIX un problema con una CPU.

Reinicio de una desasignación de procesador terminada anormalmenteA veces, la desasignación del procesador falla porque una aplicación no ha retirado sus hebras vinculadasde la última CPU lógica.

Después de arreglar este problema, ya sea desvinculando (cuando sea seguro hacerlo) o deteniendo laaplicación, el administrador del sistema puede reiniciar el proceso de desasignación del procesadorutilizando el mandato ha_star.

La sintaxis de este mandato es:

ha_star -C

donde -C es para un suceso de anomalía previsible de CPU.

Consideraciones sobre el estado del procesadorHay varios puntos que se deben tener en cuenta acerca de los estados del procesador.

Los procesadores físicos se representan en la base de datos ODM por objetos denominados procn donden es un número decimal que representa el número de procesador físico. Como cualquier otro dispositivorepresentado en la base de datos ODM, los objetos del procesador tienen un estado como, por ejemploDefinido/Disponible, y atributos.

El estado de un objeto proc siempre es Disponible mientras el procesador correspondiente esté presente,sin tener en cuenta si se puede utilizar. El atributo state del objeto proc indica si el procesador se utilizay, si no, la razón. Este atributo puede tener tres valores.

Elemento Descripción

enable El procesador se utiliza.

disable El procesador se ha desasignado dinámicamente.

faulty El firmware ha declarado defectuoso el procesador en tiempo de inicio.

Si un procesador defectuoso se desasigna satisfactoriamente, su estado pasa de enable a disable.Independientemente de AIX, también se indica que este procesador es defectuoso en el firmware. En elrearranque, el procesador desasignado no estará disponible y su estado se establecerá en faulty. Sinembargo, el objeto proc ODM, seguirá marcado como Disponible. Debe extraer físicamente la CPUdefectuosa de la placa del sistema o extraer la placa de CPU (si es posible) del objeto proc para cambiarloa Definido.

En el ejemplo siguiente, el procesador proc4 funciona correctamente y el sistema operativo lo utiliza, talcomo se muestra en la salida siguiente:

# lsattr -EH -l proc4 attribute value description user_settable

state enable Processor state False

56 AIX Versión 7.2: Gestión del sistema operativo

Page 63: AIX Versión 7 - IBM

type PowerPC_RS64-III Processor type False #

Cuando el procesador proc4 obtiene una anomalía previsible, el sistema operativo lo desasigna, tal comose muestra a continuación:

# lsattr -EH -l proc4 attribute value description user_settable

state disable Processor state False type PowerPC_RS64-III Processor type False #

En el siguiente reinicio del sistema, el firmware informa que el procesador proc4 es defectuoso, tal comose muestra a continuación:

# lsattr -EH -l proc4 attribute value description user_settable

state faulty Processor state False type PowerPC_RS64-III Processor type False #

Pero el estado del procesador proc4 permanece Disponible, tal como se muestra a continuación:

# lsdev -CH -l proc4 name status location description proc4 Available 00-04 Processor #

Entradas del registro de errores de desasignaciónTres mensajes diferentes de registro de errores se asocian a la desasignación de CPU.

A continuación se muestran unos ejemplos.

formato corto de errpt - resumenEn el ejemplo siguiente se muestran las entradas visualizadas por mandato errpt (sin opciones):

# errptIDENTIFICADOR IND._HORA T C NOMBRE_RECURSO DESCRIPCIÓN804E987A 1008161399 I O proc4 CPU DESASIGNADA8470267F 1008161299 T S proc4 DESASIGNACIÓN DE CPU CANCELADA1B963892 1008160299 P H proc4 ANOMALÍA DE CPU PREVISTA#

• Si la desasignación de procesador está habilitada, el mensaje de ANOMALÍA DE CPU PREVISTAsiempre va seguido del mensaje CPU DESASIGNADA o el mensaje DESASIGNACIÓN DE CPUCANCELADA ANORMALMENTE.

• Si la desasignación de procesador no está habilitada, sólo se anota cronológicamente el mensajeANOMALÍA DE CPU PREVISTA. La habilitación de la desasignación del procesador en cualquiermomento posterior a la anotación cronológica de uno o varios mensajes ANOMALÍA DE CPUPREVISTA inicia el proceso de desasignación y da lugar a una entrada en el registro de errores deléxito o anomalía, según se describe más arriba, para cada procesador que se ha informado quefalla.

formato largo de errpt - descripción detalladaEl siguiente formato es la salida obtenida con errpt -a:

• CPU_FAIL_PREDICTED

Descripción del error: Anomalía de procesador prevista

Este error indica que el hardware ha detectado que un procesador tiene una alta probabilidad defallar en un futuro próximo. Siempre se anota cronológicamente, no importa si la desasignación delprocesador está habilitada o no.

DATOS DE DETALLE: Número de procesador físico, ubicación

Gestión del sistema operativo 57

Page 64: AIX Versión 7 - IBM

Ejemplo de entrada de registro de errores - formato largo

ETIQUETA: CPU_FAIL_PREDICTED IDENTIFICADOR: 1655419A

Fecha/Hora: Jue Sep 30 13:42:11 Número de secuencia: 53 Id de máquina: 00002F0E4C00 Id de nodo: auntbea Clase: H Tipo: PEND Nombre de recurso: proc25 Clase de recurso: procesador Tipo de recurso: proc_rspc Ubicación: 00-25

Descripción ANOMALÍA DE CPU PREVISTA

Causas probables ANOMALÍA DE CPU

Causas de anomalía ANOMALÍA DE CPU

Acciones recomendadas ASEGÚRESE DE QUE LA MODALIDAD DE CPU GARD ESTÁ HABILITADA EJECUTE LOS DIAGNÓSTICOS DEL SISTEMA.

Datos de detalle DATOS DEL PROBLEMA 0144 1000 0000 003A 8E00 9100 1842 1100 1999 0930 4019 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 4942 4D00 5531 2E31 2D50 312D 4332 0000 0002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ... ... ... ... ...

• CPU_DEALLOC_SUCCESS

Descripción del error: Un procesador se ha desasignado satisfactoriamente tras la detección deuna anomalía de procesador prevista. Este mensaje se anota cronológicamente cuando ladesasignación del procesador está habilitada y cuando la CPU se ha desasignadosatisfactoriamente.

DATOS DE DETALLE: Número de CPU lógica de procesador desasignado.

Ejemplo: entrada de registro de errores - formato largo:

ETIQUETA: CPU_DEALLOC_SUCCESS IDENTIFICADOR: 804E987A

Fecha/Hora: Jue Sep 30 13:44:13 Número de secuencia: 63 Id de máquina: 00002F0E4C00 Id de nodo: auntbea Clase: O Tipo: INFO Nombre de recurso: proc24

Descripción CPU DESASIGNADA

Acciones recomendadas SE NECESITA MANTENIMIENTO DEBIDO A ANOMALÍA DE CPU

Datos de detalle NÚMERO DE CPU LÓGICA DESASIGNADA

0

En este ejemplo, proc24 se ha desasignado satisfactoriamente y era la CPU lógica 0 cuando se haproducido la anomalía.

58 AIX Versión 7.2: Gestión del sistema operativo

Page 65: AIX Versión 7 - IBM

• CPU_DEALLOC_FAIL

Descripción del error: Una desasignación de procesador no ha sido satisfactoria debido a unaanomalía de procesador prevista. Este mensaje se anota cronológicamente cuando la desasignaciónde CPU está habilitada, y cuando la CPU no se ha desasignado satisfactoriamente.

DATOS DE DETALLE: Código de razón, número de CPU lógica, información adicional según el tipode anomalía.

El código de razón es un valor hexadecimal numérico. Los posibles códigos de razón son:

Elemento Descripción

2 Uno o varios procesos o hebras permanecen vinculados a la última CPU lógica. Eneste caso, los datos detallados ofrecen los PID de los procesos infractores.

3 Un controlador registrado o extensión de kernel ha devuelto un error cuando se leha notificado. En este caso, el campo de datos detallados contiene el nombre delcontrolador o extensión de kernel infractor (codificado en ASCII).

4 La desasignación de un procesador hace que la máquina tenga disponibles menosde dos CPU. Este sistema operativo no desasigna más de N-2 procesadores en unamáquina de N vías para evitar la confusión de las aplicaciones o extensiones dekernel que utilizan el número total de procesadores disponibles para determinar siestán ejecutando en un sistema Uniprocesador (UP) donde es seguro saltarse eluso de bloques de multiprocesador o en un Multiprocesador simétrico (SMP).

200 (0xC8) La desasignación de procesador está habilitada (el atributo de ODM cpuguardtiene el valor disable). Normalmente no se ve este error a menos que se inicieha_star manualmente.

Ejemplos: entradas del registro de errores - formato largo

Ejemplo 1:

ETIQUETA: CPU_DEALLOC_ABORTED IDENTIFICADOR: 8470267F Fecha/Hora: Jue Sep 30 13:41:10 Número de secuencia: 50 Id de máquina: 00002F0E4C00 Id de nodo: auntbea Clase: S Tipo: TEMP Nombre de recurso: proc26

DescripciónDESASIGNACIÓN DE CPU CANCELADA ANORMALMENTE

Causas probablesPROGRAMA DE SOFTWARE

Causas de anomalíaPROGRAMA DE SOFTWARE

Acciones recomendadas SE NECESITA MANTENIMIENTO DEBIDO A ANOMALÍA DE CPU VER DOCUMENTACIÓN DEL USUARIO PARA CPU GARD

Datos de detalleCAUSA DE DESASIGNACIÓN CANCELADA ANORMALMENTE0000 0003DATOS DE DESASIGNACIÓN CANCELADA ANORMALMENTE6676 6861 6568 3200

En este ejemplo, la desasignación de proc26 ha fallado. El código de razón 3 significa que unaextensión de kernel ha devuelto un error a la rutina de notificación de kernel. Los DATOS DEDESASIGNACIÓN CANCELADA ANORMALMENTE indican fvhaeh2, que es el nombre que laextensión ha utilizado al registrarse en el kernel.

Gestión del sistema operativo 59

Page 66: AIX Versión 7 - IBM

Ejemplo 2:

ETIQUETA: CPU_DEALLOC_ABORTED IDENTIFICADOR: 8470267F Fecha/Hora: Jue Sep 30 14:00:22 Número de secuencia: 71 Id de máquina: 00002F0E4C00 Id de nodo: auntbea Clase: S Tipo: TEMP Nombre de recurso: proc19

DescripciónDESASIGNACIÓN DE CPU CANCELADA ANORMALMENTE

Causas probablesPROGRAMA DE SOFTWARE

Causas de anomalíaPROGRAMA DE SOFTWARE

Acciones recomendadas SE NECESITA MANTENIMIENTO DEBIDO A ANOMALÍA DE CPU; VER DOCUMENTACIÓN DEL USUARIO PARA CPU GARD

Datos de detalleCAUSA DE DESASIGNACIÓN CANCELADA ANORMALMENTE0000 0002DATOS DE DESASIGNACIÓN CANCELADA ANORMALMENTE0000 0000 0000 4F4A

En este ejemplo, la desasignación para proc19 ha fallado. El código de razón 2 indica que había unahebra o hebras vinculadas al último procesador lógico y no se han desvinculado después de recibirla señal SIGCPUFAIL. DATOS DE DESASIGNACIÓN CANCELADA ANORMALMENTE muestra queestas hebras pertenecían al proceso 0x4F4A.

Las opciones del mandato ps (-o THREAD, -o BND) permite listar todas las hebras o procesosjunto con el número de CPU a la que están vinculados.

Ejemplo 3:

ETIQUETA: CPU_DEALLOC_ABORTED IDENTIFICADOR: 8470267F

Fecha/Hora: Jue Sep 30 14:37:34 Número de secuencia: 106 Id de máquina: 00002F0E4C00 Id de nodo: auntbea Clase: S Tipo: TEMP Nombre de recurso: proc2

DescripciónDESASIGNACIÓN DE CPU CANCELADA ANORMALMENTE

Causas probablesPROGRAMA DE SOFTWARE

Causas de anomalíaPROGRAMA DE SOFTWARE

Acciones recomendadas SE NECESITA MANTENIMIENTO DEBIDO A ANOMALÍA DE CPU VER DOCUMENTACIÓN DEL USUARIO PARA CPU GARD

Datos de detalleCAUSA DE DESASIGNACIÓN CANCELADA ANORMALMENTE0000 0004DATOS DE DESASIGNACIÓN CANCELADA ANORMALMENTE0000 0000 0000 0000

En este ejemplo, la desasignación de proc2 ha fallado debido a que había dos procesadores activoso menos en el momento de la anomalía (código de razón 4).

60 AIX Versión 7.2: Gestión del sistema operativo

Page 67: AIX Versión 7 - IBM

Configuración de variables del entorno del sistemaEl entorno del sistema es principalmente el conjunto de variables que definen o controlan determinadosaspectos de la ejecución del proceso.

Se establecen o restablecen cada vez que se inicia un shell. Desde el punto de vista de la gestión delsistema, es importante asegurarse de que el usuario está configurado con los valores correctos en elinicio de sesión. La mayoría de estas variables se establecen durante la inicialización del sistema. Susdefiniciones se leen del archivo /etc/profile o se establecen de forma predeterminada.

Prueba de la batería del sistemaSi el sistema muestra una hora incorrecta, la causa puede ser una batería agotada o desconectada.

1. Para determinar el estado de la batería del sistema, escriba el siguiente mandato diag:

diag -B -c

2. Cuando aparezca el menú principal Diagnósticos, seleccione la opción Determinación de problemas.Si la batería está desconectada o agotada, se visualizará un menú del problema con un número depetición de servicio (SRN). Anote el SRN en el Elemento 4 del Formulario de resumen de problemas einforme del problema a la organización de servicio de hardware.

Si la batería funciona, la hora del sistema puede haberse restablecido incorrectamente debido a que losmandatos date o setclock se han ejecutado incorrecta o satisfactoriamente.

Conceptos relacionadosConfiguración del reloj del sistemaEl reloj del sistema registra la hora de los sucesos del sistema, permite planificar sucesos del sistema(por ejemplo, ejecutar diagnósticos de hardware a las 3:00 de la madrugada)e indica cuándo ha creadopor primera vez los archivos o la última vez que los ha guardado.

Configuración del reloj del sistemaEl reloj del sistema registra la hora de los sucesos del sistema, permite planificar sucesos del sistema(por ejemplo, ejecutar diagnósticos de hardware a las 3:00 de la madrugada)e indica cuándo ha creadopor primera vez los archivos o la última vez que los ha guardado.

Utilice el mandato date para establecer el reloj del sistema. Utilice el mandato setclock paraestablecer la hora y la fecha contactando con el servidor horario.

Tareas relacionadasPrueba de la batería del sistemaSi el sistema muestra una hora incorrecta, la causa puede ser una batería agotada o desconectada.

Mandato dateEl mandato date visualiza o establece la fecha y la hora.

Especifique el mandato siguiente para determinar lo que el sistema reconoce como la fecha y la horaactuales:

/usr/bin/date

Atención: No cambie la fecha cuando el sistema se ejecute con más de un usuario.

Los formatos siguientes se pueden utilizar al establecer la fecha con el parámetro Fecha:

• mmddHHMM[AAaa] (valor predeterminado)• mmddHHMM[aa]

Las variables para el parámetro Fecha se definen a continuación:

Gestión del sistema operativo 61

Page 68: AIX Versión 7 - IBM

Elemento

Descripción

mm Especifica el número del mes.

dd Especifica el número del día del mes.

HH Especifica la hora del día (utilizando un reloj de 24 horas).

MM Especifica el número del minuto.

AA Especifica los dos primeros dígitos de un año de cuatro dígitos.

aa Especifica los dos últimos números del año.

Con autorización de root, puede utilizar el mandato date para establecer la fecha y la hora actuales. Porejemplo:

date 021714252002

Establece la fecha en el 17 de febrero de 2002, y la hora en las 14:25.

Mandato setclockEl mandato setclock visualiza o establece la fecha y la hora solicitando la hora actual a un servidorhorario de una red.

Para visualizar la fecha y la hora del sistema, especifique:

/usr/sbin/setclock

El mandato setclock toma la primera respuesta del servidor horario, convierte la lectura de reloj decalendario que encuentra ahí y muestra la fecha y hora local. Si no responde ningún servidor horario, o sila red no está operativa, el mandato setclock visualiza un mensaje que lo indica y no cambia los valoresde fecha y hora.

Nota: Cualquier sistema principal que ejecute el daemon inetd puede actuar de servidor horario.

Con autorización de root, puede utilizar el mandato setclock para enviar la petición de servicio horariode Internet a un sistema principal de servidor horario y establecer la fecha y hora local de acuerdo a ello.Por ejemplo:

setclock SistemaPrincipalHorario

Donde SistemaPrincipalHorario es el nombre de sistema principal o la dirección IP del servidor horario.

Información relacionadaMandato setclock

Soporte y configuración de huso horario OlsonDesde AIX 6.1, se proporciona soporte para valores de huso horario coherentes con la base de datosOlson.

La especificación de huso horario POSIX soportada en releases anteriores de AIX no manejacorrectamente los cambios en las reglas de huso horario, como el cambio de hora por ahorro de energía.La base de datos Olson mantiene un registro histórico de reglas de huso horario, de modo que si lasreglas cambian en una determinada ubicación, AIX interpreta fechas y horas correctamente, tanto delpresente como del pasado.

Las definiciones de huso horario que cumplen con la especificación POSIX siguen recibiendo soporte deAIX. AIX comprueba la variable de entorno TZ para determinar si la variable de entorno coincide con unvalor de huso horario Olson. Si la variable de entorno TZ no coincide con ningún valor de huso horarioOlson, AIX sigue las reglas de especificación de POSIX.

Para obtener más detalles sobre la variable de entorno TZ, consulte el archivo de entorno.

62 AIX Versión 7.2: Gestión del sistema operativo

Page 69: AIX Versión 7 - IBM

Para establecer el huso horario utilizando valores definidos por Olson, utilice la siguiente vía de acceso deSMIT: Entornos del sistema > Cambiar / Mostrar fecha, hora y huso horario > Cambiar huso horariomediante los valores definidos del sistema.

Configuración del mensaje del díaEl mensaje del día se visualiza cada vez que un usuario inicia la sesión en el sistema.

Es una manera adecuada de comunicar información a todos los usuarios como, por ejemplo, los númerosde versión de software instalado o las noticias del sistema actual. Para cambiar el mensaje del día, utilicesu editor favorito para editar el archivo /etc/motd.

Datos de medida de uso de AIX (etiquetas de SLM) para IBM License Metric ToolLas etiquetas de Software License Metric (SLM) generadas por el sistema operativo AIX sirven comodatos de medida de uso empleados por IBM® License Metric Tool. Los datos de medida de uso registran lainformación de virtual CPU (vCPU) que representa el número de CPU virtuales que están en línea enel sistema.

Para utilizar IBM License Metric Tool, tiene que instalar el conjunto de archivos slm.rte, disponible en elpaquete de expansión del sistema operativo AIX. El conjunto de archivos también se puede descargardesde el sitio web.

IBM License Metric Tool genera un archivo vcpu.slmtag de Software License Metric Tag (SLMTAG) quese expande dinámicamente. El archivo vcpu.slmtag se encuentra en el directorio /var/opt/slm. Estearchivo es utilizado por BigFix Agent (BESClient) para incorporar el software de agente de IBM LicenseMetric Tool y enviar el archivo al servidor de IBM License Metric Tool.

IBM License Metric Tool se puede utilizar con BigFix Agent (BESClient), instalado y configurado en elsistema. BigFix Agent debe obtenerse de forma independiente desde el servidor de IBM License MetricTool e instalarse en el cliente. Si BigFix Agent no se ha instalado en el sistema, se crea el archivo SLMTAG,pero no se envían datos al servidor de IBM License Metric Tool.

Puede configurar IBM License Metric Tool con las variables de entorno definidas en el archivo /etc/environment. En el momento de la instalación, estas variables se establecen en los valorespredeterminados. Se pueden configurar las siguientes variables configurables.

Variable Detalles

SLM_VCPU_PERIOD_HOURS Periodo de tiempo que está especificado en horas,para añadir una nueva entrada de métricas. El valorpredeterminado es de 720 horas (30 días). Estevalor debe ser un múltiplo de 4. Si especifica unvalor que no sea múltiplo de 4, IBM License MetricTool considerará el siguiente múltiplo de 4. El valormínimo es de 4 horas.

SLM_VCPU_MAX_FSIZE El tamaño de archivo máximo que estáespecificado en bytes es el tamaño máximo (enbytes) para el archivo de registro. Si el tamaño dearchivo supera este límite, el archivo se archivará.El valor predeterminado es de 2097152 bytes (2MB). El valor mínimo es de 10 KB. Si especifica unvalor inferior, IBM License Metric Tool loconsiderará como 10 KB.

SLM_VCPU_COUNT_ARCH Número de archivados retenidos por laherramienta. El valor predeterminado es 4. El valormínimo es 1. Si especifica un valor inferior, IBMLicense Metric Tool lo considerará como 1.

Gestión del sistema operativo 63

Page 70: AIX Versión 7 - IBM

Los datos de medida de uso se visualizan en la página Utilización de recursos de la GUI del servidor deIBM License Metric Tool. Los datos de medida de uso se muestran junto al nombre de host como el tipode métrica VCPU y el subtipo COUNT.

Información relacionadaIBM License Metric Tool 9.2.0

AIX Runtime ExpertAIX Runtime Expert proporciona un conjunto de acciones simplificadas que se pueden utilizar sobre unaúnica consolidación para recopilar, aplicar y verificar el entorno de ejecución para una o varias instanciasde AIX.

Los componentes de AIX proporcionan herramientas como, por ejemplo, RAS (Reliability AvailabilityServiceability), Security o Kernel, que le permiten cambiar valores en cada capa de componente con elobjeto de ajustar el sistema operativo para un requisito o necesidad determinada. AIX Runtime Experthabilita la configuración de todo el sistema al utilizar una infraestructura ampliable para manejar losdiversos métodos de configuración diferentes que existen actualmente en AIX.

AIX Runtime Expert ejecuta mandatos de configuración de varios componentes como una sola acciónmediante un perfil de configuración. Puede utilizar dicho perfil para aplicar valores de sistema idénticosen varios sistemas. AIX Runtime Expert ofrece una alternativa simplificada para gestionar la configuraciónde tiempo de ejecución de uno o varios sistemas, pero no impide el uso de otros métodos para cambiarvalores del sistema.

Conceptos de AIX Runtime ExpertAntes de empezar a utilizar AIX Runtime Expert, debe tener unos conocimientos básicos del mismo.

Las funciones base de AIX Runtime Expert soportan la gestión de perfiles de configuración y aplicaciónpara un único sistema AIX. Para habilitar el consumo escalable de varios sistemas para un único perfil, lossistemas AIX pueden descubrir y consumir una descripción de perfil basada en LDAP cuando se inician ocuando el sistema se dirige mediante operaciones administrativas en los puntos finales AIX de destino. Lagestión remota para AIX Runtime Expert sólo se puede realizar con el componente NIM (Network InstallManager). Al utilizar funciones NIM existentes, puede ejecutar AIX Runtime Expert de modo remoto envarios clientes NIM autónomos desde una máquina maestra NIM.

Perfiles AIX Runtime ExpertLos perfiles AIX Runtime Expert se utilizan para establecer valores en un sistema en ejecución, extraervalores para un sistema en ejecución y comparar valores con respecto a un sistema en ejecución u otroperfil.

Un perfil describe uno o varios controles de configuración de tiempo de ejecución y sus valores para elárea función de destino. Un perfil puede representar un conjunto de controles completo o un subconjuntode controles y sus valores. Los perfiles de configuración son archivos XML estándar. Mediante AIXRuntime Expert puede gestionar perfiles y aplicarlos al sistema definido.

Un perfil puede contener parámetros de configuración y parámetros de ajuste sin valores, tales comoperfiles de ejemplo. El propósito de un perfil sin parámetros es extraer los valores de los sistemasactuales a partir del perfil especificado. Los perfiles que contienen, como mínimo, un parámetro sinvalores tienen las limitaciones siguientes:

• Al utilizar el mandato artexset se produce un error.• Al utilizar el mandato artexdiff devuelven un mensaje de aviso para cada parámetro que no tiene

valor.

El valor de un parámetro de un perfil puede contener lo siguiente:

• Ningún valor• Un valor de objeto binario grande, que son datos binarios con codificación base64 como un archivo de

texto en línea. El valor de objeto binario grande se utiliza para sustituir archivos existentes como, porejemplo, /etc/motd o /etc/hosts.

64 AIX Versión 7.2: Gestión del sistema operativo

Page 71: AIX Versión 7 - IBM

• Un valor que no sea de objeto binario grande, que es un valor que se asigna a parámetros deconfiguración del sistema como, por ejemplo, un entero o serie.

En el directorio /etc/security/artex/samples puede ver perfiles de ejemplo existentes. El perfil deejemplo sólo contiene nombres de parámetros a los que dan soporte los valores predeterminadosinstalados con AIX Runtime Expert. Los parámetros de los perfiles de ejemplo no tienen valores. Losperfiles de ejemplo son archivos de sólo lectura. Utilice los perfiles de ejemplo como plantilla para crearnuevos archivos de configuración. Los ejemplos existentes no se pueden aplicar a un sistema enejecución.

Los ejemplos siguientes son algunos de los mandatos de configuración básica que se pueden controlar através de perfiles de configuración:

• Configuración de red

– no– mktcpip

• Configuración de kernel

– ioo– schedo

• Configuración de RAS

– alog• Configuración de la seguridad

– setsecattr

Ejemplo

El ejemplo siguiente muestra un perfil de configuración para catálogos y subcatálogos diferentes convalores asignados para parámetros distintos. Puede editar este perfil con cualquier editor XML, o bien,puede utilizar el mandato vi y cambiar los valores existentes para los parámetros definidos.

<?xml version="1.0" encoding="UTF-8" ?><Profile origin="get" version="1.0" date="2009-04-25T15:33:37Z"><Catalog id="vmoParam"><Parameter name="kernel_heap_psize" value="0" applyType="nextboot" reboot="true" /> <Parameter name="maxfree" value="1088" /> </Catalog><Catalog id="noParam"><SubCat id="tcp_network"><Parameter name="tcp_recvspace" value="16384" /> <Parameter name="tcp_sendspace" value="16384" /> </SubCat><SubCat id="general_network"><Parameter name="use_sndbufpool" value="1" applyType="nextboot" reboot="true" /> </SubCat></Catalog><Catalog id="lvmoParam"><Parameter name="max_vg_pbuf_count" value="0"><Target class="vg" instance="rootvg" /> </Parameter><Parameter name="pv_pbuf_count" value="512"><Target class="vg" instance="rootvg" /> </Parameter></Catalog>

Tareas relacionadasModificación de perfiles AIX Runtime ExpertLos perfiles AIX Runtime Expert son archivos XML y se pueden modificar con cualquier editor XML o editorde texto.Creación de perfiles AIX Runtime ExpertUtilice los ejemplos existentes en el directorio /etc/security/artex/samples para crear un nuevoperfil con el mandato artexget. Los perfiles de ejemplo son una plantilla con la que puede crear unperfil, que puede modificar y guardar en un archivo personalizado.

Gestión del sistema operativo 65

Page 72: AIX Versión 7 - IBM

Obtención de valores de perfil AIX Runtime ExpertUtilice el mandato artexget para buscar información sobre un perfil.Aplicación de perfiles AIX Runtime ExpertPara establecer un sistema con la configuración y parámetros ajustables de un perfil, aplique un perfilmediante el mandato artexset.

Catálogos de AIX Runtime ExpertLos catálogos son el mecanismo que define y especifica controles de configuración que se pueden utilizarmediante AIX Runtime Expert.

Se proporcionan catálogos para los controles a los que AIX Runtime Expert da soporte actualmente. Loscatálogos son archivos de definición que correlacionan valores de perfil de configuración con parámetrosque ejecutan mandatos y acciones de configuración.

AIX Runtime Expert le facilita los catálogos de sólo lectura existentes, que se encuentran en eldirectorio /etc/security/artex/catalogs e identifican valores que se pueden modificar. Nomodifique los catálogos.

Cada catálogo contiene parámetros para un componente. Sin embargo, algunos catálogos puedencontener parámetros de varios componentes relacionados. Los nombres de los catálogos describen loscomponentes que están contenidos en el catálogo. El elemento XML <description> de cada catálogoproporciona una descripción del catálogo.

AIX Runtime Expert y LDAPAIX Runtime Expert puede recuperar perfiles del servidor LDAP (Lightweight Directory Access Protocol).

Los perfiles AIX Runtime Expert se deben almacenar como objetos ibm-artexProfile y deben tener losatributos obligatorios siguientes:

• Ibm-artexProfileName: nombre de perfil AIX Runtime Expert.• Ibm-artexProfileXMLData: contenido XML del perfil AIX Runtime Expert que se ha almacenado como

octetString.

El esquema AIX Runtime Expert se debe haber instalado en el servidor LDAP antes de almacenarcualquier perfil AIX Runtime Expert. La configuración de un servidor LDAP para AIX Runtime Expert essimilar a la configuración de un servidor LDAP para autenticación de usuario. Para obtener másinformación sobre la configuración de LDAP, consulte el apartado que trata sobre la configuración de unservidor de información de seguridad ITDS.

La configuración de un cliente LDAP para AIX Runtime Expert es similar a la configuración de un clienteLDAP para la autenticación de usuarios. Para obtener más información, consulte el tema Configuración deun cliente LDAP. Para configurar un cliente LDAP, utilice el mandato mksecldap -c para configurarcorrectamente el daemon secldapclntd. AIX Runtime Expert se basa en el daemon secldapclntd paraacceder al servidor LDAP. De forma predeterminada, AIX Runtime Expert busca entradas de perfil bajo elidentificador DN: ou=artex,cn=AIXDATA. Puede personalizar este DN actualizando la claveartexbasedn en el archivo de configuración secldapclntd de /etc/security/ldap/ldap.cfg.

Actualización de un perfil AIX Runtime Expert

Para cargar un perfil AIX Runtime Expert, puede crear un archivo LDIF (LDAP Data InterchangeFormatted) y utilizar el mandato ldapadd o utilizar una herramienta de administración de LDAP como,por ejemplo, Tivoli Directory Server Web Administration Tool.

El siguiente es un ejemplo de un perfil que se ha guardado en LDIF:

dn:ou=artex,cn=AIXDATAobjectClass: organizationalUnitobjectClass: topou: artex

dn: ibm-artexProfileName=alogProfile.xml,ou=artex,cn=AIXDATAobjectClass: ibm-artexProfileobjectClass: top

66 AIX Versión 7.2: Gestión del sistema operativo

Page 73: AIX Versión 7 - IBM

obm-artexProfileName: alogProfile.xmlibm-artexProfileXMLData:< file:///etc/security/artex/samples/alogProfile.xml

Lo siguiente es un ejemplo de cómo cargar un perfil mediante el mandato ldapadd y un archivo LDIF deejemplo denominado sample.ldif:

ldapadd -c -h <ldaphost> -D cn=admin -w <password> -f sample.ldif

Tareas relacionadasCreación de perfiles AIX Runtime ExpertUtilice los ejemplos existentes en el directorio /etc/security/artex/samples para crear un nuevoperfil con el mandato artexget. Los perfiles de ejemplo son una plantilla con la que puede crear unperfil, que puede modificar y guardar en un archivo personalizado.Información relacionadaIBM Security Directory Server

AIX Runtime Expert y RBACControl de accesos basado en roles (RBAC) se puede utilizar para dar a usuarios no root la habilidad deejecutar los mandatos de AIX Runtime Expert.

Autorizaciones de AIX Runtime Expert

Al instalar el conjunto de archivos artex.base.rte, se crearán tres autorizaciones del sistema quepermiten distintos niveles de acceso a la funcionalidad de AIX Runtime Expert:

• La autorización aix.system.config.artex.read permite la ejecución de los mandatos artexlist yartexmerge. También se permiten los mandatos artexget y artexdiff, pero sólo para obtener losvalores de perfil. Los valores no se pueden capturar desde el sistema (es decir, el mandato artexgetno se puede ejecutar con los distintivos –r, –n ni –p, y el mandato artexdiff sólo se puede ejecutarentre dos perfiles).

• La autorización aix.system.config.artex.get permite todas las operaciones permitidas por laautorización artex.system.config.read y, de forma adicional, permite la ejecución no restringida de losmandatos artexget y artexdiff.

• La autorización aix.system.config.artex.set permite todas las operaciones permitidas por laautorización artex.system.config.get y, de forma adicional, permite la ejecución del mandatoartexset.

Roles de AIX Runtime Expert

AIX Runtime Expert no crea ningún rol nuevo; sin embargo, los conjuntos de archivos artex.base.rteañaden la autorización aix.system.config.artex al rol SysConfig. Cualquier usuario con el rol SysConfig ocualquier rol delimitador (como el rol isso) podrá ejecutar los mandatos artexlist, artexmerge,artexdiff, artexget y artexset.

Restricciones

Por motivos de seguridad, el uso de la variable de entorno ARTEX_CATALOG_PATH está restringido alusuario root. Los usuarios no root a los que se otorga el derecho de ejecutar los mandatos de AIXRuntime Expert mediante el RBAC no pueden utilizar la variable de entorno ARTEX_CATALOG_PATH.

Administración de AIX Runtime ExpertAIX Runtime Expert utiliza unos pocos mandatos simples para crear, modificar, combinar y aplicarperfiles.

Configuración de AIX Runtime ExpertAIX Runtime Expert utiliza el archivo de configuración /etc/security/artex/config/artex.conf.

Gestión del sistema operativo 67

Page 74: AIX Versión 7 - IBM

Una entrada del archivo de configuración consta del nombre de una opción de configuración, seguido poruno o más espacios y un valor. Las líneas en blanco y las líneas que empiezan por un signo # se pasaránpor alto.

Se da soporte a las siguientes opciones:

Tabla 1. Opciones de configuración

Opciones Descripción

ARTEX_CATALOG_PATH Lista separada por dos puntos de directoriosbuscados para archivos de catálogo. Esta opción sesobrescribe mediante la variable de entornoARTEX_CATALOG_PATH. La vía de accesopredeterminada es /etc/security/artex/catalogs.

ARTEX_PROFILE_PATH Lista separada por dos puntos de directoriosbuscada por archivos de perfiles mediante elmandato artexlist si no se especifica ningúndirectorio. Esta opción se sobrescribe mediante lavariable de entorno ARTEX_PROFILE_PATH. Lavía de acceso predeterminada es /etc/security/artex/samples.

DEBUG_LOG_CATEGORY Categoría de depuración para el archivo deregistro. Esta opción se puede repetir paraseleccionar varias categorías de depuración.

DEBUG_LOG_LEVEL Nivel de depuración para el archivo de registroentre 0 (sin rastreos de depuración) y 3 (lo másdetallado).

MAX_CMDS Número máximo de mandatos externos ejecutadossimultáneamente. Los mandatos externosejecutados por AIX Runtime Expert se ponen encola para que no más que los mandatos externosMAX_CMDS se ejecuten simultáneamente encualquier momento determinado. El valorpredeterminado es 10.

Creación de perfiles AIX Runtime ExpertUtilice los ejemplos existentes en el directorio /etc/security/artex/samples para crear un nuevoperfil con el mandato artexget. Los perfiles de ejemplo son una plantilla con la que puede crear unperfil, que puede modificar y guardar en un archivo personalizado.

Para crear un perfil con todos los parámetros a los que AIX Runtime Expert da soporte, siga estos pasos:

1. Configure y ajuste el sistema con los valores adecuados para un nuevo perfil.2. Vaya al directorio samples: /etc/security/artex/samples3. Ejecute el mandato siguiente para crear un nuevo perfil denominado custom_all.xml:

artexget -p all.xml > /directory_for_new_profile/custom_all.xml

Nota: El perfil custom_all.xml se puede utilizar para configurar otros sistemas que tengan unaconfiguración de sistemas actuales similares.

Para crear un perfil para un componente específico como, por ejemplo, opciones de red, siga estos pasos:

1. Configure y ajuste el sistema con los valores adecuados para un nuevo perfil.2. Vaya al directorio samples: /etc/security/artex/samples.

68 AIX Versión 7.2: Gestión del sistema operativo

Page 75: AIX Versión 7 - IBM

3. Cree un nuevo perfil con el nombre custom_no.xml a partir del perfil de ejemplo existente,noProfile.xml, ejecutando el mandato siguiente:

artexget -p noProfile.xml > /directory_for_new_profile/custom_no.xml

Puede personalizar los perfiles recién creados; para ello, cambie o elimine los valores de los parámetrosmediante un editor XML o cualquier editor de texto.

Los perfiles personalizados se pueden subir al servidor LDAP con el objeto de que se puedan utilizardesde varios sistemas AIX. Para subir los perfiles al servidor LDAP, utilice las herramientas que seproporcionan con LDAP.

Conceptos relacionadosAIX Runtime Expert y LDAPAIX Runtime Expert puede recuperar perfiles del servidor LDAP (Lightweight Directory Access Protocol).Perfiles AIX Runtime ExpertLos perfiles AIX Runtime Expert se utilizan para establecer valores en un sistema en ejecución, extraervalores para un sistema en ejecución y comparar valores con respecto a un sistema en ejecución u otroperfil.Tareas relacionadasObtención de valores de perfil AIX Runtime ExpertUtilice el mandato artexget para buscar información sobre un perfil.Aplicación de perfiles AIX Runtime ExpertPara establecer un sistema con la configuración y parámetros ajustables de un perfil, aplique un perfilmediante el mandato artexset.Información relacionadaMandato artexget

Modificación de perfiles AIX Runtime ExpertLos perfiles AIX Runtime Expert son archivos XML y se pueden modificar con cualquier editor XML o editorde texto.

Mediante el mandato artexget se pueden personalizar los perfiles creados por el usuario cambiando losvalores de los parámetros o eliminando algunos de los parámetros que no se necesitan para modificar osupervisar el perfil.

Para modificar perfiles AIX Runtime Expert, siga estos pasos:

1. En el directorio donde se encuentra custom_all.xml, ejecute los mandatos siguientes para guardaruna copia del perfil:

cp custom_all.xml custom_all_backup.xml

2. En el directorio donde se encuentra custom_all.xml, ejecute el mandato siguiente para editar elperfil:

vi custom_all.xml

Nota: Puede utilizar cualquier editor XML o de texto.3. Modifique los valores de los parámetros o elimine los parámetros que no se necesitan para cambiar o

supervisar el perfil.4. Ejecute el mandato siguiente para verificar si se han guardado correctamente los cambios del perfil,

comparándolos con los valores del sistema actual.

artexdiff -c -r custom_all.xml custom_all_backup.xml

El mandato artexdiff muestra los parámetros que ha modificado el editor. <FirstValue> muestrael valor del perfil y <SecondValue> muestra el valor del sistema actual.

Gestión del sistema operativo 69

Page 76: AIX Versión 7 - IBM

Conceptos relacionadosPerfiles AIX Runtime ExpertLos perfiles AIX Runtime Expert se utilizan para establecer valores en un sistema en ejecución, extraervalores para un sistema en ejecución y comparar valores con respecto a un sistema en ejecución u otroperfil.Tareas relacionadasObtención de valores de perfil AIX Runtime ExpertUtilice el mandato artexget para buscar información sobre un perfil.Aplicación de perfiles AIX Runtime ExpertPara establecer un sistema con la configuración y parámetros ajustables de un perfil, aplique un perfilmediante el mandato artexset.Información relacionadaMandato artexdiff

Combinación de perfiles AIX Runtime ExpertUn perfil puede representar un conjunto de controles completo o cualquier subconjunto de controles.Otro procedimiento útil para modificar perfiles consiste en combinar perfiles que representan unsubconjunto de controles mediante el mandato artxmerge.

Puede utilizar el mandato artexmerge para combinar uno o varios perfiles en un único perfil.

Para combinar perfiles, siga estos pasos:

1. En el directorio donde están almacenados los perfiles, ejecute el mandato siguiente:

artexmerge profile_name1.xml profile_name2.xml > new_profile_name.xml

2. Ejecute el mandato siguiente para ver el perfil y verificar que sea un perfil válido:

artexget nuevo_nombre_perfil.xml

Nota: Si los perfiles que está combinando tienen parámetros duplicados, el proceso de combinaciónde perfiles da error. De forma alternativa, al usar el distintivo -f, se utilizan los valores de parámetrosdel último perfil.

Información relacionadaMandato artexmerge

Búsqueda de perfiles AIX Runtime ExpertUtilice el mandato artexlist para buscar perfiles en una vía de acceso determinada y de un servidorLDAP.

Para buscar perfiles, siga estos pasos:

1. Si el perfil se encuentra en el sistema local, ejecute el mandato siguiente:

artexlist

2. Si el perfil se encuentra en un servidor LDAP, ejecute el mandato siguiente:

artexlist -l

De manera predeterminada, el mandato lista los perfiles en el directorio /etc/security/artex/samples. Para alterar temporalmente la vía de acceso predeterminada con una variable de entorno,establezca ARTEX_PROFILE_PATH en una o varias vías de acceso delimitadas por punto y coma, o bien,establezca una vía de acceso que se pueda pasar como un argumento.Información relacionadaMandato artexlist

Obtención de valores de perfil AIX Runtime ExpertUtilice el mandato artexget para buscar información sobre un perfil.

70 AIX Versión 7.2: Gestión del sistema operativo

Page 77: AIX Versión 7 - IBM

Al utilizar un perfil, puede visualizar los valores del perfil o del sistema en formatos diferentes (XML, CSVo texto) con filtros distintos como, por ejemplo, parámetros que necesitan que se realice un rearranquepara que entren en vigor y parámetros que necesitan que se detengan o reinicien algunos servicios.

La obtención de valores del sistema resulta útil en las situaciones siguientes:Para obtener una instantánea de un sistema

Cuando un sistema se ha configurado de modo correcto, puede guardar su configuración medianteuna instantánea. Posteriormente, puede utilizar dicha instantánea en caso de que se haya modificadoalgún parámetro o si no recuerda los parámetros que ha cambiado. El perfil de instantánea se puedeutilizar para devolver el sistema a la configuración que desea.

Para clonar la configuración de un sistema a fin de utilizarla en otros sistemasUna vez que un sistema se ha configurado y ajustado en un entorno, puede extraer los valores delsistema en un perfil AIX Runtime Expert y aplicar dicho perfil a otros sistemas.

Para depurar un problemaCuando se encuentra un problema en un sistema de producción, puede utilizar un perfil paraestablecer los mismos valores de sistema en un sistema de prueba y, a continuación, depurar losproblemas en el sistema de prueba.

Para obtener información sobre un perfil, siga estos pasos:

1. Vaya al directorio donde está ubicado el perfil sobre el que desea obtener información.2. Para obtener información sobre el perfil, ejecute el mandato siguiente:

artexget nombre_de_perfil.xml

Limitación: Cuando un sistema tiene definidos muchos usuarios, los mandatos de AIX Runtime Expertartexget, artexset y artexdiff aplicados a perfiles como chuserProfile.xml, coreProfile.xml oall.xml, tardan más tiempo en completarse.

Conceptos relacionadosPerfiles AIX Runtime ExpertLos perfiles AIX Runtime Expert se utilizan para establecer valores en un sistema en ejecución, extraervalores para un sistema en ejecución y comparar valores con respecto a un sistema en ejecución u otroperfil.Tareas relacionadasCreación de perfiles AIX Runtime ExpertUtilice los ejemplos existentes en el directorio /etc/security/artex/samples para crear un nuevoperfil con el mandato artexget. Los perfiles de ejemplo son una plantilla con la que puede crear unperfil, que puede modificar y guardar en un archivo personalizado.Modificación de perfiles AIX Runtime ExpertLos perfiles AIX Runtime Expert son archivos XML y se pueden modificar con cualquier editor XML o editorde texto.Información relacionadaMandato artexget

Aplicación de perfiles AIX Runtime ExpertPara establecer un sistema con la configuración y parámetros ajustables de un perfil, aplique un perfilmediante el mandato artexset.

Para aplicar un perfil creado por el usuario, siga estos pasos:

1. Vaya al directorio donde está almacenado el perfil que desea aplicar.2. Para aplicar el perfil al sistema, ejecute el mandato siguiente:

artexset -c nombre_de_perfil.xml

3. Opcional: Si desea aplicar un perfil cada vez que se reinicia el sistema con el objeto de mantener unaconfiguración coherente, ejecute el mandato siguiente:

Gestión del sistema operativo 71

Page 78: AIX Versión 7 - IBM

artexset -b nombre_de_perfil.xml

Nota: Se da soporte a los parámetros restringidos únicamente como parámetros de sólo lectura. Porlo tanto, los valores de estos parámetros se pueden recuperar con el mandato artexget, pero no sepueden establecer con el mandato artexset.

Conceptos relacionadosPerfiles AIX Runtime ExpertLos perfiles AIX Runtime Expert se utilizan para establecer valores en un sistema en ejecución, extraervalores para un sistema en ejecución y comparar valores con respecto a un sistema en ejecución u otroperfil.Tareas relacionadasCreación de perfiles AIX Runtime ExpertUtilice los ejemplos existentes en el directorio /etc/security/artex/samples para crear un nuevoperfil con el mandato artexget. Los perfiles de ejemplo son una plantilla con la que puede crear unperfil, que puede modificar y guardar en un archivo personalizado.Modificación de perfiles AIX Runtime ExpertLos perfiles AIX Runtime Expert son archivos XML y se pueden modificar con cualquier editor XML o editorde texto.Información relacionadaMandato artexset

Restablecer perfiles AIX Runtime ExpertUtilice el mandato artexset –u para restablecer los valores de configuración al valor de configuraciónanterior de un sistema. Puede aplicar los valores del sistema que se utilizaban antes de aplicar el perfil.

No puede utilizar el mandato rollback si no ha cambiado los valores del sistema durante la sesiónactual.

La retrotracción no se considera como la creación de una nueva imagen de un sistema operativo. Cuandose utiliza el mandato rollback, no se suprimen ni se crean recursos, sino que se revierten los valores deconfiguración del tiempo de ejecución a los valores anteriores del sistema. Con el mandato rollback, nopuede restaurar los valores de una fecha u hora determinadas. La retrotracción sólo se puede realizar alos valores anteriores del sistema anteriores a la realización de un cambio.

El mandato rollback se puede utilizar en los casos siguientes:

• Probar cambios de configuración en un sistema. Si la nueva configuración no funciona de modoadecuado, la puede revertir rápidamente a una configuración fiable previa.

• Depurar un sistema. Si un sistema empieza a ejecutarse de modo incorrecto, una retrotracción puedeconfirmar si los cambios de configuración forman parte de un problema detectado recientemente.

• Implementar un nuevo perfil a fin de satisfacer alguna situación de excepción especial. Por ejemplo,una acción especificada sólo se produce una vez al mes en el sistema y, una vez que se ha aplicado alsistema, desea restaurarlo a su configuración anterior.

Para restaurar los valores anteriores del sistema, lleve a cabo los pasos siguientes:

1. Para retrotraer un perfil, ejecute el mandato siguiente:

artexset -u

2. Para verificar que la retrotracción se ha completado correctamente, ejecute el siguiente mandato paracomparar los valores del sistema:

artexdiff -f txt -r -nombre_perfil.xml

Nota: el nombre_perfil.xml es el nombre del último perfil aplicado al sistema.

Se muestran las diferencias entre el sistema y el perfil.

72 AIX Versión 7.2: Gestión del sistema operativo

Page 79: AIX Versión 7 - IBM

Información relacionadaMandato artexgetMandato artexlist

Comparación de perfiles AIX Runtime ExpertUtilice el mandato artexdiff para comparar dos perfiles o los valores de un perfil con los valores delsistema.

Para comparar los perfiles de dos sistemas diferentes, siga estos pasos:

1. Ejecute el mandato siguiente en el sistema 1:

artexget -p all.xml > all_system1.xml

2. Ejecute el mandato siguiente en el sistema 2:

artexget -p all.xml > all_system2.xml

Para verificar si ha cambiado algún parámetro de configuración en un sistema después de un periodo detiempo, por ejemplo, si ha estado de vacaciones y desea verificar si se ha efectuado algún cambio durantesu ausencia, ejecute los mandatos siguientes:

• Al regresar de las vacaciones, ejecute el mandato siguiente:

$ artexget -p all.xml > all_before_vacation.xml

• Para ver los cambios de configuración que se han producido mientras estaba de vacaciones, ejecute elmandato siguiente:

$ artexdiff -c -p all_before_vacation.xml

Información relacionadaMandato artexgetMandato artexlist

Grabación de perfiles de AIX Runtime ExpertPuede expandir el ámbito de AIX Runtime Expert añadiendo catálogos y perfiles que puede utilizar elprograma. Debe estar familiarizado con los conceptos de AIX Runtime Expert antes de intentar grabarnuevos catálogos.

La parte más pequeña de información manejada por AIX Runtime Expert es un parámetro. Losparámetros pueden ser ajustables, archivos de configuración, variables de entorno, propiedades deobjetos como usuarios, dispositivos o subsistemas (como los objetos se llaman destinos en el contextode AIX Runtime Expert).

Los parámetros se agregan en perfiles según el dominio de actividad (como el usuario, tcpi). Los perfilesson el medio pretendido de interacción entre los usuarios y la infraestructura de AIX Runtime Expert. Losperfiles son la entrada al mandato artexget que recupera el valor de parámetro en el sistema ydevuelve un perfil. Los perfiles (incluidos los valores) son entradas al mandato artexset que establecenlos parámetros a la lectura del valor en el perfil.

Conceptos en la grabación del perfil de AIX Runtime ExpertLos perfiles de AIX Runtime Expert son archivos XML que contienen una lista de parámetros deconfiguración y, opcionalmente, de los valores de los parámetros y de los distintivos de uso.

Los perfiles se pueden ubicar en el sistema que se está ajustando al utilizar los mandatos AIX RuntimeExpert directamente en la línea de mandatos.

Ubicaciones de perfilesLos perfiles de ejemplo de AIX Runtime Expert se ubican en el directorio /etc/security/artex/samples.

Gestión del sistema operativo 73

Page 80: AIX Versión 7 - IBM

Cuando está grabando un nuevo catálogo para que AIX Runtime Expert dé soporte, se recomienda quetambién grabe un perfil de ejemplo que se pueda utilizar como una entrada para el mandato artexget.Un perfil de ejemplo es un perfil de sólo lectura sin valores asignados para los parámetros. Los perfiles deejemplo existentes están ubicados en el directorio /etc/security/artex/samples. De formapredeterminada, el mandato artexlist lista sólo los perfiles ubicados en el directorio predeterminado,pero el directorio predeterminado se puede modificar estableciendo la variable de entornoARTEX_PROFILE_PATH. Se pueden especificar varios directorios en esta variable de entorno utilizandoel separador :.

Todos los perfiles del directorio samples se fusionan durante la instalación del conjunto de archivosartex.base.samples, para formar el perfil default.xml que se utiliza mediante el mandato snap. Un perfilque no forme parte del perfil default.xml no debe entregarse en el directorio samples. Un ejemplo deperfiles que no deben incluirse en el perfil default.xml son los perfiles que tienen el potencial de incluirmiles de parámetros (por ejemplo, si utiliza usuarios como una clase de destino) y perfiles que debenejecutarse únicamente en sistemas específicos (por ejemplo, el perfil de atributos vios).

Denominación de perfilesLos perfiles de AIX Runtime Expert se denominan según los mandatos.

Los perfiles se crean normalmente alrededor de un único mandato o de un conjunto de mandatos. Losperfiles pueden incluir varios catálogos si los catálogos están muy relacionados. La convención se utilizapara denominar los archivos según un mandato, es decir, commandProfile.xml para el perfil de ejemploy commandParam.xml para el catálogo, pero no es obligatorio. Sólo es obligatoria la extensión dearchivos .xml.

Proceso de perfilesDiscute el proceso para grabar un nuevo perfil de AIX Runtime Expert.

Se necesita realizar los siguientes pasos al grabar un nuevo perfil de AIX Runtime Expert:

1. Realizar una lista de los parámetros que desea en el perfil.2. Crear un elemento <Parameter name=“...”> para cada uno de los parámetros, estableciendo el

atributo name en el nombre utilizado en el elemento <ParameterDef> del archivo de catálogo.3. Agrupar todos los parámetros definidos en un mismo archivo de catálogo dentro del mismo <Catalog

id=“...”>, estableciendo el atributo id en el mismo ID utilizado en el elemento <Catalog> del archivode catálogo.

4. Para cada elemento <Parameter>, haga lo siguiente:

a. Si el parámetro está definido con reboot=true en el archivo de catálogo, añada los atributosreboot=true y applyType=nextboot.

b. Si el parámetro sólo debe capturarse y no establecerse, añada el atributo readOnly=true.c. Si el parámetro está definido con un atributo targetClass no vacío en el archivo de catálogo, haga lo

siguiente:

1) Si se desea el descubrimiento de destino para este parámetro, defina un único elemento<Parameter> para este parámetro y utilice el destino especial <Target class=“” instance=“” >para este elemento.

2) Si es necesario definir destinos específicos para este parámetro, defina un elemento<Parameter> para cada destino. Bajo cada elemento <Parameter>, defina loscorrespondientes elementos <Target class=“...” instance=“...” /> para especificar el destinocompletamente.

5. Probar el perfil ejecutando el mandato artexget –r.

Elementos de perfil AIX Runtime Expert

Elemento <Profile>El elemento <Profile> es el elemento raíz de todos los archivos de perfil.

74 AIX Versión 7.2: Gestión del sistema operativo

Page 81: AIX Versión 7 - IBM

Sintaxis

Se da soporte a los siguientes atributos:

Tabla 2. Atributos

Atributo Obligatorio Tipo Descripción

origin no serie Origen del perfil.

date no dateTime Fecha de creación oúltima modificación delperfil. El formato esYYYY-MM-DDThh:mm:ss.

readOnly no booleano Dice si este perfil sepuede utilizar en unaoperación set. El valorpredeterminado esfalse.

version no serie El número de versión delperfil.

Se da soporte a los siguientes elementos hijos:

Tabla 3. Elementos hijos

Elemento hijo Obligatorio Número Descripción

<ShortDescription> no 0 - 1 Descripción textualcorta del catálogo.

<Description> no 0 – 1 Descripción textual largadel catálogo.

<Comments> no 0 – 1 Comentariosproporcionados por elusuario.

<Catalog> no 0 – cualquiera Catálogo necesario paramanejar las operacionesen un perfil.

Atributos

El atributo origin

El atributo origin es un atributo informativo al que se puede asignar los siguientes valores:

• Al crear un perfil de ejemplo, el atributo origin debe estar establecido a reference.• Cuando se crea un perfil utilizando el mandato artexget, el atributo origin se establece

automáticamente en get.

Elementos hijos

El elemento <Comments> es una serie opcional reservada para otros objetivos. Este elemento no debeutilizarse cuando se crea un perfil manualmente, y no lo utilizan los mandatos AIX Runtime Expert base.

Ejemplos

1. Un perfil de ejemplo vacío tendría este aspecto:

Gestión del sistema operativo 75

Page 82: AIX Versión 7 - IBM

<?xml version="1.0" encoding="UTF-8"?><Profile origin="reference" version="2.0.0" readOnly="true"></Profile>

2. El mandato artexget -r /etc/security/artex/samples/smtctmProfile.xml da comoresultado un perfil similar al siguiente ejemplo:

<?xml version="1.0" encoding="UTF-8"?><Profile origin="get" version="2.0.1" date="2010-09-29T07:50:56Z"> <Catalog id="smtctlParam" version="2.0"> <Parameter name="enableSMT" value="1"/> </Catalog></Profile>

Información relacionada

Elemento <Catalog>

Elementos <Description> y <ShortDescription>.

Elementos <Description> y <ShortDescription>Los elementos <Description> y <ShortDescription> se pueden utilizar para proporcionar una descripcióntextual para perfiles y parámetros.

Sintaxis

El elemento padre del elemento <ShortDescription> es:

• Elemento <Profile>

El elemento padre del elemento <Description> puede ser:

• Elemento <Profile>• Elemento <Parameter>

Los elementos <Description> y <ShortDescription> tienen el mismo formato. El texto contenido por elelemento <Description> es el contenido de serie del código XML.

Uso

Las descripciones de los archivos de perfil no las utiliza actualmente la infraestructura de AIX RuntimeExpert. Los mandatos de AIX Runtime Expert ignoran cualquier comentario incluido en el perfil deentrada.

Ejemplos

A continuación, se muestra un ejemplo de los elementos <Description> y <ShortDescription>:

<ShortDescription> Resumen corto de los contenidos del campo.</ShortDescription><Description> Este campo de texto se puede utilizar para mostrar con todo detalle el uso del elemento padre. </Description>

Información relacionada

Elemento <Profile>.

Elemento <Parameter>.

Elemento <Catalog>El elemento <Catalog> indica el nombre del archivo de catálogo que contiene las definiciones de loselementos hijo <Parameter>.

76 AIX Versión 7.2: Gestión del sistema operativo

Page 83: AIX Versión 7 - IBM

SintaxisElemento padre: <Profile>

Se da soporte a los siguientes atributos:

Tabla 4. Atributos

Atributo Obligatorio Tipo Descripción

id sí serie Especifica el id decatálogo. Este nombredebería ser exclusivo enel sistema.

version no serie Especifica la versión delcatálogo utilizado paracrear este perfil.

Se da soporte a los siguientes elementos hijos:

Tabla 5. Elementos hijos

Elemento hijo Obligatorio Número Descripción

<Parameter> no 0 – cualquiera Parámetro incluido en elcatálogo.

<SubCat> no 0 – cualquiera Subcategoría incluida enel catálogo.

<Seed> no 0 – cualquiera Seed incluido en elcatálogo.

AtributosAtributo id

El atributo id debe establecerse en el nombre del catálogo que define los parámetros listados bajo elelemento <Catalog>. El atributo id es el nombre base del archivo de catálogo en el disco, con laextensión .xml eliminada. Por ejemplo, un perfil utilizará el elemento <Catalogid=“commandParam”> para hacer referencia al archivo de catálogo commandParam.xml.

De forma predeterminada, los archivos de catálogo se buscan en el directorio /etc/security/artex/catalogs. Sin embargo, es posible, únicamente para el usuario root, buscar en otrosdirectorios estableciendo la variable de entorno ARTEX_CATALOG_PATH. Se pueden especificarvarios directorios en esta variable de entorno utilizando el separador :.

Atributo version

El atributo version se graba como MM.mm, donde MM es el número principal y mm es el númerosecundario.

El atributo version debe coincidir con la versión del archivo de catálogo al que se hace referencia(consulte Elemento <Catalog> en la sección Escritura de catálogos de AIX Runtime Expert). Si unmandato de AIX Runtime Expert se ejecuta en un perfil que hace referencia a un catálogo con laversión incorrecta, se mostrará el siguiente mensaje de aviso:

0590-218 Catalog version differs from the one referenced in profileLocal catalog version is '2.1'. Version used to build profile was '2.0'

Gestión del sistema operativo 77

Page 84: AIX Versión 7 - IBM

Uso

El elemento <Catalog> identifica el archivo de catálogo que contiene la definición de la lista de inicios yparámetros. Todos los elementos de parámetro e inicios de un perfil deben encontrarse en el elemento<Catalog> correspondiente.

Un perfil puede hacer referencia a varios catálogos. Por ejemplo, el perfil default.xml se crea durante lainstalación del conjunto de archivos artex.base.sample fusionando un conjunto selecto de otrosperfiles de ejemplo.

Ejemplos

El perfil de los atributos de seguridad secattrProfile.xml utiliza tres catálogos, y cada catálogomaneja una de las tablas de seguridad:

<Profile origin="reference" readOnly="true" version="2.0.0"> <Catalog id="privcmdParam" version="2.0" <Parameter name="privatecommands" /> </Catalog> <Catalog id="privdevParam" version="2.0"> <Parameter name="privatedevices"/> </Catalog> <Catalog id="privfileParam" version="2.0"> <Parameter name="privatefiles" /> </Catalog></Profile>

Información relacionadaElemento <Catalog> (en archivos de catálogo).

Elemento <SubCat>El elemento <SubCat> proporciona un medio para crear subcategorías lógicas bajo un elemento<Catalog>.

Sintaxis

Elemento padre: <Catalog>, <SubCat>

Se da soporte a los siguientes atributos:

Tabla 6. Atributos

Atributo Obligatorio Tipo Descripción

id sí serie Especifica el nombre dela subcategoría. Estenombre debe serexclusivo dentro de unmismo elemento<Catalog>.

Se da soporte a los siguientes elementos hijos

Tabla 7. Elementos hijos

Elemento hijo Obligatorio Número Descripción

<Parameter> no 0 – cualquiera Contiene un nombre deparámetro.

<SubCat> no 0 – cualquiera Subcategoría anidada

78 AIX Versión 7.2: Gestión del sistema operativo

Page 85: AIX Versión 7 - IBM

Atributos

El atributo id identifica de forma exclusiva una subcategoría dentro de un catálogo. Un perfil puede incluirvarias subcategorías con el mismo ID, siempre que no se utilicen bajo el mismo elemento <Catalog>.

Elementos hijos

Un elemento <SubCat> puede tener otro <SubCat> como elemento hijo. No hay límite al número desubcategorías anidadas que puede definir.

Uso

Las subcategorías sólo se incluyen para su legibilidad. No afectan a la forma en que se manejan losparámetros.

Ejemplos

El perfil noProfile.xml incluye varias subcategorías. A continuación se muestra un ejemplo:

<Profile origin="reference" readOnly="true" version="2.0.0"> <Catalog id="noParam" version="2.0"> <SubCat id="general_network" <Parameter name="fasttimo"/> <Parameter name="nbc_limit"/> </SubCat> <SubCat id="tcp_network"> <Parameter name="clean_partial_conns"/> <Parameter name="delayack"/> </SubCat> <SubCat id="restricted"> <Parameter name="extendednetstats" readOnly="true"/> <Parameter name="inet_stack_size" readOnly="true"/> </SubCat> </Catalog></Profile>

Información relacionada

Elemento <Parameter>.

Elemento <Parameter>El elemento <Parameter> define un parámetro de configuración.

Sintaxis

Se da soporte a los siguientes atributos:

Tabla 8. Atributos

Atributo Obligatorio Tipo Descripción

nombre sí serie Especifica el nombre delparámetro. Este nombredebe ser exclusivodentro de un catálogo.

value no serie Valor del parámetro, sise ha definido.

Gestión del sistema operativo 79

Page 86: AIX Versión 7 - IBM

Tabla 8. Atributos (continuación)

Atributo Obligatorio Tipo Descripción

applyType no serie Especifica si deberecuperarse el valorruntime o next boot delparámetro oestablecerse si no seespecifica ningúndistintivo. El valorpredeterminado esruntime.

reboot no booleano Cuando sea true, indicaque es necesario unrearranque antes de quesea efectivo un cambiode valor. El valorpredeterminado esfalse.

readOnly no booleano Especifica si el valor delparámetro no se puedeestablecer.Predeterminado: el valores false.

disruptive no booleano Especifica si el métodoutilizado para establecerel parámetro implicarestriccionesdisruptivas. El valorpredeterminado esfalse.

setDiscover no booleano Especifica si el métodoset debe establecerseen el valor para todaslas instanciasdescubiertas de unaclase de destino. El valorpredeterminado esfalse.

Se da soporte a los siguientes elementos hijos

Tabla 9. Elementos hijos

Elemento hijo Obligatorio Número Descripción

<Value> no 0 - 1 Valor del parámetro.

<Target> no 0 - cualquiera Destino al que se aplicael parámetro.

<Description> no 0 - 1 Descripción delparámetro

<Property> no 0 - cualquiera Descripción delparámetro.

80 AIX Versión 7.2: Gestión del sistema operativo

Page 87: AIX Versión 7 - IBM

Atributos

Tabla 10. Atributos

Atributo Descripción

nombre El nombre del parámetro es el único atributonecesario del elemento <Parameter>. Junto con elnombre del catálogo especificado en el elementopadre <Catalog>, el nombre del parámetroidentifica de forma exclusiva una definición deparámetro en el archivo de catálogo.

value El valor del parámetro se puede especificar comoun atributo o como un elemento hijo.

applyType El atributo applyType puede tomar los valoresruntime (el valor predeterminado) o nextboot.Este atributo determina el mandato que se utilizapara manejar el parámetro.

Para operaciones set, applyType=runtime indicaque se debe utilizar el mandato <Settype=“permanent”> del archivo de catálogo paraestablecer el parámetro. applyType=nextbootindica que se debe utilizar en su lugar el mandato<Set type=“nextboot”>.

Para las operaciones get, cuando se utiliza eldistintivo –p, applyType=runtime indica que sedebe utilizar el mandato <Get type=“current”>desde el archivo de catálogo para obtener elparámetro. <applyType>=nextboot indica que sedebe utilizar en su lugar el mandato <Gettype=“nextboot”>.

El atributo applyType debe establecerse ennextboot si el atributo reboot se establece entrue.

Gestión del sistema operativo 81

Page 88: AIX Versión 7 - IBM

Tabla 10. Atributos (continuación)

Atributo Descripción

reboot Este atributo tiene un valor predeterminado defalse. Cuando se establece en true, significa que elsistema debe rearrancarse antes de que cualquiercambio al parámetro sea efectivo. Este atributodebe coincidir con el atributo reboot definido en elelemento <ParameterDef> correspondiente delarchivo de catálogo.

Cuando este atributo se establece en true, elatributo applyType debe establecerse ennextboot.

Cuando establece un parámetro que tieneestablecido el atributo reboot, se mostrará un avisoal usuario, afirmando que se necesita unaoperación de rearranque:

0590-206 A manual post-operation is required for the changes to take effectPlease reboot the system

Únicamente establezca el atributo reboot en truecuando no sea efectivo un cambio en el valor delparámetro hasta el siguiente rearranque.

readOnly Este atributo indica que el valor del parámetro sepuede leer mediante el mandato artexget, peroque no se establecerá utilizando el mandatoartexset, ni que se tendrá en cuenta en unaoperación de comparación con valores activosutilizando los mandatos artexdiff. El valorpredeterminado es false.

A continuación se encuentran algunas situacionesque pueden garantizar el establecimiento delatributo readOnly en true:

• El parámetro es estático y su valor no se puedemodificar (p.ej., el parámetro memory_frames delmandato vmo).

• El acceso al parámetro está restringido y no serecomienda que el usuario lo modifique enprocedimientos automáticos. En este caso, losmétodos de configuración set deben definirsepara este parámetro en el archivo de catálogo,pero un administrador del sistema debe eliminarmanualmente el atributo readOnly del perfil parapoder establecer el parámetro.

82 AIX Versión 7.2: Gestión del sistema operativo

Page 89: AIX Versión 7 - IBM

Tabla 10. Atributos (continuación)

Atributo Descripción

setDiscover Cuando el atributo setDiscover se establece en trueindica que, cuando se llama al mandato artexsetcon el distintivo –d, es necesario llamar al mandatodiscover para descubrir todas las instancias deldestino y establecerlo todo en el valor almacenadoen el perfil.

El valor predeterminado setDiscover es false. Unvalor de true sólo tiene sentido si el parámetrotiene clases de destino definidas en el archivo decatálogo.

No especifique este atributo al crear un perfil deejemplo. Los usuarios avanzados deben añadireste atributo manualmente cuando lo creannecesario.

Otros atributos

Los atributos type y disruptive son atributos informativos que se establecen automáticamente medianteel mandato artextget cuando se llama mediante el conector -i. No incluya estos atributos al crear unperfil de ejemplo.

Ejemplos

1. El siguiente ejemplo es un extracto del catálogo de ejemplo de vmoProfile.xml, que hace hincapiéen el uso de los diversos atributos opcionales:

<Profile origin="reference" readOnly="true" version="2.0.0"> <Catalog id="vmoParam" version="2.1"> <Parameter name="nokilluid"/> <Parameter name="memory_frames" readOnly="true"/> <Parameter name="kernel_heap_psize" reboot="true" applyType="nextboot"/> </Catalog></Profile>

2. Si ejecuta el mandato artexget –r en el perfil del ejemplo 1, se muestra el perfil siguiente:

<Profile origin="get" version="2.0.1" date="2011-03-24T13:41:01Z"> <Catalog id="vmoParam" version="2.1"> <Parameter name="nokilluid" value="0"/> <Parameter name="memory_frames" value="393216" readOnly="true"/> <Parameter name="kernel_heap_psize" value="4096" applyType="nextboot" reboot="true"/> </Catalog></Profile>

Información relacionada

El tema Valores de parámetros.

Elemento <ParameterDef>.

Valores de parámetrosEl valor de un parámetro se puede establecer en un perfil, ya sea como atributo, si es lo bastante corto, ocomo elemento hijo del elemento <Parameter>.

Uso

Al grabar un perfil de ejemplo, no se debe asignar ningún valor a los parámetros. El valor de unparámetro, si existe, se incluye automáticamente en el perfil obtenido al ejecutar un mandato artexget.

Gestión del sistema operativo 83

Page 90: AIX Versión 7 - IBM

Los valores runtime y nextboot

El concepto de los valores runtime y nextboot es una parte importante de la infraestructura de AIXRuntime Expert.

El valor runtime del parámetro es su valor actual recuperado en el sistema en el momento en el que seejecuta el mandato artexget. El valor nextboot es el valor que tendrá el parámetro tras el siguienterearranque del sistema.

Por ejemplo, el parámetro type_of_dump del perfil sysdumpdevProfile.xml. El valor (runtime) actualde este parámetro puede ser tradicional o asistido por firmware. Si este valor se cambia(utilizando el mandato artexset o directamente utilizando el mandato sysdumpdev), no será efectivohasta el siguiente rearranque. El valor nextboot de este parámetro será entonces el valor modificado.

<Parameter name="type_of_dump" applyType="nextboot" reboot="true" />

Ejemplo

El siguiente ejemplo muestra un parámetro con el valor especificado como atributo, y otro parámetro conel valor especificado como elemento hijo:

<Profile origin="get" version="2.0.1" date="2010-09-28T12:30:03Z"><Catalog id="login.cfgParam" version="2.0"><Parameter name="shells"><Value>/bin/sh,/bin/bsh,/bin/csh,/bin/ksh,/bin/tsh,/bin/ksh93,/usr/bin/sh,/usr/bin/bsh,/usr/bin/csh,/usr/bin/ksh,/usr/bin/tsh,/usr/bin/ksh93,/usr/bin/rksh,/usr/bin/rksh93,/usr/sbin/uucp/uucico,/usr/sbin/sliplogin,/usr/sbin/snappd</Value></Parameter><Parameter name="maxlogins" value="32767"/></Catalog></Profile>

Elemento <Property>El elemento <Property> asigna un valor a una propiedad de parámetro.

SintaxisElemento padre: <Parameter>

Se da soporte a los siguientes atributos:

Tabla 11. Atributos

Atributo Obligatorio Tipo Descripción

nombre sí serie Especifica el nombre dela propiedad.

value no serie Especifica el valor de lapropiedad.

Uso

El elemento <Property> asigna un valor al nombre de propiedad del elemento padre. Este valor se utilizacuando la secuencia %p[nombre] se expande durante la generación de línea de mandatos.

El elemento <Property> no se suele añadir manualmente a los perfiles. El elemento se insertaautomáticamente en el perfil de salida cuando se ejecutan los mandatos artexget –r y artexget –n,en función del mandato definido bajo el elemento <Property> correspondiente del archivo de catálogo.

84 AIX Versión 7.2: Gestión del sistema operativo

Page 91: AIX Versión 7 - IBM

Ejemplo

El siguiente ejemplo establece la propiedad nodeId para el parámetro netaddr. El valor de la propiedades capturado por el mandato artexget–r y es la salida del mandato uname–f:

<Parameter name="netaddr" value="172.16.128.13"> <Target class="device" instance="en0"/> <Property name="nodeId" value="8000108390E00009"/></Parameter>

Información relacionadaartex_catalog_elem_PropertyDef.dita (en archivos de catálogo).

Elemento <Seed>El elemento <Seed> define un inicio que se expande en uno o varios elementos <ParameterDef> durantela operación <Get>.

SintaxisElemento padre: <Catalog>

Está soportado el siguiente atributo:

Tabla 12. Atributo

Atributo Obligatorio Tipo Descripción

nombre sí serie Especifica el nombre delelemento de inicio quecoincide con elelemento SeedDef en elarchivo de catálogo.

Se da soporte a los siguientes elementos hijos:

Tabla 13. Elementos hijo

Elemento hijo Obligatorio Número Descripción

<Parameter> no 0 – cualquiera Los filtros encontraronparámetros basados enlos nombres de losparámetros.

<Target> no 0 – cualquiera Los filtros encontraronparámetros basados enlos destinos.

Uso

El elemento <Seed> descubre los parámetros de manera dinámica durante una operación <Get>.

Cuando se emite el mandato artexget, cada elemento <Seed> del perfil de entrada se expande en unoo varios elementos <Parameter>. Los perfiles se expanden en función de las reglas definidas en elelemento <SeedDef> coincidente del archivo de catálogo. Este proceso se denomina descubrimiento deparámetro. Después de finalizar el proceso de descubrimiento del parámetro, el mandato artexgetprosigue de la forma habitual con el perfil expandido.

Los elementos hijo <Parameter> y <Target> opcionales se utilizan para filtrar los parámetrosdescubiertos. Se descartan los parámetros descubiertos que no coinciden con los criterios definidos en elsubelemento <Parameter>. Del mismo modo, se descartarán aquellos parámetros que se apliquen adestinos que no coincidan con los criterios definidos en el subelemento <Target>.

Gestión del sistema operativo 85

Page 92: AIX Versión 7 - IBM

Ejemplos

Este ejemplo utiliza el catálogo devSeed para definir un inicio que se pueda utilizar para encontrar todoslos atributos de todos los dispositivos:

<?xml version="1.0" encoding="UTF-8"?><Catalog id="devSeed" version="3.0"> <SeedDef name="devAttr"> <Discover> <Command> /usr/sbin/lsdev -F 'name class subclass type' | while read DEV CLASS SUBCLASS TYPE do CAT=devParam.$CLASS.$SUBCLASS.$TYPE /usr/sbin/lsattr -F attribute -l $DEV | while read PAR do echo "device=$DEV $CAT $PAR" done done </Command> Mask target="1" catalog="2" name="3">(.*) (.*) (.*)</Mask> </Discover> </SeedDef></Catalog>

El siguiente perfil se puede utilizar para buscar todos los atributos soportados de todos los dispositivossoportados:

<?xml version="1.0" encoding="UTF-8"?><Profile> <Catalog id="devSeed" version="3.0"> <Seed name="devAttr"/> </Catalog></Profile>

2. Utilizando el mismo catálogo, se puede utilizar un filtro <Target> para descubrir todos los atributoscompatibles de todos los adaptadores Ethernet:

<?xml version="1.0" encoding="UTF-8"?><Profile> <Catalog id="devSeed" version="3.0"> <Seed name="devAttr"> <Target class="device" match="^en[0-9]+$"/> </Seed> </Catalog></Profile>

3. Se puede añadir un filtro <Parameter> para capturar únicamente los atributos netaddr, netaddr6,alias y alias6 de todos los adaptadores Ethernet:

<?xml version="1.0" encoding="UTF-8"?><Profile> <Catalog id="devSeed" version="3.0"> <Seed name="devattr"> <Parameter match="^(netaddr|alias)6?$"/> <Target class="device" match="^en[0-9]+$"/> </Seed> </Catalog></Profile>

Información relacionadaEl elemento artex_catalog_elem_SeedDef.dita (en archivos de catálogo).

Elemento <Target>Un elemento <Target> define la instancia de una clase de destino a la que se aplica el parámetro.

Sintaxis

Elemento padre: <Parameter>

86 AIX Versión 7.2: Gestión del sistema operativo

Page 93: AIX Versión 7 - IBM

Se permiten varias apariciones del mismo parámetro desde los mismos catálogos si, y sólo si, se aplican adistintas instancias de su destino.

Se da soporte a los siguientes atributos:

Tabla 14. Atributos

Atributo Obligatorio Tipo Descripción

clase sí serie Especifica el nombre dela clase de destino.

instance no* serie Especifica el nombre dela instancia de unaclase.

match no* serie Especifica la expresiónregular como se aplica alos nombres deinstancia descubiertos.

* Se debe especificar uno y sólo uno de los atributos instance y match.

Uso

Algunos parámetros no se aplican al sistema en su conjunto, sino a un objeto específico. Un ejemplo es eldirectorio home de un usuario como se especifica en el perfil chuserProfile.xml; este parámetro seaplica a un usuario específico (root, invitado) en un módulo cargable específico (archivos, LDAP). En esteejemplo, el usuario y el módulo son dos clases de destino. El parámetro home se aplica a instanciasespecíficas de estas clases de destino. Por ejemplo, la instancia de invitado de la clase de usuario, y lainstancia de archivos de la clase de módulo.

Si los atributos class e instance se establecen en la serie vacía, se realizará un descubrimiento para esteparámetro cuando se ejecute el mandato artexget en tal perfil, cuando el método de descubrimientodeclarado en el archivo de catálogo correspondiente se ejecute, y se cree un parámetro en el perfil desalida para cada instancia descubierta del parámetro. Consulte el ejemplo 1.

Si se especifican los atributos class e instance, el destino se especificará y el parámetro sólo se aplicará ala instancia especificada de la clase de destino. Consulte el ejemplo 2.

Si se especifican los atributos class y match, se realizará un descubrimiento como anteriormente, perosólo se descubrirán las instancias de destino con un nombre que coincida con la expresión regularespecificada en el atributo match. Consulte el ejemplo 3.

Al grabar un perfil de ejemplo, se deben dejar vacíos los atributos class e instance. Esto significa que, alencontrar la clase de destino vacía, el mandato artexget descubrirá la lista de las instancias de dichaclase de destino (todos los usuarios o los subsistemas del sistema) antes de recuperar los valores.

La ejecución del mandato artexset en una clase de destino no descubierto muestra un aviso:

0590-216 Some parameters in the profile require a target discovery and will be ignored

Ejemplos

1. Un ejemplo de un perfil con destinos antes del descubrimiento es el perfil chuserProfile.xml quedefine el directorio inicial de un usuario. El siguiente ejemplo muestra un perfil de ejemplo:

<Profile version="2.0.0" origin="reference" readOnly="true"> <Catalog id="chuserParam" version="2.0"> <Parameter name="home"> <Target class="" instance=""/> </Parameter> </Catalog></Profile>

Gestión del sistema operativo 87

Page 94: AIX Versión 7 - IBM

2. Tras el descubrimiento, el perfil chuserProfile.xml puede contener una copia del parámetro inicialpara cada usuario descubierto en cada uno de los módulos cargables descubiertos:

<Profile version="2.0.0" origin="get"> <Catalog id="chuserParam" version="2.0">

<Parameter name="home" value="/"> <Target class="user" instance="root"/> <Target class="module" instance="files"/> </Parameter>

<Parameter name="home" value="/etc"> <Target class="user" instance="daemon"/> <Target class="module" instance="files"/> </Parameter>

...

</Catalog></Profile>

3. El siguiente perfil utiliza el atributo match para descubrir el directorio inicial de todos los usuarios conun nombre que comience con un u en el módulo de archivo:

<Profile version="2.0.0" origin="reference" readOnly="true" <Catalog id="chuserParam" version="2.0"> <Parameter name="home"> <Target class="user" match="^u"/> <Target class="module" instance="files"/> </Parameter></Catalog></Profile>

Información relacionada

Elemento <Discover> (en archivos de catálogo).

Grabación de catálogos AIX Runtime ExpertLos archivos de catálogo se utilizan internamente mediante la infraestructura de AIX Runtime Expert.

Los archivos de catálogo contienen las definiciones de los parámetros y la información de enlace para losmétodos de configuración que describen los mandatos utilizados para recuperar o establecer valores deparámetros. Los archivos de catálogo son locales para el sistema que se está ajustando y configurando.

Conceptos de catálogo de AIX Runtime ExpertLos archivos de catálogo contienen toda la información necesaria para realizar operaciones enparámetros, incluidas definiciones, condiciones de uso y métodos de configuración. Los archivos decatálogo no deben manipularse directamente por usuarios y sólo se utilizan mediante el motor de imagende la memoria de AIX Runtime Expert.

Los catálogos se instalan en un sistema, al mismo tiempo que el motor de imagen de la memoria de AIXRuntime Expert. Cuando se enlacen nuevos catálogos con componentes o aplicaciones de terceros queestén instaladas en un sistema, es importante asegurar que están a nivel con el motor de imagen de lamemoria de AIX Runtime Expert instalado.

Ubicación del catálogoLos archivos de catálogo de AIX Runtime Expert se almacenan en el directorio /etc/security/artex/catalogs.

El nombre del archivo de catálogo debe coincidir de forma exacta con su atributo id, que lleva laextensión .xml como sufijo. Por ejemplo, un catálogo denominado commandParam.xml debe tener unvalor de atributo id commandParam.

A fin de poder ser ubicado por el perfil que le hace referencia, el catálogo debe tener el mismo nombre enel archivo XML del catálogo y en el elemento <Catalog> del archivo XML del perfil. De formapredeterminada, el motor de imagen de memoria de AIX Runtime Expert busca catálogos en el directoriopredeterminado /etc/security/artex/catalogs. Este comportamiento se puede cambiar,

88 AIX Versión 7.2: Gestión del sistema operativo

Page 95: AIX Versión 7 - IBM

únicamente para el usuario root, estableciendo la variable de entorno ARTEX_CATALOG_PATH. Sepueden especificar varios directorios en esta variable de entorno utilizando el separador :.

Proceso del catálogoPasos para grabar un nuevo catálogo de AIX Runtime Expert.

Se necesitan realizar los siguientes pasos al grabar un nuevo catálogo de AIX Runtime Expert:

1. Realizar una lista de parámetros que desea en el archivo de catálogo.2. Para cada parámetro, cree un elemento <ParameterDef>3. Si varios parámetros utilizan el mismo mandato para una operación <Get>, <Set>, <Discover> o

<Diff>:

• Defina un elemento <CfgMethod> en la parte superior del catálogo.• Utilice el atributo cfgmethod para heredarlo desde el método de configuración.

4. Si hay varios parámetros sujetos a la misma restricción, defina un elemento <ConstraintDef> en laparte superior del catálogo.

5. Para cada parámetro:

a. Defina las operaciones <Get type=“current”> y <Get type=“nextboot”> para cada parámetro, yasea directamente bajo el elemento <ParameterDef> o mediante referencia bajo el elemento<CfgMethod>, o bien utilizando cualquiera de las combinaciones.

b. Defina todas las operaciones <Set> admitidas para cada parámetro, ya sea directamente bajo elelemento <ParameterDef>, bajo el elemento <CfgMethod> al que se hace referencia o utilizandocualquier combinación de dichas posibilidades.

c. Si el parámetro requiere un destino:

1) Defina las clases de destino soportadas utilizando el atributo targetClass2) Defina la operación discover, ya sea directamente bajo el elemento <ParameterDef>, en el

elemento <CfgMethod> al que se hace referencia o utilizado cualquier combinación de dichasposibilidades. En la mayoría de los casos, el método discover se definirá en un método deconfiguración.

d. Si el parámetro requiere un rearranque para que tenga efecto un cambio, añada el atributorearranque =true.

e. Si el parámetro está sujeto a una restricción, defina un elemento <ConstraintDef> bajo el elemento<ParameterDef> o utilice el atributo de restricción para hacer referencia a una restricciónexistente.

6. Para probar el archivo de catálogo:

a. Cree un perfil con todos los parámetros definidos en el archivo de catálogo.b. Utilice el mandato artexget –r para capturar valores y probar las operaciones <Discover> y

<Get>.c. Utilice el mandato artexset –c –F –R –l all en el perfil resultante para probar las

operaciones <Set> y <Diff>.d. De forma adicional, los distintivos –g 3 –g COMMANDS pueden añadirse a aquellos dos mandatos

para obtener más información sobre la línea de mandatos generada para realizar la operaciónsolicitada.

Información relacionada

Consulte el tema sobre el elemento raíz <Catalog>.

Elementos de catálogo de AIX Runtime Expert

Elemento <Catalog>El elemento <Catalog> es el elemento raíz para todos los archivos de catálogo.

Gestión del sistema operativo 89

Page 96: AIX Versión 7 - IBM

Sintaxis

Se da soporte a los siguientes atributos:

Tabla 15. Atributos

Atributo Obligatorio Tipo Descripción

id sí serie Especifica el nombre delcatálogo. Este nombredebe ser exclusivo en elsistema.

version no serie Especifica el número deversión del catálogo.

date no dateTime Especifica la fecha decreación. El formato esYYYY-MM-DDThh:mm:ss.

priority no entero Especifica el orden deejecución del catálogorelativo a otros en losmétodos set. El valorpredeterminado es 0.

inherit no serie Especifica el nombre deun catálogo paraheredar.

Se da soporte a los siguientes elementos hijos. La columna número define el número de apariciones delhijo que están permitidos:

Tabla 16. Elementos hijo

Elemento hijo Obligatorio Número Descripción

<ShortDescription> no 0 – 1 Descripción textualcorta para el catálogo.

<Description> no 0 – 1 Descripción textual largapara el catálogo.

<SubCat> no 0 – cualquiera Subcategoría

<ParameterDef> no 0 – cualquiera Contiene laspropiedades de unparámetro.

<ConstraintDef> no 0 – cualquiera Definición derestricciones deparámetros(condiciones ymandatos disruptivos).

<CfgMethod> no 0 – cualquiera Definición del métodode configuración

<PrereqDef> no 0 – cualquiera Define un requisitoprevio.

<PropertyDef> no 0 – cualquiera Define una propiedad.

<SeedDef> no 0 – cualquiera Define un inicio.

90 AIX Versión 7.2: Gestión del sistema operativo

Page 97: AIX Versión 7 - IBM

Atributos

Tabla 17. Atributos

Atributo Descripción

id El atributo id debe coincidir con el nombre del archivo de catálogo, sin laextensión .xml. En los perfiles, se hace referencia al ID de catálogo mediante elelemento <Catalog>.

Prioridad El atributo priority se utiliza cuando los métodos set de un catálogo específico senecesitan para ejecutarse antes o después de los métodos set de otros catálogoscuando se incluyen en el mismo perfil (por ejemplo, el perfil compuestodefault.xml). La prioridad predeterminada de un catálogo es 0.

La regla es que cuando dos catálogos compartan la misma prioridad, sus métodosset se ejecutan en un orden indefinido. Si un catálogo tiene una prioridad con unvalor positivo, sus métodos set se ejecutan antes que los otros, en el orden deprioridad descendente. Si un catálogo tiene una prioridad con un valor negativo, susmétodos set se ejecutan después de los otros, en el orden de prioridaddescendente.

Version El atributo Version está presente en ambos perfiles y catálogos. La versión ayuda aidentificar si los perfiles y catálogos son compatibles con el motor de imagen de lamemoria de AIX Runtime Expert y entre sí. Consulte el atributo Version paraobtener más detalles.

Date Actualmente, el atributo date no se utiliza para el elemento <Catalog>. Se incluyepara un uso y mantenibilidad futuros.

inherit El atributo inherit especifica el nombre de un catálogo desde el que realizar laherencia, sin la extensión .xml. Todos los elementos definidos en el catálogoheredado están disponibles en el catálogo principal, como si se definiesenlocalmente.

Ejemplo

A continuación se muestra un ejemplo de un catálogo que utiliza el atributo priority. El catálogoaixpertParam.xml establece opciones de seguridad y debe establecerse una vez que el resto de loscatálogos se hayan establecido. Por lo tanto, su prioridad se establece en un alto valor negativo.

<Catalog id="aixpertParam" version="2.0" priority="-1000">

Información relacionada

Elemento <ConstraintDef>.

Elemento <CfgMethod>.

Elementos <Description> y <ShortDescription>.

Elemento <ParameterDef>.

Elemento <SubCat>.

Atributo Version

Gestión del sistema operativo 91

Page 98: AIX Versión 7 - IBM

Sintaxis

La versión de un catálogo se graba como un atributo en el formato MM.mm, donde MM es el númeroprincipal y mm es el número secundario.

<Catalog id="commandParam" version="2.0">

Número de versión principal

El número de versión principal es el mismo para todos los catálogos de AIX Runtime Expert instalados enun sistema, y toda la infraestructura de AIX Runtime Expert, donde se hace referencia. Este númeroprincipal se incrementa en cada cambio principal del esquema XML de los perfiles y catálogos.

Al crear un nuevo catálogo, establezca el número de versión principal al número de versión del motor deimagen de la memoria de AIX Runtime Expert actual, que se puede encontrar buscando dentro decualquiera de los archivos de catálogo estándar que se reciben con el catálogo de archivosartex.base.rte.

Si se invoca un mandato artexget en un perfil cuyo número de versión principal difiere del que se hacereferencia en el motor de imagen de la memoria de AIX Runtime Expert, el mandato fallará con elsiguiente error:

0590-117 Version errorThis profile was created on a version unsupported by ARTEX

También se aconseja que un perfil y un catálogo compartan el mismo número de versión principal paraser compatibles. Un perfil hace referencia a catálogos con un número de versión específico. Si el númerode versión principal del perfil no es el mismo que el número de versión principal del catálogo, cualquiermandato AIX Runtime Expert mostrará un aviso para informar al usuario de que los resultados pueden serimpredecibles:

0590-218 Catalog version differs from the one referenced in profile

Número de versión secundario

El número de versión secundario es específico de cada catálogo y se incrementa cada vez que un cambioprincipal del catálogo lo hace incompatible con la versión anterior. Un perfil hace referencia a catálogoscon un número de versión específico. Si el número de versión secundario del perfil no es el mismo que elnúmero de versión secundario del catálogo, cualquier mandato AIX Runtime Expert emitirá un aviso parainformar al usuario de que los resultados pueden ser impredecibles:

0590-218 Catalog version differs from the one referenced in profile

Al crear un nuevo catálogo o perfil de muestra, establezca el número de versión secundario en 0.

Elementos <Description> y <ShortDescription>Las descripciones son campos de texto informativos opcionales que se pueden añadir a varios elementosde los archivos de catálogo. Estos campos son opcionales, pero se recomienda que los grabadores delcatálogo los utilicen para documentar el elemento padre.

Sintaxis

El elemento padre de un elemento <ShortDescription> puede ser uno de los siguientes:

• <Catalog>• <SubCat>

El elemento padre de un elemento <Description> puede ser uno de los siguientes:

• <Catalog>• <SubCat>

92 AIX Versión 7.2: Gestión del sistema operativo

Page 99: AIX Versión 7 - IBM

• <ParameterDef>• <ConstraintDef>

El contenido de los elementos <Description> y <ShortDescription> es una serie simple o un mensajetraducido definido por uno de estos elementos: <NLSCatalog>, <NLSSmitHelp> o <NLSCommand>.Consulte el tema de Soporte de globalización para obtener más información.

Uso

Actualmente, solo se recupera y se muestra la descripción de elementos <ParameterDef> mediante elmandato artexget con el distintivo -i. Se recomienda proporcionar globalización para el texto incluidoen dichos campos de descripción.

El campo de descripción del resto de los elementos no lo utiliza actualmente la infraestructura de AIXRuntime Expert, pero debe proporcionar un uso futuro para fines de documentación.

Ejemplo

1. A continuación se muestra un ejemplo sencillo de los campos de descripción:

<ShortDescription> chuser parameters</ShortDescription><Description> Parameter definition for the chuser command</Description>

2. El mismo ejemplo, utilizando mensajes traducidos desde el archivo de mensajes artexcat.cat:

<ShortDescription><NLSCatalog catalog="artexcat.cat" setNum="12" msgNum="1"> chuser parameters</NLSCatalog></ShortDescription><Description><NLSCatalog catalog="artexcat.cat" setNum="12" msgNum="2"> Parameter definition for the chuser command</NLSCatalog></Description>

Soporte de globalizaciónEsta sección describe cómo se implementa la globalización en los campos descriptivos de los catálogosde AIX Runtime Expert.

Sintaxis

Elemento padre: <Description>, <ShortDescription>

El elemento padre puede contener uno (y sólo uno) de los siguientes elementos hijos:

Tabla 18. Elementos hijos

Elemento hijo Obligatorio Número Descripción

<NLSCatalog> no 0 – 1 Serie incluida en uncatálogo de mensajes

<NLSSmitHelp> no 0 – 1 Serie incluida en unarchivo HTML de ayudaSMIT

<NLSCommand> no 0 – 1 Serie emitida por unmandato AIX

Gestión del sistema operativo 93

Page 100: AIX Versión 7 - IBM

Catálogo NLS

El formato de globalización Catálogo NLS se utiliza cuando el mensaje localizado a mostrar se incluye enun catálogo de mensajes existente en el formato catgets().

El elemento <NLSCatalog> contiene los atributos siguientes:

Tabla 19. Atributos

Atributo Obligatorio Tipo Descripción

catalog sí serie Nombre del catálogodonde reside el mensaje

setNum sí entero Número del conjunto demensajes donde resideel mensaje

msgNum sí entero Número del mensaje enel conjunto de mensajes

Si el catálogo de mensajes localizado no existe, se mostrará el mensaje predeterminado en su lugar. Elmensaje predeterminado se incluye, opcionalmente, como contenido del elemento <NLSCatalog>. Esuna práctica recomendada proporcionar un mensaje predeterminado.

Ayuda SMIT de NLS

El formato de globalización Ayuda Smit de NLS se utiliza cuando el mensaje localizado que se va amostrar ya existe en un archivo HTML de ayuda SMIT.

El elemento <NLSSmitHelp> contiene el atributo siguiente:

Tabla 20. Atributos

Atributo Obligatorio Tipo Descripción

msgId sí entero El campo help_msg_idproporcionado en lastanza SMIT

Si el archivo de ayuda localizado no existe, el mensaje predeterminado se mostrará en su lugar. Elmensaje predeterminado se incluye, opcionalmente, como contenido del elemento <NLSSmitHelp>. Esuna práctica recomendada proporcionar un mensaje predeterminado.

Mandato NLS

El formato de globalización del mandato NLS utiliza cuando el mensaje localizado que se va a mostrar seemite mediante un mandato AIX. Este es el caso para todos los mandatos de ajuste (como no, vmo) queproporcionan un distintivo –h para mostrar texto de ayuda para un parámetro específico.

El elemento <NLSCommand> contiene el atributo siguiente:

Tabla 21. Atributo

Atributo Obligatorio Tipo Descripción

mandato mandato serie Expresión del shell aejecutar

94 AIX Versión 7.2: Gestión del sistema operativo

Page 101: AIX Versión 7 - IBM

Ejemplos

1. Ejemplo del elemento <NLSCatalog> desde el catálogo chssysParam.xml de AIX Runtime Expert,incluido un mensaje predeterminado.

<Description> <NLSCatalog catalog="artexcat.cat" setNum="10" msgNum="2"> Cambia la definición de un subsistema en la clase de objeto de subsistema. </NLSCatalog></Description>

2. Ejemplo del elemento <NLSSmitHelp>:

<Description> <NLSSmitHelp msgId="055136"/></Description>

3. Ejemplo del elemento <NLSCommand> desde el catálogo schedoParam.xml:

<Description> <NLSCommand command="/usr/sbin/schedo -h maxspin | /usr/bin/tail -n +2"/></Description>

Elemento <SubCat>Las subcategorías, los parámetros opcionales y los subconjuntos dentro de un catálogo se puedenespecificar utilizando el elemento <SubCat> dentro de un archivo de catálogo.

Sintaxis

Elemento padre: <Catalog>, <SubCat>

Se da soporte a los siguientes atributos:

Tabla 22. Atributos

Atributo Obligatorio Tipo Descripción

id sí serie Especifica el nombre dela subcategoría decatálogo. Este nombredebe ser exclusivo pornombre de catálogo.

Se da soporte a los siguientes elementos hijos:

Tabla 23. Elementos hijos

Elemento hijo Obligatorio Descripción

<ShortDescription> no Descripción textual corta de lasubcategoría.

<Description> no Descripción textual larga de lasubcategoría.

<SubCat> no Subcategoría anidada. Esteelemento se puede dar en variasocasiones.

<ParameterDef> no Contiene las propiedades de unparámetro. Este elemento sepuede dar en varias ocasiones.

Gestión del sistema operativo 95

Page 102: AIX Versión 7 - IBM

Atributo

Una subcategoría es local para un catálogo:

• Un id de subcategoría es exclusivo dentro de un archivo de catálogo.• Varios catálogos pueden hacer uso del mismo identificador de subcategoría.

Las subcategorías definidas en un catálogo deben coincidir exactamente con las subcategorías de las quese informa en el perfil de muestra asociado.

Información relacionada

Elementos <Description> y <ShortDescription>.

Elemento <SubCat>.

Elemento <ParameterDef>.

Elemento <ParameterDef>AIX Runtime Expert se define en un archivo de catálogo mediante el elemento <ParameterDef>.

Sintaxis

Elemento padre: <Catalog>, <ParameterDef>

Se da soporte a los siguientes atributos:

Tabla 24. Atributos

Atributo Obligatorio Tipo Descripción

nombre sí serie Especifica el nombre delparámetro. Este nombredebe ser exclusivo porcatálogo.

type sí serie Especifica el tipo deparámetro, como se vedesde el motor deimagen de la memoria.

targetClass no serie Especifica las clases dedestino para elparámetro, si las hay.

reboot no booleano Cuando sea true, indicaque es necesario unrearranque. El valorpredeterminado esfalse.

cfgmethod no serie Especifica el ID delmétodo de configuracióndefinido en el nivel<Catalog> que contienelos métodos que utilizarpara este parámetro.

constraint no serie Especifica el ID de unarestricción definida en elnivel de elemento<Catalog> del archivo decatálogo actual.

96 AIX Versión 7.2: Gestión del sistema operativo

Page 103: AIX Versión 7 - IBM

Tabla 24. Atributos (continuación)

Atributo Obligatorio Tipo Descripción

priority no entero Rango de ejecución deeste parámetro en elmétodo set relativo aotros parámetros deeste catálogo. El valorpredeterminado es 0.

Se da soporte a los siguientes elementos hijos:

Tabla 25. Elementos hijos

Elemento hijo Obligatorio Descripción

<Description> no Descripción textual delparámetro.

<ConstraintDef> no Definición de restricción deparámetro (mandatosdisruptivos).

<Get> no Definición del método deconfiguración para la operaciónget. Este elemento se puede daren varias ocasiones.

<Set> no Definición del método deconfiguración para la operaciónset. Este elemento se puede daren varias ocasiones.

<Diff> no Definición del método deconfiguración para la operacióndiff.

<Discover> no Definición del método deconfiguración para eldescubrimiento de destino.

Atributo

Tabla 26. Atributos

Atributo Descripción

nombre El atributo name identifica de forma exclusiva unparámetro dentro de un archivo de catálogo.Consulte el tema de atributo de nombre deparámetro para obtener más información.

Gestión del sistema operativo 97

Page 104: AIX Versión 7 - IBM

Tabla 26. Atributos (continuación)

Atributo Descripción

type El atributo type requerido indica el tipo de valor delparámetro. Los valores soportados son:

• serie, para series alfanuméricas;• entero, para valores numéricos;• integer-bi, para valores numéricos con un sufijo

K, M, G, T, P o E opcional, en mayúscula ominúscula, para “kilo”, “mega”, “giga”, “tera”,“peta” y “exa”. Estos sufijos se interpretan comopotencias de 1024;

• integer-si, para valores numéricos con un sufijoSI opcional. Igual que el tipo integer-bi, aexcepción de que los sufijos se interpretan comopotencias de 1000.

• booleano, para valores booleanos. Los valoressoportados son 0 y 1.

• binario, para valores binarios, codificados comoseries de base-64 en perfiles.

reboot El valor predeterminado del atributo booleano‘reboot’ es “false”. Si un cambio de parámetrorequiere que se produzca un reinicio, esteparámetro debe tener su atributo ‘reboot’establecido en “true”.

El propio AIX Runtime Expert nunca rearranca lossistemas. De forma predeterminada, el mandatoartexset no forzará el establecimiento deparámetros de rearranque. Si el perfil contieneparámetros de rearranque, el mandato fallará:

0590-502: profile has parameters that require a reboot.Profile has not been set. Use -l all flag to force set for all parameters

Si se llama con el distintivo –l adecuado, elmandato artexset establece el valor y advierte alos usuarios de que se necesita un reinicio paraque los cambios entren en vigor:

0590-206 A manual post-operation is required for thechanges to take effectPlease reboot the system

98 AIX Versión 7.2: Gestión del sistema operativo

Page 105: AIX Versión 7 - IBM

Tabla 26. Atributos (continuación)

Atributo Descripción

priority De forma predeterminada, los parámetros seestablecen sin orden definido mediante elmandato artexset. El atributo priority se puedeutilizar para alterar este comportamiento y forzarque se establezca un parámetro antes o despuésde otros parámetros.

La prioridad predeterminada es 0. El atributopriority se puede utilizar para cambiar estaprioridad predeterminada a cualquier valor enteroentre -2147483648 y 2147483647. Losparámetros con una prioridad mayor se ejecutanantes que parámetros con una prioridad menor. Elorden en que se establecen los parámetros con lamisma prioridad es indefinido.

targetClass Es necesario asociar algunos parámetros con undestino, como se explica en la sección sobre el“Elemento de destino” de un perfil. Dichosparámetros deben tener sus atributos targetClassestablecidos en la lista separada por comas de susclases de destino soportadas.

cfgmethod Un elemento <ParameterDef> puede heredarelementos de la línea de mandatos desde unelemento <CfgMethod>. Para ello, debe hacerreferencia al atributo id de este método deconfiguración con el atributo cfgmethod. Paraobtener más información sobre los métodos deconfiguración, consulte la sección sobre elElemento <CfgMethod>.

constraint Un elemento <ParameterDef> puede utilizar elatributo constraint para hacer referencia al atributoid de un elemento <ConstraintDef>, lo que indicaque el parámetro está sujeto a la restricción. Paraobtener más información sobre las restricciones,consulte la sección sobre el “Elemento<ConstraintDef>”.

Ejemplos

1. A continuación se encuentra un ejemplo de una definición de parámetros con un tipo de enteroalternativo: kernel_heap_size, desde el archivo de catálogo vmoParam.xml:

<ParameterDef name="kernel_heap_psize" type="integer-bi">

Al extraer el valor de este parámetro a través de un mandato artexget, el resultado es algo así como(extraído del perfil resultante).

<Parameter name="kernel_heap_psize" value="16M"… />

El valor del parámetro se interpretará de forma diferente, en función del tipo:

• Dado que se declara como del tipo integer-bi, el valor es 16M= 16,777,216.

Gestión del sistema operativo 99

Page 106: AIX Versión 7 - IBM

• Si el tipo hubiese sido integer-si, el valor habría sido “16M”=16,000,000.2. Ejemplo de un parámetro binario: la base de datos de firma fiable tsd.dat en el catálogotsdParam.xml:

<ParameterDef name="tsdatabase" type="binary">

3. Ejemplo de un parámetro con un atributo reboot. El tipo de parámetro dump en el catálogosysdumpdevParam.xml:

<ParameterDef name="type_of_dump" type="string" reboot="true">

4. Ejemplo de un parámetro con una clase de destino: el parámetro addr del catálogomktcpipParam.xml se aplica a una interfaz de red específica:

<ParameterDef name="addr" type="string" cfgmethod="mktcpip" targetClass="interface">

5. Ejemplo de un parámetro con varias clases de destino: el parámetro de especificación dedenominación de coreParam.xml se aplica a un usuario específico (root, admin, guest, etc.). en unregistro específico (archivos, LDAP).

<ParameterDef name="namingspecification" type="string" reboot="true" targetClass="user,registry" cfgmethod="coremgt">

6. Ejemplo de uso del atributo cfgmethod: para la operación <Get type="current">, el parámetro fijo delcatálogo chlicenseParam.xml hereda el elemento <Command> del método de configuraciónchlicense, pero también define sus propios <Filter> y <Mask> localmente para esta misma operación:

<CfgMethod id="chlicense"> <Get type="current"> <Command>lslicense -c -A</Command> </Get></CfgMethod><ParameterDef name="fixed" cfgmethod="chlicense" type="integer"> <Get type="current"> <Filter>tail -n 1 | cut -d: -f3</Filter> <Mask value="1">(.*)</Mask> </Get></ParameterDef>

7. Ejemplo de uso del atributo constraint: el parámetro authorizations del catálogo authParam.xml estásujeto a la restricción setkst definida anteriormente en un elemento <ConstraintDef>:

<ParameterDef name="authorizations" cfgmethod="cat" constraint="setkst" type="string">

Atributo nameEl nombre de un parámetro se dicta normalmente mediante el mandato utilizado para obtener oestablecer el parámetro.

Los nombres de los parámetros deben ser exclusivos dentro de un archivo de catálogo. Se requiere paraasegurar que un elemento <Parameter> de un perfil se pueda asociar con un elemento <ParameterDef>exclusivo de un archivo de catálogo.

• Si el mandato get muestra varios pares parámetro-valor, el elemento <Mask> se puede utilizar paraextraer varios parámetros desde una única salida de mandato. Sólo es posible si el nombre delparámetro coincide con el nombre utilizado en la salida del mandato get.

• Si el mandato set acepta varios pares parámetro-valor, las secuencias %n y %v1 se pueden utilizar enun elemento <Argument> para establecer varios parámetros con un único mandato. Esto sólo esposible si el nombre del parámetro coincide con el nombre utilizado por el mandato set.

100 AIX Versión 7.2: Gestión del sistema operativo

Page 107: AIX Versión 7 - IBM

Ejemplos

1. Ejemplo: el mandato raso –a utilizado en el catálogo rasoParam.xml muestra un parámetro porlínea de visualización:

kern_heap_noexec = 0kernel_noexec = 1mbuf_heap_noexec = 0mtrc_commonbufsize = 485

En este caso sencillo, los nombres de parámetros serán kernel_heap_noexec, kernel_noexec, etc.2. Ejemplo: el mandato utilizado en el método de configuración get del catálogo acctctlParam.xml

muestra un resultado que es más difícil de analizar. No sólo se integra el nombre del parámetro en unafrase no formateada, sino que se localizan los dos nombres de parámetros y sus valores. Los métodosde configuración get tendrán que ejecutar el mandato al establecer la variable de entorno LANG=C y,en cada línea, sustituir las palabras clave mediante nombres de parámetros pertinentes:

Advanced Accounting is not running.Email notification is off.The current email address to be used is not set.Recover CPU accounting time in turbo mode is False.

En el ejemplo anterior, los nombres de variable que se han seleccionado son accounting, email,email_adddr y turacct.

Información relacionada

• Elemento <Parameter>• Elemento <Mask>• Expansión de los elementos de la línea de mandatos

Elemento <ConstraintDef>

Sintaxis

Elemento padre: <Catalog>, <ParameterDef>

Se da soporte a los siguientes atributos:

Tabla 27. Atributos

Atributo Obligatorio Tipo Descripción

id no* serie Especifica el nombre delas restricciones delparámetro.

*Es necesario especificar este atributo para los elementos <Constraint> definidos en el nivel de catálogo.

Se da soporte a los siguientes elementos hijos:

Tabla 28. Elementos hijos

Elementos hijos Obligatorio Descripción

<Description> no Descripción textual del mandatodisruptivo.

<PreOp> no Operaciones disruptivas aejecutar antes de establecer elvalor de parámetro.

Gestión del sistema operativo 101

Page 108: AIX Versión 7 - IBM

Tabla 28. Elementos hijos (continuación)

Elementos hijos Obligatorio Descripción

<PostOp> no Operaciones disruptivas aejecutar después de establecerel valor de parámetro.

<BuiltIn> no Operación disruptiva incorporadaEste elemento se puede dar envarias ocasiones.

Uso

Algunos parámetros de configuración y de ajuste pueden requerir operaciones disruptivas para que loscambios de valores tengan efecto. Una operación disruptiva es cualquier operación que puedainterrumpir temporalmente el acceso a un servicio o a un dispositivo. Las operaciones disruptivas típicasson el reinicio de un daemon, el desmontaje o el montaje de un sistema de archivos, o el posicionamientofuera de línea o en línea de una tarjeta de adaptador de red. El programa AIX Runtime Expert utilizarestricciones para mostrar que un parámetro necesita operaciones disruptivas para que los cambiostengan efecto. Se utiliza un elemento <ConstraintDef> para definir una restricción de este tipo.

La restricción se puede definir:

• Dentro de un elemento <ParameterDef>, si la restricción solo se aplica a un único parámetro.• En el nivel de catálogo, el elemento <ConstraintDef> debe tener un atributo id para permitir que se

haga referencia a la restricción más adelante, en los elementos <ParameterDef>.

Restricción incorporada

El elemento <BuiltIn> no contiene ningún atributo ni elemento hijo.

Las restricciones incorporadas definen operaciones que están codificadas permanentemente en el motorde imagen de la memoria. En este momento, sólo hay una restricción incorporada definida: bosboot. Ladiferencia de las restricciones incorporadas con el resto de las operaciones disruptivas es que el mandatobosboot nunca lo ejecuta AIX Runtime Expert. El motor de imagen de la memoria sólo avisará de que senecesita un bosboot para que los cambios tengan efecto.

0590-206 A manual post-operation is required for the changes to take effectPlease perform a bosboot

Restricción PreOp y PostOp

El elemento <PreOp> define mandatos obligatorios (expresiones de shell) que se ejecutarán antes de queel método de configuración set establezca el valor del parámetro. El elemento <PostOp> definemandatos obligatorios que se ejecutarán tras la ejecución del método de configuración set.

Un elemento <ConstraintDef> tiene que contener uno o ningún elemento hijo <PreOp> y uno o ningúnelemento hijo <PostOp>.

Ejemplos

1. Ejemplo de una restricción incorporada (a nivel de catálogo)

<ConstraintDef id="bosboot"> <Description><NLSCatalog catalog="artexcat.cat" setNum="51" msgNum="3"> bosboot</NLSCatalog> </Description> <Built>Inbosboot</BuiltIn></ConstraintDef>

102 AIX Versión 7.2: Gestión del sistema operativo

Page 109: AIX Versión 7 - IBM

2. Ejemplo de restricción <PreOp>: restricción clic en el catálogo trustchkParam.xml. Tenga encuenta que, en este ejemplo, el mandato preop no ejecuta nada, sino que sólo comprueba lapresencia de una extensión de kernel necesaria por el mandato set. Si la extensión de kernel no se hainstalado, la restricción definida en el elemento <PreOp> fallará y el mandato set no se ejecutará:

<ConstraintDef id="clic"> <Description> <NLSCatalog catalog="artexcat.cat" setNum="48" msgNum="3"> Check that the clic.rte kernel extension is installed. </NLSCatalog> </Description> <Pre>Oplslpp -l "clic*"</PreOp> </ConstraintDef>

3. Ejemplo de restricción <PostOp>: la restricción de las tablas de seguridad de kernel de conjunto en elcatálogo authParam.xml. Las bases de datos modificadas necesitan cargarse sólo una vez en elkernel después de que se hayan realizado todas las modificaciones.

<ConstraintDef id="setkst"> <Description><NLSCatalog catalog="artexcat.cat" setNum="5" msgNum="3">Send the authorizations database to the KST (Kernel Security Tables) </NLSCatalog></Description> <PostOp>/usr/sbin/setkst -t auth &gt;/dev/null</PostOp> </ConstraintDef>

Elemento <CfgMethod>

Sintaxis

Elemento padre: <Catalog>

Está soportado el siguiente atributo:

Tabla 29. Atributo

Atributo Obligatorio Tipo Descripción

id sí serie Especifica el nombre delmétodo deconfiguración.

Se da soporte a los siguientes elementos hijos:

Tabla 30. Elementos hijo

Elementos hijos Obligatorio Número Descripción

<Get> no 0 – 1 Definición del métodode configuración para laoperación get. Esteelemento se puede daren varias ocasiones.

<Set> no 0 – 1 Definición del métodode configuración para laoperación set. Esteelemento se puede daren varias ocasiones.

<Diff> no 0 – 1 Definición del métodode configuración para laoperación diff.

Gestión del sistema operativo 103

Page 110: AIX Versión 7 - IBM

Tabla 30. Elementos hijo (continuación)

Elementos hijos Obligatorio Número Descripción

<Discover> no 0 – 1 Definición del métodode configuración para eldescubrimiento dedestino.

<Property> no 0 – cualquiera Asigna una propiedad alos parámetrosmediante el método deconfiguración.

Uso

El elemento <CfgMethod> define un método de configuración al que, más adelante, puede hacerreferencia un parámetro utilizando el atributo cfgmethod del elemento <ParameterDef>. El parámetroheredará todos los elementos definidos en el método de configuración al que se hace referencia.

En función del parámetro, el uso de una configuración puede ofrecer varias ventajas sobre la definiciónlocal:

• Simplifica el archivo de catálogo, lo que evita la duplicación de los mismos elementos de la línea demandatos para varios parámetros.

• Permite que varios parámetros se traten mediante un único mandato.

Ejemplo

El catálogo vmoParam.xml define muchos de los parámetros que utilizan el mismo método deconfiguración. A continuación se muestra una versión simplificada de este catálogo:

<Catalog id="vmoParam" version="2.1"> <CfgMethod id="vmo"> <Get type="current"> <Command>/usr/sbin/vmo -a</Command> <Mask name="1" value="2">[[:space:]]*(.*) = (.*)</Mask> </Get>

<Get type="nextboot"> <Command>/usr/sbin/vmo -r -a</Command> <Mask name="1" value="2">[[:space:]]*(.*) = (.*)</Mask> </Get>

<Set type="permanent"> <Command>/usr/sbin/vmo -p%a</Command> <Argument>%n=%v1</Argument> </Set>

<Set type="nextboot"> <Command>/usr/sbin/vmo -r%a</Command> <Argument>%n=%v1</Argument> </Set> </CfgMethod>

<ParameterDef name="ame_maxfree_mem" cfgmethod="vmo" type="integer" /> <ParameterDef name="ame_min_ucpool_size" cfgmethod="vmo" type="integer" /> <ParameterDef name="ame_minfree_mem" cfgmethod="vmo" type="integer" /> ...

</Catalog>

Información relacionada

• Generación de línea de mandatos• Elemento <Get>• Elemento <Set>

104 AIX Versión 7.2: Gestión del sistema operativo

Page 111: AIX Versión 7 - IBM

Elemento <Get>

Sintaxis

Elemento padre: <CfgMethod>, <ParameterDef>

Está soportado el siguiente atributo:

Tabla 31. Atributo

Atributo Obligatorio Tipo Descripción

type sí serie Especifica el tipo delmandato get (actual onextboot).

Se da soporte a los siguientes elementos hijos:

Tabla 32. Elementos hijos

Elementos hijos Obligatorio Número Descripción

<Command> no 0 – 1 Mandato

<Argument> no 0 – 1 Argumentos de línea de mandatos

<Stdin> no 0 – 1 Argumentos soportados por el elemento<Stdin>

<Filter> no 0 – 1 Filtro

<Mask> no 0 – 1 Máscara de captura de salida

<Prereq> no 0 – cualquiera Asigna un requisito previo para laoperación get

Es necesario definir el elemento <Command> para cada parámetro, ya sea en el nivel <CfgMethod> odirectamente, en el nivel <ParameterDef>.

Uso

El elemento <Get> describe cómo se captura el valor de un parámetro concreto. Se puede utilizardirectamente bajo el elemento <ParameterDef> o bajo un elemento <CfgMethod> al que se hagareferencia en el elemento <ParameterDef> mediante el atributo cfgmethod, o bien mediante unacombinación de ambas posibilidades.

Deben definirse dos elementos Get para cada parámetro, uno para cada valor soportado del atributo type:

• Get type=“current” identifica el método que se ejecutará para recuperar el valor de runtime delparámetro.

• Get type=“nextboot” identifica el método que se ejecutará para recuperar el valor que el parámetrotendrá después del siguiente rearranque del sistema.

• El método get que se ejecutará dependerá de la operación que se realice:

– Si el mandato artexget se llama con el distintivo –r, se utilizará el método get actual.– Si el mandato artexget se llama con el distintivo –n, se utilizará el método get nextboot.– Si el mandato artexget se llama con el distintivo –p, la ejecución del método dependerá de la

entrada de los parámetros en el atributo applyType. El método get actual se utiliza para losparámetros que tienen su atributo applyType establecido para runtime y el método get nextboot seutiliza para los parámetros que tienen un atributo applyType de rearranque.

Gestión del sistema operativo 105

Page 112: AIX Versión 7 - IBM

Información relacionada

Generación de línea de mandatos

Elemento <Mask>.

Elemento <Set>El elemento <Set> define cómo crear una línea de mandatos para establecer el valor de un parámetro.

Sintaxis

Elemento padre: <CfgMethod>, <ParameterDef>

Está soportado el siguiente atributo:

Tabla 33. Atributo

Atributo Obligatorio Tipo Descripción

type sí serie Especifica el tipo delmandato set comoactual o nextboot.

Se da soporte a los siguientes elementos hijos:

Tabla 34. Elementos hijos

Elementos hijos Obligatorio Número Descripción

<Command> no 0 – 1 Mandato

<Argument> no 0 – 1 Argumentos de línea de mandatos

<Stdin> no 0 – 1 Argumentos Stdin

<Prereq> no 0 – cualquiera Asigna un requisito previo a la operación<Set>

Nota: Es necesario definir el elemento <Command> para cada parámetro, ya sea en el nivel<CfgMethod> o directamente, en el nivel <ParameterDef>.

Uso

Hay tres tipos de elementos <Set> que se pueden definir para cada parámetro, identificados por suatributo type obligatorio:

• Set type=“current” define una operación set que sólo cambia el valor del parámetro para la sesiónactual. Cualquier cambio realizado utilizando la operación set se perderá tras un rearranque delsistema.

• Set type=“nextboot” define una operación set que sólo cambia el valor que tomará el parámetro tras elsiguiente rearranque del sistema. El valor actual no se modifica.

• Set type=“permanent” define una operación set que cambia tanto el valor actual como nextboot delparámetro.

El tipo de la ejecución de la operación set se decide según los parámetros incluidos cuando se ejecuta elmandato artexset, según el atributo applyType del parámetro del perfil. La tabla siguiente resume losmétodos set que se ejecutan, en función de los métodos set definidos en el archivo de catálogo según elatributo applyType para el parámetro:

106 AIX Versión 7.2: Gestión del sistema operativo

Page 113: AIX Versión 7 - IBM

Tabla 35. Métodos set: tipos de métodos set definidos y atributo applyType del parámetro

current nextboot permanente runtime nextboot

0 0 0 not set (error) not set (error)

0 0 1 set permanent not set (error)

0 1 0 set nextboot + warning set nextboot

0 1 1 set permanent not set (error)

1 0 0 set current + warning set nextboot

1 0 1 set permanent not set (error)

1 1 0 set current set nextboot set nextboot

1 1 1 set permanent set nextboot

Información relacionada

Generación de línea de mandatos.

Elemento <Diff>El elemento <Diff> define cómo crear una línea de mandatos para comparar dos valores de un parámetro.

Sintaxis

Elemento padre: <CfgMethod>, <ParameterDef>

Se da soporte a los siguientes elementos hijos:

Tabla 36. Elementos hijos

Elementos hijos Obligatorio Descripción

<Command> no Mandato

<Argument> no Argumentos de línea de mandatos

<Stdin> no Argumentos Stdin

<Filter> no Filtro

<Mask> no Máscara de captura de salida

Nota: Es necesario definir el elemento <Command> para cada parámetro, ya sea en el nivel<CfgMethod> o directamente, en el nivel <ParameterDef>.

Uso

El elemento <Diff> no suele ser necesario, dado que la infraestructura sabe cómo comparar dos valoresde parámetros internamente, en función del tipo (serie, entero, integer-bi, binario, etc.). Sin embargo, encaso de que la comparación interna no esté adaptada para un parámetro concreto, es posible utilizar unmandato externo en su lugar.

Gestión del sistema operativo 107

Page 114: AIX Versión 7 - IBM

Ejemplo

El siguiente elemento <Diff> se puede utilizar para la mayoría de los parámetros, si bien la utilización dela función de comparación interna es más eficaz. El elemento <Diff> utiliza el mandato diff paracomparar dos archivos que contienen los dos valores:

<Diff> <Command>/usr/bin/diff %f1 %f2; echo $?</Command></Diff>

Información relacionada

Generación de línea de mandatos.

Elemento <Mask>.

Elemento <Discover>El elemento <Discover> define cómo crear una línea de mandatos para descubrir destinos para unparámetro que los admita.

Sintaxis

Elemento padre: <CfgMethod>, <ParameterDef>

Se da soporte a los siguientes elementos hijos:

Tabla 37. Elementos hijos

Elementos hijos Obligatorio Número Descripción

<Command> no 0 – 1 Mandato

<Prereq> no 0 – cualquiera Asigna un requisito previo para laoperación discover

Nota: Es necesario definir el elemento <Command> para cada parámetro, ya sea en el nivel<CfgMethod> o directamente, en el nivel <ParameterDef>.

Uso

Un mandato discover se utiliza para obtener la lista de instancias de destino para un parámetro indicado.

La salida de un mandato discover para un parámetro que da soporte a las clases de destino N tiene elsiguiente formato:

class_1=inst_1_1;class_2=inst_2_1;...;class_N=inst_N_1class_1=inst_1_2;class_2=inst_2_2;...;class_N=inst_N_2class_1=inst_1_3;class_2=inst_2_3;...;class_N=inst_N_3...

El mandato artexget genera y ejecuta un mandato discover para parámetros que satisfacen uno de lossiguientes criterios:

• Contienen un elemento <Target> con los atributos class e instance vacíos. <Target class=""instance="" />

• Contienen al menos un elemento <Target> con un atributo match: <Target class="..." match="..." />

El mandato artexset requiere de forma adicional que se satisfagan los siguientes dos criterios:

• El mandato artexset se llama con el distintivo –d.• El elemento <Parameter> del perfil tiene el atributo setDiscover establecido en true.

108 AIX Versión 7.2: Gestión del sistema operativo

Page 115: AIX Versión 7 - IBM

Ejemplos

1. El catálogo mktcpipParam.xml utiliza el siguiente mandato discover para obtener la lista de lasinterfaces de red definidas en el sistema:

<Discover> <Command> /usr/sbin/lsdev -C -c if -F "name" | /usr/bin/sed -e 's/^/interface=/' </Command></Discover>

Este mandato da el siguiente resultado:

interface=en0interface=et0interface=lo0

2. El catálogo chuserParam.xml utiliza el siguiente mandato discover para llegar a la lista de todoslos usuarios para todos los módulos de autenticación cargables:

<Discover> <Command> /usr/sbin/lsuser -a registry ALL | /usr/bin/sed -e "s/\(.*\) registry=\(.*\)/module=\2;user=\1/g"</Command></Discover>

Este mandato da el siguiente resultado:

module=LDAP;user=daemonmodule=LDAP;user=binmodule=LDAP;user=sysmodule=LDAP;user=adm...module=files;user=rootmodule=files;user=daemonmodule=files;user=binmodule=files;user=sysmodule=files;user=adm...

Elemento <Command>El elemento <Command> define el mandato base utilizado para realizar la operación definida por elelemento padre.

Sintaxis

Elemento padre: <Get>, <Set>, <Diff>, <Discover>, <PrereqDef>, <Prereq>, <PropertyDef>,<Property>, <Command>

Uso

El contenido del elemento <Command> se expande como se describe en la sección Expansión de loselementos de la línea de mandatos y se combina con otros elementos de la línea de mandatos paraformar una línea de mandatos completa. Consulte la sección Generación de línea de mandatos paraobtener más detalles.

Algunos caracteres que se encuentran a menudo en expresiones del shell como, por ejemplo, <, > y &, nose permiten en documentos XML. Estos caracteres deben sustituirse por la correspondiente entidad XML:

Tabla 38. Entidades XML

Carácter Entidad XML

< &lt;

> &gt;

Gestión del sistema operativo 109

Page 116: AIX Versión 7 - IBM

Tabla 38. Entidades XML (continuación)

Carácter Entidad XML

& &amp;

De forma alternativa, una sección CDATA se puede utilizar si la expresión contiene muchos de talescaracteres. Las secciones CDATA comienzan con <![CDATA[ y finalizan con ]]>.

Es necesario definir el elemento <Command> para cada operación soportada de cada parámetro, ya seaen el nivel <CfgMethod> o en el nivel <ParameterDef>.

Ejemplo

El catálogo envParam.xml define un parámetro denominado perfil, que representa el contenido delarchivo /etc/profile. Para este parámetro, el elemento <Get> utiliza el mandato cat para capturar elcontenido del archivo /etc/profile:

<ParameterDef name="profile"> <Get type="current"> <Command>/usr/bin/cat /etc/environment</Command> </Get></ParameterDef>

Elemento <Argument>

Sintaxis

Elemento padre: <Get>, <Set>, <Diff>, <PrereqDef>, <Prereq>, <PropertyDef>, <Property>

Uso

El contenido del elemento <Argument> se expande tal y como se describe en la sección Expansión de loselementos de la línea de mandatos y se combina con los elementos <Command> y/o <Stdin> para formaruna línea de mandatos completa. Consulte la sección Generación de línea de mandatos para obtener másdetalles.

Algunos caracteres que se encuentran a menudo en expresiones del shell como, por ejemplo, <, > y &, nose permiten en documentos XML. Estos caracteres deben sustituirse por la correspondiente entidad XML:

Tabla 39. Entidades XML

Carácter Entidad XML

< &lt;

> &gt;

& &amp;

De forma alternativa, una sección CDATA se puede utilizar si la expresión contiene muchos de talescaracteres. Las secciones CDATA comienzan con <![CDATA[ y finalizan con ]]>.

Ejemplo

El catálogo vmoParam.xml utiliza el elemento <Argument> para añadir un argumento al mandato vmopara cada parámetro vmo del perfil:

<CfgMethod id="vmo"> <Set type="permanent"> <Command>/usr/sbin/vmo -p%a</Command> <Argument> -o %n=%v1</Argument> </Set></CfgMethod>

110 AIX Versión 7.2: Gestión del sistema operativo

Page 117: AIX Versión 7 - IBM

Elemento <Stdin>

Sintaxis

Elemento padre: <Get>, <Set>, <Diff>, <PrereqDef>, <Prereq>, <PropertyDef>, <Property>

Uso

El contenido del elemento <Stdin> se expande como se describe en la sección Expansión de loselementos de la línea de mandatos y los datos resultantes se graban en la entrada estándar de la línea demandatos generada para la operación definida en el elemento padre.

Ejemplo

El catálogo envParam.xml define un parámetro denominado perfil, que representa el contenido delarchivo /etc/profile. Para este parámetro, la operación set graba el valor del parámetro en la entradaestándar del mandato cat para sobrescribir el archivo /etc/profile:

<ParameterDef name="profile"> <Set type="permanent"> <Command>/usr/bin/cat &gt; /etc/profile</Command> <Stdin>%v1</Stdin> </Set> </Get>

Información relacionada

Generación de línea de mandatos

Elemento <Filter>

Sintaxis

Elemento padre: <Get>, <Diff>, <PropertyDef>, <Property>

Uso

El contenido del elemento <Filter> es un mandato al que se pasa como entrada la salida de la línea demandatos generada para la operación definida en el elemento padre.

Algunos caracteres que se encuentran a menudo en expresiones del shell como, por ejemplo, <, > y &, nose permiten en documentos XML. Estos caracteres deberán sustituirse por la correspondiente entidadXML:

Tabla 40. Entidades XML

Carácter Entidad XML

< &lt;

> &gt;

& &amp;

De forma alternativa, una sección CDATA se puede utilizar si la expresión contiene muchos de talescaracteres. Las secciones CDATA comienzan con <![CDATA[ y finalizan con ]]>.

Ejemplo

El catálogo nfsParam.xml utiliza el elemento <Filter> para la operación get del parámetrov4_root_node, a fin de extraer el nodo raíz de la salida del mandato nfds –getnode:

<ParameterDef id="v4_root_node"> <Get type="current">

Gestión del sistema operativo 111

Page 118: AIX Versión 7 - IBM

<Command> /usr/sbin/nfsd -getnodes </Command> <Filter> /usr/bin/awk -F: 'NR == 2 { printf("%s", $1) }' </Filter> </Get></ParameterDef>

Información relacionada

Generación de línea de mandatos

Elemento <Mask>

Sintaxis

Elemento padre: <Get>, <Diff>, <Discover> (solo bajo un elemento <SeedDef>),<PropertyDef>,<Property>

Los atributos siguientes se admiten cuando se utilizan en un elemento <Get> o <Diff>:

Tabla 41. Atributos

Atributo Obligatorio Tipo Descripción

nombre no entero Especifica el índice de lasubexpresión quecoincide con el nombredel parámetro. Losvalores válidos son 1 y2.

value no entero Especifica el índice de lasubexpresión quecoincide con el valor delparámetro. Los valoresválidos son 1 y 2.

Los atributos siguientes se admiten cuando se utilizan bajo el subelemento <Discover> de un elemento<SeedDef>:

Tabla 42. Atributos

Atributo Obligatorio Tipo Descripción

catalog sí entero Especifica el índice de lasubexpresión quecoincide con el nombredel catálogo. Los valoresválidos son 1, 2 y 3.

nombre sí entero Especifica el índice de lasubexpresión quecoincide con el nombredel parámetro. Losvalores válidos son 1, 2y 3.

112 AIX Versión 7.2: Gestión del sistema operativo

Page 119: AIX Versión 7 - IBM

Tabla 42. Atributos (continuación)

Atributo Obligatorio Tipo Descripción

destino no entero Especifica el índice de lasubexpresión quecoincide con el destinodel parámetro. Losvalores válidos son 1, 2y 3.

El atributo siguiente se admite cuando se utiliza bajo los elementos <PropertyDef> o <Property>:

Tabla 43. Atributo

Atributo Obligatorio Tipo Descripción

value no entero Especifica el índice de lasubexpresión quecoincide con el nombredel parámetro. Se debeestablecer en “1” si seespecifica.

Uso

El elemento <Mask> define una expresión regular que se aplica en cada línea de la salida del mandatopara extraer datos de dichas líneas. Los datos extraídos dependen de dónde se utilice el elemento<Mask>.

Si no se especifican atributos, se utiliza la última línea en la salida del mandato que coincide con laexpresión regular para extraer los datos. Los datos extraídos es la parte de la línea que coincide con laexpresión regular. Si la utilización se da bajo un elemento <Get> o <Diff>, los datos extraídos se utilizancomo valor de parámetro. Si su uso se produce bajo un elemento <PropertyDef> o <Property>, los datosextraídos se utilizan como valor de propiedad.

Si sólo se especifica el atributo value, se debe establecer en 1 y la expresión regular debe contener sólouna subexpresión. Se utiliza la última línea en la salida del mandato que coincide con la expresión regularpara extraer los datos. Los datos extraídos es la parte de la línea que coincide con la primerasubexpresión (y la única). Si la utilización se da bajo un elemento <Get> o <Diff>, los datos extraídos seutilizan como valor de parámetro. Si su uso se produce bajo un elemento <PropertyDef> o <Property>,los datos extraídos se utilizan como valor de propiedad.

Si se especifican los atributos name y value, uno de estos atributos se deben establecer en 1 y el otro sedebe establecer en 2, y la expresión regular debe contener dos subexpresiones. Un name y un value seextrae de cada línea de la salida del mandato que coincide con la expresión regular. Si se utiliza en unelemento <Get>, el nombre se utiliza como nombre de parámetro y el valor como valor de parámetro. Sise utiliza en un elemento <Diff>, el nombre se usa como nombre de parámetro y el valor se usa comoresultado de comparación. Utilizando esta función, los valores de varios parámetros se pueden extraerutilizando un único mandato obtener y varios parámetros pueden compararse con un único mandatodiff.

Si se utiliza en el subelemento <Discover> de un elemento <SeedDef>, será necesario especificar losatributos de nombre y catálogo. Se extrae un nombre de catálogo y de parámetro de cada línea de lasalida del mandato que coincide con la expresión regular. Si un catálogo que coincide con el nombre delcatálogo extraído se encuentra en el sistema y si contiene una definición para un parámetro que coincidecon el nombre de parámetro extraído, se insertará un parámetro en el perfil. El argumento destinoopcional se puede añadir para extraer una definición de destino para cada parámetro descubierto. Ladefinición destino debe seguir la lista separada por punto y coma de los formatos de paresclass=instance como el formato class1=instance1;class2=instance2;....

Gestión del sistema operativo 113

Page 120: AIX Versión 7 - IBM

Ejemplos

1. El catálogo vmoParam.xml utiliza el elemento <Mask> con los atributos name y value para extraertodos los valores de parámetro desde un único mandato vmo –a:

<CfgMethod id="vmo"> <Get type="current"> <Command>/usr/sbin/vmo -a</Command> <Mask name="1" value="2">[[:space:]]*(.*) = (.*)</Mask> </Get></CfgMethod>

2. Si el catálogo vmoParam.xml se hubiese escrito de tal manera que se utilizase un mandatoindependiente para capturar el valor de cada parámetro, el elemento <Mask> podría haberse utilizadosolo con el atributo value especificado, sin atributo name:

<CfgMethod id="vmo"> <Get type="current"> <Command>/usr/sbin/vmo -o %n</Command> <Mask value="1"> = (.*)</Mask> </Get></CfgMethod>

3. O utilizando una expresión regular que coincida sólo con el valor:

<CfgMethod id="vmo"> <Get type="current"> <Command>/usr/sbin/vmo –o %n</Command> <Mask>[^ ]*$</Mask> </Get></CfgMethod>

De los tres ejemplos anteriores, el primero es el más eficaz, ya que sólo requiere un único mandatopara capturar todos los parámetros del mandato vmo. Los ejemplos 2 y 3 generarían un mandatoindependiente para cada parámetro de mandato vmo, dado que el nombre del parámetro se utiliza enel elemento <Command>.

4. El siguiente elemento <SeedDef> define un inicio que se puede utilizar para descubrir todos losatributos de todos los dispositivos. El elemento utiliza un destino para designar el dispositivo quefuncionan en:

<SeedDef name="devAttr"> <Discover> <Command> /usr/sbin/lsdev -F 'name class subclass type' | while read DEV CLASS SUBCLASS TYPE do /usr/sbin/lsattr -F attribute -l $DEV | while read PAR do echo device=$DEV devParam.$CLASS.$SUBCLASS.$TYPE $PAR done done </Command> <Mask target="1" catalog="2" name="3">(.*) (.*) (.*) <Mark> </Discover> </SeedDef>

El mandato de descubrimiento imprime cada atributo de dispositivo descubierto en una línea separada,utilizando el formato siguiente:

device=DeviceName devParam.Class.Subclass.Type AttributeName

Por ejemplo,

device=en0 devParam.if.EN.en tcp_recvspacedevice=en0 devParam.if.EN.en tcp_sendspacedevice=ent0 devParam.adapter.vdevice.IBM,l-lan alt_addrdevice=ent0 devParam.adapter.vdevice.IBM,l-lan chksum_offload

114 AIX Versión 7.2: Gestión del sistema operativo

Page 121: AIX Versión 7 - IBM

Información relacionada

Generación de línea de mandatos

Elemento <SeedDef>El elemento <SeedDef> define un inicio que se puede utilizar en un perfil mediante un elemento <Seed>.

Sintaxis

Elemento padre: <Catalog>

Está soportado el siguiente atributo:

Tabla 44. Atributo

Atributo Obligatorio Tipo Descripción

nombre sí serie Especifica el nombre delinicio. Este nombre debeser exclusivo porcatálogo.

Se da soporte al siguiente elemento hijo:

Tabla 45. Elemento hijo

Elemento hijo Obligatorio Descripción

<Discover> sí Especifica el mandato que se utiliza para buscarparámetros.

Uso

Los inicios se utilizan para buscar parámetros de manera dinámica durante una operación get.

Cuando se emite el mandato artexget, cada elemento <Seed> del perfil de entrada se expande en unoo varios elementos <Parameter>, en función de las reglas definidas en el elemento <SeedDef>coincidente del archivo de catálogo. Este proceso se denomina descubrimiento de parámetro. El mandatoartexget sigue de forma habitual con el perfil expandido.

El elemento <SeedDef> contiene solo un subelemento <Discover>, que define un mandato que ejecutar,y una máscara para extraer nombres de parámetro, nombres de catálogo (como listas separadas porcomas, sin la extensión .xml) y, opcionalmente, destinos de la salida del mandato (utilizando el formatoclass1=instance1;class2=instance2;... ). Para cada línea de la salida, se carga el primer catálogo de lalista separada por signos de dos puntos que se encuentra en el sistema. Si una definición de parámetro seencuentra en este catálogo, se crea un parámetro en el perfil de salida que tenga los destinos que sehayan extraído de la línea. No se tendrán en cuenta las líneas de la salida del mandato que no coincidancon la máscara, o para los que no se encuentra el archivo de catálogo, o que no tienen ninguna definiciónde parámetro si se encuentra en el archivo de catálogo.

Ejemplos

1. El catálogo siguiente define un elemento <SeedDef> denominado vmoTunables que descubre todoslos inicios vmo ajustables no restringidos soportados por AIX Runtime Expert:

<?xml version="1.0" encoding="UTF-8"?><Catalog id="vmoSeed"> <SeedDef name="vmoTunables"> <Discover> <Command>/usr/sbin/vmo -x | /usr/bin/awk -F, '{ print "vmoParam:" $1 }'</Command> <Mask catalog="1" name="2">(.*):(.*)/Mask> </Discover> </SeedDef></Catalog>

Gestión del sistema operativo 115

Page 122: AIX Versión 7 - IBM

El mandato de descubrimiento imprime cada ajustable en una línea separada, precedido por elnombre del catálogo que define los ajustables:

...vmoParam:enhanced_affinity_vmpool_limitvmoParam:esid_allocatorvmoParam:force_relalias_litevmoParam:kernel_heap_psize...

El siguiente perfil utiliza el inicio vmo tunables para capturar todos los inicios no restringidos vmotunables soportados por AIX Runtime Expert:

<?xml version="1.0" encoding="UTF-8"?><Profile> <Catalog id="vmoSeed"> <Seed name="vmoTunables"/> </Catalog></Profile>

Cuando se ejecuta el mandato artexget –r en el perfil, el mandato genera un perfil similar alsiguiente ejemplo:

<?xml version="1.0" encoding="UTF-8"?><Profile> <Catalog id="vmoParam"> ... <Parameter name="enhanced_affinity_vmpool_limit" value="10"/> <Parameter name="esid_allocator" value="0"/> <Parameter name="force_relalias_lite" value="0"/> <Parameter name="kernel_heap_psize" value="65536" applyType="nextboot" reboot="true"/> ...</Catalog></Profile>

2. El siguiente elemento <SeedDef> define un inicio que se utiliza para descubrir todos los atributos detodos los dispositivos. El elemento utiliza un inicio de destino para designar el dispositivo quefuncionan en:

<SeedDef name="devAttr"> <Discover> <Command> /usr/sbin/lsdev -F 'name class subclass type' | while read DEV CLASS SUBCLASS TYPE do /usr/sbin/lsattr -F attribute -l $DEV | while read PAR do echo device=$DEV devParam.$CLASS.$SUBCLASS.$TYPE:devParam.$CLASS.$SUBCLASS:devParam.$CLASS $PAR done done </Command> <Mask target="1" catalog="2" name="3">(.*) (.*) (.*)</Mask> </Discover></SeedDef>

El mandato de descubrimiento imprime cada atributo de dispositivo descubierto en una líneaseparada, utilizando el formato siguiente:

device=DeviceName devParam.Class.Subclass.Type:devParam.Class.Subclass:devParam.Class NombreAtributo

Por ejemplo:

device=en0 devParam.if.EN.en:devParam.if.EN:devParam.if tcp_recvspacedevice=en0 devParam.if.EN.en:devParam.if.EN:devParam.if tcp_sendspacedevice=ent0 devParam.adapter.vdevice.IBM,l-lan:devParam.adapter.vdevice:devParam.adapter alt_addrdevice=ent0 devParam.adapter.vdevice.IBM,l-lan:devParam.adapter.vdevice:devParam.adapter chksum_offload

116 AIX Versión 7.2: Gestión del sistema operativo

Page 123: AIX Versión 7 - IBM

Elemento <Prereq>El elemento <Prereq> asigna un requisito previo a las operaciones <Get>, <Set> y <Discover>.

Sintaxis

Elemento padre: <Get>, <Set> y <Discover>

Está soportado el siguiente atributo:

Tabla 46. Atributo

Atributo Obligatorio Tipo Descripción

id no serie Especifica unidentificador exclusivo

Se da soporte a los siguientes elementos hijos:

Tabla 47. Elementos hijo

Elemento hijo Obligatorio Descripción

<Command> no Mandato

<Argument> no Argumentos de línea de mandatos

<Stdin> no Argumentos soportados por el elemento <Stdin>

<ErrMessage> no Mensaje para imprimir si los requisitos previosfallan

Nota: El elemento <Command> debe definirse para cada requisito previo: a nivel <ParameterDef>, anivel <CfgMethod> o en un elemento <PrereqDef>.

Uso

Prereqs son mandatos que condicionan el proceso de una operación <Get>, <Set> y <Discover> paraparámetros que utilizan estas operaciones <Get>, <Set> y <Discover>. Se ignoran los parámetros paralos que falla un mandato prereq (código de retorno distinto de cero) y se muestra el mensaje de errordefinido en el requisito previo.

El elemento <Prereq> asigna un requisito previo a la operación padre <Get>, <Set> o <Discover>. Elrequisito previo se define de manera local bajo el elemento <Prereq> o se hereda desde un elemento<Prereq> o <PrereqDef> de un nivel superior que tiene un atributo id que coincide.

Un parámetro tiene todos los requisitos previos definidos de forma local bajo el elemento<ParameterDef>. Además, el requisito previo tiene las propiedades definidas en el método deconfiguración del parámetro, si se utiliza un método de configuración. La consecuencia es que, si sedefine un requisito previo en un elemento <CfgMethod>, a todos los elementos <ParameterDef> queutilicen el método de configuración se les asignará automáticamente dicho requisito previo (aunquealgunos de estos elementos podrían volver a definir el requisito previo de forma local).

Los elementos <Command>, <Argument>, <Stdin> y <ErrMessage> que definan un requisito previo parauna operación dada se buscarán en este orden:

• En el subelemento <Prereq> de la operación relevante del elemento <ParameterDef>.• Si el elemento <ParameterDef> tiene un atributo cfgmethod, bajo el subelemento <Prereq> que

contenga un id que coincida de la operación relevante del método de configuración.• En el elemento <PrereqDef> del catálogo que tiene un ID que coincide.

Gestión del sistema operativo 117

Page 124: AIX Versión 7 - IBM

Ejemplo

En el ejemplo siguiente se define un requisito previo que comprueba que los parámetros netaddr ynetaddr6 se apliquen en el mismo sistema en el que se han capturado:

<ParameterDef name="netaddr" type="string" targetClass="device" cfgmethod="attr"> <Set type="permanent"> <Prereq> <Command>[[ `/usr/bin/uname -f` = %p[nodeId] ]]</Command> <ErrMessage>Parameter cannot be applied to a different node</ErrMessage> </Prereq> </Set></ParameterDef>

<ParameterDef name="netaddr6" type="string" targetClass="device" cfgmethod="attr"> <Set type="permanent"> <Prereq> <Command>[[ `/usr/bin/uname -f` = %p[nodeId] ]]</Command> <ErrMessage>Parameter cannot be applied to a different node</ErrMessage> </Prereq> </Set></ParameterDef>

En este ejemplo, la prueba se ejecuta dos veces: una vez para el parámetro netaddr y otra para elparámetro netaddr6. Este proceso dual se debe a que cada parámetro tiene su propio requisito previocon su propio elemento <Command>. Consulte, artex_catalog_elem_PrereqDef.dita para obtener unejemplo que sólo necesita una ejecución de la prueba

Información relacionada

• artex_catalog_cmdline_gen.dita• artex_catalog_elem_PrereqDef.dita

Elemento <PrereqDef>El elemento <PrereqDef> que se puede utilizar posteriormente en un elemento <Prereq>.

Sintaxis

Elemento padre: <Catalog>

Está soportado el siguiente atributo:

Tabla 48. Atributo

Atributo Obligatorio Tipo Descripción

nombre sí serie Especifica el nombre dela propiedad.

Se da soporte a los siguientes elementos hijos:

Tabla 49. Elementos hijo

Elemento hijo Obligatorio Descripción

<Command> no Mandato

<Argument> no Argumentos de línea de mandatos

<Stdin> no Los argumentos compatibles con el elemento<Stdin>

<ErrMessage> no Mensaje que se imprime si falla el requisito previo

Nota: El elemento <Command> debe definirse para cada requisito previo: a nivel <ParameterDef>, anivel <CfgMethod> o en un elemento <PrereqDef>.

118 AIX Versión 7.2: Gestión del sistema operativo

Page 125: AIX Versión 7 - IBM

Uso

Prereq son mandatos que condicionan la ejecución de las operaciones <Get>, <Set> y <Discover> paralos parámetros que utilizan las operaciones <Get>, <Set> o <Discover>. Se ignoran los parámetros paralos que falla un mandato prereq (código de retorno distinto de cero) y se muestra el mensaje de errordefinido en el requisito previo.

El elemento <PrereqDef> define un requisito previo. Estos requisitos previos se podrán asociar másadelante con una operación de un parámetro o un método de configuración utilizando un elemento<Prereq> con el mismo atributo id.

Ejemplo

El ejemplo siguiente define el requisito previo nodeId y lo asigna a los parámetros netaddr y netaddr6:

<PrereqDef id="nodeId"> <Command>[[ `/usr/bin/uname -f` = %p[nodeId] ]]</Command> <ErrMessage>Parameter cannot be applied to a different node</ErrMessage></PrereqDef>

<ParameterDef name="netaddr" type="string" targetClass="device" cfgmethod="attr"> <Set type="permanent"> <Prereq id="nodeId"/> </Set> <Property name="nodeId"/></ParameterDef>

<ParameterDef name="netaddr6" type="string" targetClass="device" cfgmethod="attr"> <Set type="permanent"> <Prereq id="nodeId"/> </Set> <Property name="nodeId"/></ParameterDef>

En este ejemplo, la prueba se ejecuta solo una vez, porque los dos parámetros utilizan el mismo elemento<Command> para sus requisitos previos y la línea de mandatos generada es la misma para ambosparámetros.

Información relacionada

• artex_catalog_cmdline_gen.dita• artex_catalog_elem_Prereq.dita

Elemento <Property>El elemento <Property > asigna una propiedad a un parámetro en el método de configuración.

Sintaxis

Elemento padre: <CfgMethod>, <ParameterDef>

Está soportado el siguiente atributo:

Tabla 50. Atributo

Atributo Obligatorio Tipo Descripción

nombre sí serie Especifica el nombre dela propiedad.

Se da soporte a los siguientes elementos hijos:

Tabla 51. Elemento hijo

Elemento hijo Obligatorio Descripción

<Command> no Mandato

Gestión del sistema operativo 119

Page 126: AIX Versión 7 - IBM

Tabla 51. Elemento hijo (continuación)

Elemento hijo Obligatorio Descripción

<Argument> no Argumentos de línea de mandatos

<Stdin> no Argumentos soportados por el elemento <Stdin>

<Filter> no Filtro

<Mask> no Máscara de captura de salida

Nota: Es necesario definir el elemento <Command> para cada propiedad: al nivel <ParameterDef>, alnivel <CfgMethod> o en un elemento <PropertyDef>.

Uso

Las propiedades son pares de clave-valor asociadas a un parámetro. El valor de los pares de clave-valorse recupera a través de los mandatos artexget–r y artexget–n y se guardan en la salida perfil. Losvalores de propiedad que se guardan en un perfil, se pueden insertar en una línea de mandatos utilizandola secuencia %p [nombre_propiedad].

El elemento <Property> asigna una propiedad a un parámetro o a un método de configuración. Lapropiedad se define de manera local bajo el elemento <Property> o se hereda desde un elemento<Property> o <PropertyDef> de nivel superior que tiene un atributo de nombre que coincide.

Un parámetro tiene todas las propiedades definidas de forma local bajo el elemento <ParameterDef>.Además, el parámetro cuenta con todas las propiedades definidas en el método de configuración deparámetros, si se utiliza un método de configuración. La consecuencia es que, si una propiedad se definebajo un elemento <CfgMethod>, todos los elementos <ParameterDef> que utilicen el método deconfiguración contendrán automáticamente dicha propiedad (aunque algunos de ellos pueden volver adefinir la propiedad de forma local).

Los valores de propiedad se extraen de la salida de una línea de mandatos. La línea de mandatos se creaa partir de la combinación de los elementos <Command>, <Argument>, <Stdin> y <Filter>, tal y comose describe en la sección Generación de línea de mandatos. Tiene que utilizar uno de los siguientesvalores de propiedad: la salida sin formato de la línea de mandatos o la parte de la salida que coincidecon la máscara, si se especifica un elemento <Mask>.

Los elementos <Command>, <Argument>, <Stdin>, <Filter> y <Mask> que definen una propiedad sebuscan en este orden:

• Bajo el elemento <Property> en el nivel <ParameterDef>.• Si el elemento <ParameterDef> tiene un atributo cfgmethod, bajo el método de configuración del

elemento <Property> que tiene un atributo name que coincide.• Bajo el elemento <PropertyDef> del catálogo que tiene un atributo de nombre que coincide.

Ejemplo

El ejemplo siguiente asigna una propiedad nodeId a los parámetros netaddr y netaddr6:

<ParameterDef name="netaddr" type="string" targetClass="device" cfgmethod="attr"> <Property name="nodeId"> <Command>/usr/bin/uname -f/<Command> <Mask>.*/<Mask> </Property></ParameterDef>

<ParameterDef name="netaddr6" type="string" targetClass="device" cfgmethod="attr"> <Property name="nodeId"> <Command>/usr/bin/uname -f</Command> <Mask>.*</Mask> </Property></ParameterDef>

120 AIX Versión 7.2: Gestión del sistema operativo

Page 127: AIX Versión 7 - IBM

En este ejemplo, la máscara coincide con toda la línea y sólo se utiliza para excluir el carácter nueva líneaal final de la salida del mandato.

En este ejemplo, el mandato uname se ejecuta dos veces: una vez para el parámetro netaddr y otra parael parámetro netaddr6. El mandato se ejecuta dos veces porque cada parámetro tiene su propiapropiedad con su propio elemento <Command>. Consulte artex_catalog_elem_PropertyDef.dita, para unejemplo que sólo necesita una ejecución del mandato uname.

Información relacionada

• artex_catalog_cmdline_gen.dita• artex_catalog_cmdline_gen_expansion.dita• artex_catalog_elem_PropertyDef.dita

Elemento <PropertyDef>El elemento <PropertyDef> define una propiedad que se puede utilizar en un elemento <Property>.

Sintaxis

Elemento padre: <Catalog>

Está soportado el siguiente atributo:

Tabla 52. Atributo

Atributo Obligatorio Tipo Descripción

nombre sí serie Especifica el nombre dela propiedad.

Se da soporte a los siguientes elementos hijos:

Tabla 53. Elemento hijo

Elemento hijo Obligatorio Descripción

<Command> no Mandato

<Argument> no Argumentos de línea de mandatos

<Stdin> no Argumentos admitidos por los elementos <Stdin>

<Filter> no Filtro

<Mask> no Máscara de captura de salida

Nota: Es necesario definir el elemento <Command> para cada propiedad: al nivel <ParameterDef>, alnivel <CfgMethod> o en un elemento <PropertyDef>.

Uso

Las propiedades son pares de clave-valor asociadas a un parámetro. El valor de los pares de clave-valorse recupera a través de los mandatos artexget–r y artexget–n y se guardan en la salida perfil. Losvalores de propiedad que se guardan en un perfil, se pueden insertar en una línea de mandatos utilizandola secuencia %p [nombre_propiedad].

El elemento <PropertyDef> define una propiedad. Esta propiedad se puede asociar más tarde a unparámetro o método de configuración utilizando un elemento <Property> con el mismo atributo denombre.

Gestión del sistema operativo 121

Page 128: AIX Versión 7 - IBM

Ejemplo

El ejemplo siguiente asigna una propiedad nodeId a los parámetros netaddr y netaddr6:

<PropertyDef name="nodeId"> <Command>/usr/bin/uname -f</Command> <Mask>.*</Mask></PropertyDef>

<ParameterDef name="netaddr" type="string" targetClass="device" cfgmethod="attr"> <Property name="nodeId"/></ParameterDef>

<ParameterDef name="netaddr6" type="string" targetClass="device" cfgmethod="attr"> <Property name="nodeId"/></ParameterDef>

En este ejemplo, el mandato uname solo se ejecuta una vez, porque los dos parámetros utilizan el mismoelemento <Command> para su propiedad y la línea de mandatos generada es la misma para ambosparámetros.

Información relacionada

• artex_catalog_cmdline_gen.dita• artex_catalog_cmdline_gen_expansion.dita• artex_catalog_elem_Property.dita

Generación de línea de mandatosLa infraestructura de AIX Runtime Expert se basa en mandatos externos para capturar, establecer y,opcionalmente, comparar valores de parámetros. Este tema explica cómo se crean las líneas demandatos según la información de sintaxis proporcionada en los archivos de catálogo.

Operaciones

Para cada parámetro, se pueden definir las operaciones siguientes:

• Get type="current", que se utiliza para capturar el valor actual del parámetro.• Get type="nextboot", que se utiliza para capturar el valor del parámetro que éste tendrá tras el

rearranque.• Set type="current", que se utiliza para establecer el valor actual del parámetro. Este valor de

parámetro se pierde al rearrancar.• Set type="nextboot", que se utiliza para establecer el valor del parámetro que éste tendrá tras el

rearranque.• Set type="permanent", que se utiliza para establecer el valor actual del parámetro, sabiendo que este

valor permanecerá tras un rearranque.• Operación diff, que se utiliza para comparar dos valores del parámetro.• Operación discover, que se utiliza para encontrar destinos para los parámetros que los soportan.• Propiedad, que se utiliza para capturar una propiedad de un parámetro.• Requisito previo, que se utiliza para condición de la ejecución de una operación get, set o discover para

un parámetro indicado.

No todas las operaciones necesitan definirse para todos los parámetros. Las dos operaciones get y todaslas operaciones set soportadas por los parámetros deben estar definidas. La operación diff es opcional y,si no está definida, las comparaciones entre los valores de los parámetros se realizan de manera internaen función del tipo de parámetro, por ejemplo, serie y entero. La operación discover debe estar definidasólo para parámetros que tienen destinos. Las propiedades y los requisitos previos sólo están definidoscuando sea necesario.

122 AIX Versión 7.2: Gestión del sistema operativo

Page 129: AIX Versión 7 - IBM

Elementos de línea de mandatos

Para cada operación soportada por un parámetro, se pueden utilizar hasta cinco elementos distintos paradefinir cómo se puede crear una línea de mandatos para realizar la operación:

• Elemento <Command>, utilizado para definir el mandato base, para manejar los parámetros.• Elemento <Stdin>, utilizado para definir los datos que se vayan a grabar en la entrada estándar de la

línea de mandatos.• Elemento <Argument>, utilizado para insertar datos específicos del parámetro en un elemento

<Command> o <Stdin>.• Elemento <Filter>, utilizado para filtrar la salida de una línea de mandatos para las operaciones get ydiff.

• Elemento <Mask>, utilizado para extraer datos de la salida de una línea de mandatos para lasoperaciones get, diff y property.

Cuando es necesario ejecutar una operación, los elementos <Command>, <Stdin>, <Argument> y<Filter> definidos para la operación solicitada se combinan para generar un conjunto de líneas demandato, tal y como se explica en el tema artex_catalog_cmdline_gen.dita#artex_catalog_cmdline_gen/CommandLineGenerationAlgorithm. Las líneas de mandatos generadas se ejecutan en un shell. Para lasoperaciones get, diff y property, se utiliza el elemento <Mask> para extraer los datos solicitados(valores de parámetro, resultados de comparación o valores de propiedad) desde la salida del mandato.

Métodos de configuración

Los elementos de la línea de mandatos se pueden definir de forma local dentro de un elemento<ParameterDef>, o bien heredarse desde un elemento <CfgMethod> al que se hace referencia en elelemento <ParameterDef> utilizando el atributo cfgmethod.

Se permite la combinación: el conjunto de elementos de la línea de mandatos definidos para unaoperación específica de un parámetro específico es la unión de los elementos de la línea de mandatosdefinidos localmente bajo el elemento <ParameterDef> y los elementos de la línea de mandatosdefinidos para la misma operación en el elemento <CfgMethod> al que hace referencia el atributocfgmethod del elemento <ParameterDef>. Si el mismo elemento de la línea de mandatos está definidotanto localmente como en un método de configuración, tendrá prioridad la definición local.

Por ejemplo, en este archivo de catálogo no optimizado:

<CfgMethod id=”vmo”> <Get type=”nextboot”> <Command>/usr/sbin/vmo -r%a</Command> <Mask name="1" value="2">[[:space:]]*(.*) = (.*)</Mask> </Get>

<Set type=”permanent”> <Command>/usr/sbin/vmo –p –o%a</Command> <Argument> -o %n=%p</Argument> </Set>

</CfgMethod>

<ParameterDef name=”lgpg_size” cfgmethod=”vmo”> <Get type=”current”> <Command>/usr/sbin/vmo -o lgpg_size</Command> <Mask name="1" value="2">[[:space:]]*(.*) = (.*)</Mask> </Get>

<Get type=”nextboot”> <Argument> -o lgpg_size</Argument> </Get>

</ParameterDef>

Podemos ver que:

• La operación <Get type="current"> se define completamente en el nivel <ParameterDef>.

Gestión del sistema operativo 123

Page 130: AIX Versión 7 - IBM

• La operación <Get type="nextboot"> tiene algunos elementos definidos en el nivel <CfgMethod>(<Command> y <Mask>) y algunos elementos definidos en el nivel <ParameterDef> (<Argument>).

• La operación <Get type="current"> se define completamente en el nivel <CfgMethod>.

La utilización de un método de configuración ofrece dos ventajas principales:

• Simplifica el catálogo. En muchos casos, las definiciones de los parámetros heredan todos loselementos de la línea de mandatos desde un método de configuración y el elemento <ParameterDef>queda vacío.

• Permite que distintos parámetros se agrupen en una única línea de mandatos, cuando sea posible.

Algoritmo de generación de línea de mandatos

Las líneas de mandatos se generan utilizando un algoritmo que permita que varios parámetros se agrupenen un único mandato.

La agrupación de parámetros no es sólo deseable desde un punto de vista de rendimiento y eficiencia,sino que también es necesaria para determinados parámetros. Por ejemplo, los parámetros vmolgpg_regions y lgpg_size, que no se pueden establecer de forma independiente y necesitan establecersejuntos en una única invocación de mandatos vmo.

El algoritmo de generación de línea de mandatos es funcionalmente equivalente a los pasos siguientes:

1. Cada parámetro del perfil de entrada tiene sus elementos <Command> y <Stdin> parcialmenteexpandidos. Durante esta fase, las secuencias %a, %v1[nombre], %v2[nombre], %f1[nombre] y%f2[nombre] se ignorarán y no se expandirán.

2. Los parámetros que verifican todas las cinco condiciones que aparecen a continuación se agrupanunidos:

• Los parámetros utilizan el mismo elemento <Command>.• Los parámetros utilizan el mismo elemento <Stdin>.• Los parámetros utilizan el mismo elemento <Filter>.• La expansión del elemento <Command> ejecutada durante el paso 1 creó series idénticas.• La expansión de su elemento <Stdin> ejecutada durante el paso 1 creó series idénticas.

Ahora, el grupo tiene sus propios elementos <Command> y <Stdin> parcialmente expandidos y supropio elemento <Filter>, compartido por todos los parámetros del grupo.

3. Para cada grupo de parámetros, los elementos <Command> y <Stdin> del grupo tienen lassecuencias %v1[nombre], %v2[nombre], %f1[nombre] y %f2[nombre] expandidas. El nombre delparámetro sólo se busca dentro del grupo.

4. Para cada grupo de parámetros, los elementos <Command> y <Stdin> del grupo tienen lassecuencias %a expandidas: cada parámetro del grupo tiene su elemento <Argument> expandido y laconcatenación de estos elementos <Argument> expandidos sustituye a cualquier secuencia %a delos elementos <Command> y <Stdin>.

El resultado de este proceso es un conjunto de líneas de mandatos, opcionalmente con datos para grabaren su entrada estándar y un mandato para filtrar su salida.

Expansión de los elementos de la línea de mandatosLos elementos <Command>, <Stdin> y <Argument> admiten secuencias especiales que se expandenmediante la infraestructura de AIX Runtime Expert para generar las líneas de mandatos finales.

La tabla que se muestra a continuación es una referencia breve de todas las secuencias soportadas. Paraobtener más detalles sobre una secuencia, consulte las secciones que se muestran a continuación.

Tabla 54. Secuencia

Secuencia Se expande a

%% El carácter % literal.

124 AIX Versión 7.2: Gestión del sistema operativo

Page 131: AIX Versión 7 - IBM

Tabla 54. Secuencia (continuación)

Secuencia Se expande a

%a La concatenación de las series Argumentexpandidas para todos los parámetros que sepueden procesar en la misma línea de mandatos.

%n El nombre del parámetro.

%v1 El valor del parámetro.

%v2 El segundo valor del parámetro. Sólo es válido paraoperaciones diff.

%f1 El nombre del archivo temporal que contendrá elvalor del parámetro.

%f2 El nombre del archivo temporal que contendrá elsegundo valor del parámetro. Sólo es válido paraoperaciones diff.

%v1[nombre] El valor del nombre del parámetro.

%v2[nombre] El segundo valor del nombre del parámetro. Sóloes válido para operaciones diff.

%f1[nombre] El nombre de un archivo temporal que contendrá elvalor del nombre del parámetro.

%f2[nombre] El nombre de un archivo temporal que contendrá elsegundo valor del nombre del parámetro. Sólo esválido para operaciones diff.

%t[clase] El nombre de la instancia de destino para la clasede destino.

%p[nombre] El valor de la propiedad nombre.

%c El id del catálogo.

Escape de secuencias %

Los nombres de parámetros, valores de parámetros y nombres de destinos que se expanden medianteAIX Runtime Expert se indican entre comillas cuando se utilizan dentro de un elemento <Command> odentro de un elemento <Argument> que se vaya a insertar (mediante la secuencia %a) en un elemento<Command>. Se hace así para asegurar que dichas series se pasen al shell como una única palabra,aunque incluyan espacios u otros caracteres especiales. De forma adicional, cualquier carácter de comillasimple dentro de la expresión expandida se escapará adecuadamente.

Los grabadores del catálogo deben tener cuidado de no utilizar las secuencias %n, %v1, %v2,%v1[nombre], %v2[nombre] o %t[clase] dentro de una serie delimitada. Si dichas secuencias debenutilizarse dentro de una serie, la serie debe cerrarse antes de la secuencia %, como se muestra en elejemplo siguiente:

echo "Parameter "%n" is set to "%v1

De no hacerlo, se producirán líneas de mandatos incorrectas y es un riesgo de seguridad.

La secuencia %%

La secuencia %% se expande al carácter % literal.

Gestión del sistema operativo 125

Page 132: AIX Versión 7 - IBM

Por ejemplo, la serie:

/bin/ps -aeF"%%a"

se expande a la siguiente serie:

/bin/ps -aeF"%a"

La secuencia %a

La secuencia %a se puede utilizar en la serie <Command> o en la serie <Stdin>. Se sustituye con laconcatenación de todas las series <Argument> expandidas de todos los parámetros que se pueden trataren el mismo mandato (consulte el tema Generación de línea de mandatos para obtener una descripciónformal sobre la agrupación de parámetros).

Por ejemplo, el catálogo siguiente (tenga en cuenta que se podría simplificar utilizando la secuencia %n):

<CfgMethod id=”vmo”> <Get type=”current” <Command>/usr/sbin/vmo%a</Command> </Get></CfgMethod><ParameterDef name=”lgpg_size” cfgmethod=”vmo”> <Get type=”current”> <Argument> -o lgpg_size</Argument> </Get></ParameterDef><ParameterDef name=”lgpg_regions” cfgmethod=”vmo”> <Get type=”current”> <Argument> -o lgpg_regions</Argument> </Get></ParameterDef>

Y el siguiente perfil:

<Parameter name=”lgpg_size” /><Parameter name=”lgpg_regions” />

producirán la siguiente línea de mandatos para la operación “get current”:

/usr/sbin/vmo –o lgpg_size –o lgpg_regions

La secuencia %n

La secuencia %n se sustituye por el nombre del parámetro.

Al utilizar la secuencia %n, el ejemplo de la sección %a podría simplificarse como sigue:

<CfgMethod id=”vmo”><Get type=”current”> <Command>/usr/sbin/vmo%a</Command> <Argument> -o %n</Argument></Get></CfgMethod><ParameterDef name=”lgpg_size” cfgmethod=”vmo” /><ParameterDef name=”lgpg_regions” cfgmethod=”vmo” />

Con el siguiente perfil:

<Parameter name=”lgpg_size” /><Parameter name=”lgpg_regions” />

La línea de mandatos siguiente podría generarse para la operación get current:

/usr/sbin/vmo –o ’lgpg_size’ –o ’lgpg_regions’

126 AIX Versión 7.2: Gestión del sistema operativo

Page 133: AIX Versión 7 - IBM

Las secuencias %v1 y %v2

La secuencia %v1 se sustituye por el valor del parámetro.

La secuencia %v2 solo es válida para operaciones <Diff> y se sustituye por el segundo valor delparámetro.

Por ejemplo, el siguiente catálogo:

<CfgMethod id=”vmo”> <Set type=”permanent”> <Command>/usr/sbin/vmo -p%a</Command> <Argument> -o %n=%v1</Argument> </Set></CfgMethod><ParameterDef name=”lgpg_size” cfgmethod=”vmo” /><ParameterDef name=”lgpg_regions” cfgmethod=”vmo” />

con el siguiente perfil:

<Parameter name=”lgpg_size” value=”16M”/><Parameter name=”lgpg_regions” value=”128” />

podría generar la siguiente línea de mandatos para la operación set permanent:

/usr/sbin/vmo –p –o ’lgpg_size’=’16M’ –o ’lgpg_regions’=’128’

Las secuencias %f1 y %f2

Las secuencias %f1 y %f2 se sustituyen por el nombre del archivo temporal creado antes de que seejecute el mandato. El contenido del archivo es el valor del parámetro para %f1 y el segundo valor delparámetro para %f2. La secuencia %f2 solo se puede utilizar para operaciones <Diff>.

Por ejemplo, el siguiente catálogo:

<ParameterDef name=”some_file”> <Diff> <Command>/usr/bin/diff %f1 %f2</Command> </Diff></ParameterDef>

Cuando se realiza artexdiff entre los dos perfiles, incluido el mismo parámetro con un valor diferente:

<Parameter name=”some_file” value=”foo” /><Parameter name=”some_file” value=”bar” />

Se crearán dos archivos temporales /tmp/file1 y /tmp/file2 (los nombres de archivos reales serándistintos) que contienen respectivamente las series “foo” y “bar”, y se ejecutará el siguiente mandato:

/usr/bin/diff /tmp/file1 /tmp/file2

Las secuencias %v1[nombre] y %v2[nombre]

La secuencia %v1[nombre] se sustituye por el valor del nombre del parámetro.

La secuencia %v2[nombre] solo es válida para operaciones <Diff> y se sustituye por el segundo valor delnombre del parámetro.

Dichas secuencias son útiles cuando un mandato de configuración acepta varios parámetros al mismotiempo, pero requiere que algunos de ellos se coloquen en una posición particular de la línea demandatos. Este es el caso del mandato chcons, por ejemplo, que requiere que la vía de acceso al archivoo al dispositivo de la consola vaya en último lugar en la línea de mandatos. Al utilizar la secuencia%v1[nombre], el catálogo chcons se podría grabar como sigue:

<CfgMethod id=”chcons”> <Set type=”nextboot”>

Gestión del sistema operativo 127

Page 134: AIX Versión 7 - IBM

<Command>/usr/sbin/chcons%a %v1[console_device]</Command> <Argument> -a %n=%v1</Argument> </Set></CfgMethod><ParameterDef name=”console_device” cfgmethod=”chcons” reboot=”true” /><ParameterDef name=”console_logname” cfgmethod=”chcons” reboot=”true” /><ParameterDef name=”console_logsize” cfgmethod=”chcons” reboot=”true” />

con el siguiente perfil:

<Parameter name=”console_device” value=”/dev/vty0”/><Parameter name=”console_logname” value=”/var/adm/ras/conslog” /><Parameter name=”console_logverb” value=”9” />

Este catálogo podría generar la siguiente línea de mandatos para la operación set nextboot:

/usr/sbin/chcons –a ’console_logname’=’/var/adm/ras/conslog’ –a ’console_logverb’=’9’ /dev/vty0

Las secuencias %f1[nombre] y %f2[nombre]

Las secuencias %f1[nombre] y %f2[nombre] se sustituyen por el nombre del archivo temporal creadoantes de que se ejecute el mandato. El contenido del archivo es el valor del nombre del parámetro para%f1[nombre] y el segundo valor del nombre del parámetro para %f2[nombre]. La secuencia %f2[nombre]solo se puede utilizar para las operaciones <Diff>.

Las secuencias %t[clase]

La secuencia %t[clase] se sustituye por el nombre de la instancia de destino que se trata para la clase dedestino.

La secuencia %t[clase] se utiliza para parámetros que se aplican a un objeto específico, no para todo elsistema. Un ejemplo de esto es el mandato chuser, cuyos parámetros se aplican a un usuario específico(root, invitado) para un registro específico (archivos, LDAP). El catálogo para el mandato chuser sepodría grabar como sigue:

<CfgMethod id=”chuser”> <Set type=”permanent”><Command>/usr/bin/chuser –R %t[módulo]%a %t[usuario]</Command> <Argument> %n=%v1</Argument> </Set></CfgMethod><ParameterDef name=”shell” cfgmethod=”chuser” targetClass=”module,user”><ParameterDef name=”histsize” cfgmethod=”chuser” targetClass=”module,user” />

Con el perfil siguiente, que establece los parámetros shell y histsize para los usuarios adam y bob en losregistros de archivos y LDAP:

<Parameter name=”shell” value=”/usr/bin/ksh”> <Target class=”module” instance=”LDAP” /> <Target class=”user” instance=”adam” /></Parameter><Parameter name=”histsize” value=”5000”> <Target class=”module” instance=”LDAP” /> <Target class=”user” instance=”adam” /></Parameter><Parameter name=”shell” value=”/usr/bin/ksh”> <Target class=”module” instance=”files” /> <Target class=”user” instance=”adam” /></Parameter><Parameter name=”histsize” value=”5000”> <Target class=”module” instance=”files” /> <Target class=”user” instance=”adam” /></Parameter><Parameter name=”shell” value=”/usr/bin/bash”> <Target class=”module” instance=”LDAP” /> <Target class=”user” instance=”bob” /></Parameter><Parameter name=”histsize” value=”10000”> <Target class=”module” instance=”LDAP” /> <Target class=”user” instance=”bob” /></Parameter>

128 AIX Versión 7.2: Gestión del sistema operativo

Page 135: AIX Versión 7 - IBM

<Parameter name=”shell” value=”/usr/bin/bash”> <Target class=”module” instance=”files” /> <Target class=”user” instance=”bob” /></Parameter><Parameter name=”histsize” value=”10000”> <Target class=”module” instance=”files” /> <Target class=”user” instance=”bob” /></Parameter>

Podría ejecutar los siguientes mandatos:

/usr/bin/chuser –R ’LDAP’ ’shell’=’/usr/bin/ksh’ ’histsize’=’5000’ ’adam’/usr/bin/chuser –R ’files’ ’shell’=’/usr/bin/ksh’ ’histsize’=’5000’ ’adam’/usr/bin/chuser –R ’LDAP’ ’shell’=’/usr/bin/bash’ ’histsize’=’10000’ ’bob’/usr/bin/chuser –R ’files’ ’shell’=’/usr/bin/bash’ ’histsize’=’10000’ ’bob’

Anote cómo se generaron los cuatro mandatos. El motivo es que las secuencias %t[módulo] y %t[usuario]se utilizaron en la serie <Command>, lo que significa que cada mandato es específico de un módulo y unusuario concretos. Debido a esto, únicamente se agrupan los parámetros que se aplican al mismo móduloy usuario.

Secuencia %p [nombre]

La secuencia %p [nombre] se sustituye por el valor especificado en el perfil de entrada para el nombre dela propiedad. Por ejemplo, los siguientes prerrequisitos utilizan la secuencia %p [nodeId] para comprobarque el id de nodo del sistema local (devuelto por el mandato uname –f ) coincide con el id de nodoalmacenado en la propiedad de nodeId del perfil:

<PrereqDef id="nodeId"> <Command>[[ `/usr/bin/uname -f` = %p[nodeId] ]]</Command> <ErrMessage>Parameter cannot be applied to a different node</ErrMessage></PrereqDef>

Secuencia %c

La secuencia %c se sustituye por el ID del archivo de catálogo al que pertenece el parámetro. Este es elid de catálogo especificado en el perfil, que puede ser distinto del ID del catálogo que realmente define elparámetro si se utiliza la herencia de catálogo.

Por ejemplo, los siguientes prerrequisitos utilizan la secuencia %c para comprobar que uniquetype deldispositivo de destino coincide con el nombre del archivo de catálogo:

<PrereqDef id="devUniqueType"> <Command>[[ "devParam.`/usr/sbin/lsdev -F uniquetype -l %t[device] | /usr/bin/tr / .`" = %c ]]</Command> <ErrMessage>Parameter cannot be applied to a different device type</ErrMessage></PrereqDef>

Mandatos y procesosUn mandato es una petición para realizar una operación o para ejecutar un programa. Un proceso es unprograma o mandato que se ejecuta realmente en el sistema.

Debe utilizar los mandatos para indicar al sistema operativo qué tarea desea efectuar. Cuando se entranmandatos, un intérprete de mandatos (también conocido como shell) los descifra y dicha tarea seprocesa.

El sistema operativo puede ejecutar distintos procesos al mismo tiempo.

El sistema operativo le permite manipular la entrada y la salida (E/S) de los datos hacia y desde el sistemautilizando mandatos y símbolos de E/S específicos. Puede controlar la entrada especificando la ubicaciónde donde se recogerán datos. Por ejemplo, puede especificar la lectura de la entrada que se escribe en elteclado (entrada estándar) o la lectura de la entrada desde un archivo. Puede controlar la salidaespecificando dónde visualizar o almacenar datos. Por ejemplo, puede especificar grabar datos en lapantalla (salida estándar) o grabar en un archivo.

Gestión del sistema operativo 129

Page 136: AIX Versión 7 - IBM

MandatosAlgunos mandatos pueden entrarse simplemente escribiendo una palabra. También es posible combinarmandatos de forma que la salida de un mandato se convierta en la entrada para otro mandato.

La combinación de mandatos de modo que la salida de un mandato se convierta en la entrada de otro sedenomina conexión.

Los distintivos definen de forma más detallada las acciones de los mandatos. Un distintivo es unmodificador que se utiliza con el nombre del mandato en la línea de mandatos, por lo general, precedidode un guión.

También pueden agruparse los mandatos y almacenarse en un archivo. Estos archivos se conocen comoprocedimientos de shell o scripts de shell. En lugar de ejecutar los mandatos individualmente, se ejecutael archivo que contiene los mandatos.

Para entrar un mandato, escriba el nombre del mandato en el indicador de mandatos y pulse Intro.

$ NombreMandato

Conceptos relacionadosFunciones del shellExisten ventajas de utilizar el shell como interfaz para el sistema.Tareas relacionadasCreación y ejecución de script de shellUn script de shell es un archivo que contiene uno o varios mandatos. Gracias a los scripts de shell puedeejecutar fácilmente mandatos aburridos, secuencias de mandatos largas o complicadas y tareas derutina. Al entrar el nombre de un archivo de script de shell, el sistema ejecuta la secuencia de mandatosque contiene el archivo.

Sintaxis y nombres de mandatosAunque algunos mandatos pueden entrarse simplemente escribiendo una palabra, otros mandatosutilizan distintivos y parámetros. Cada mandato tiene una sintaxis que designa los distintivos yparámetros obligatorios y opcionales.

El formato general de un mandato es el siguiente:

NombreMandato distintivo(s) parámetro(s)

A continuación se indican algunas normas generales acerca de los mandatos:

• Los espacios entre mandatos, distintivos y parámetros son importantes.• Pueden entrarse dos mandatos en la misma línea separándolos con un punto y coma (;). Por ejemplo:

$ MandatoUno;MandatoDos

El shell ejecuta los mandatos secuencialmente.• Los mandatos son sensibles a las mayúsculas y minúsculas. El shell distingue entre letras en

mayúsculas y letras en minúsculas. Para el shell, print no es lo mismo que PRINT o que Print.• Un mandato muy largo se puede entrar en más de una línea utilizando el carácter de barra inclinada

invertida (\). Una barra inclinada invertida significa continuación de línea para el shell. En el ejemplosiguiente se muestra un mandato que abarca dos líneas:

$ ls Mail info temp \(pulse Intro)

> diary(aparece el indicador >)

El carácter > es el indicador secundario ($ es el indicador primario predeterminado del usuario que noes root), lo que indica que la línea actual es la continuación de la línea anterior. Tenga en cuenta quecsh (el shell C) no proporciona ningún indicador secundario, la interrupción debe estar en el límite deuna palabra y su indicador primario es %.

130 AIX Versión 7.2: Gestión del sistema operativo

Page 137: AIX Versión 7 - IBM

La primera palabra de cada mandato es el nombre del mandato. Algunos mandatos sólo tienen unnombre de mandato.

Distintivos de los mandatosTras el nombre del mandato pueden especificarse varios distintivos. Los distintivos modifican laoperación que realiza un mandato y, en ocasiones, se denominan opciones.

Los distintivos van separados por espacios o tabulaciones y normalmente comienzan por un guión (-). Lasexcepciones son ps, tar y ar, que no requieren un guión delante de algunos distintivos. Por ejemplo, enel siguiente mandato:

ls -a -F

ls es el nombre del mandato y -a -F son los distintivos.

Cuando un mandato utiliza distintivos, se sitúan directamente después del nombre del mandato. Losdistintivos de un solo carácter en un mandato pueden combinarse con un guión. Por ejemplo, el mandatoanterior también puede escribirse de la forma siguiente:

ls -aF

Existen circunstancias en las que un parámetro empieza realmente con un guión (-). En este caso, utiliceel delimitador guión guión (—) delante del parámetro. El delimitador del guión doble — indica al mandatoque el elemento que le sigue no es un distintivo, sino un parámetro.

Por ejemplo, si deseara crear un directorio llamado -tmp y escribiera el mandato siguiente:

mkdir -tmp

El sistema visualizaría un mensaje de error parecido al siguiente:

mkdir: No es un distintivo reconocido: tUso: mkdir [-p] [-m modalidad] Directorio ...

La forma correcta de escribir el mandato es la siguiente:

mkdir -- -tmp

Ahora se crea el nuevo directorio, -tmp.

Parámetros de los mandatosTras el nombre del mandato puede haber varios distintivos, seguidos de parámetros. A veces, losparámetros se denominan argumentos u operandos. Los parámetros especifican información que elmandato necesita para su ejecución.

Si no especifica un parámetro, el mandato podría dar por supuesto un valor predeterminado. Por ejemplo,en el siguiente mandato:

ls -a temp

ls es el nombre del mandato, -a es el distintivo y temp es el parámetro. Este mandato visualiza todos (-a)los archivos del directorio temp.

En el ejemplo siguiente:

ls -a

el valor predeterminado es el directorio actual, ya que no se ha especificado ningún parámetro.

En el ejemplo siguiente:

ls temp mail

Gestión del sistema operativo 131

Page 138: AIX Versión 7 - IBM

no se proporciona ningún distintivo y temp y mail son parámetros. En este caso, temp y mail son dosnombres de directorios distintos. El mandato ls visualiza todos los archivos a excepción de los archivosocultos de cada uno de estos directorios.

Siempre que un parámetro u opción-argumento sea, o contenga, un valor numérico, el número seinterpretará como entero decimal, a menos que se especifique algo distinto. Los números en el rango de0 a INT_MAX, tal como se ha definido en el archivo /usr/include/sys/limits.h, se reconocensistemáticamente como valores numéricos.

Si un mandato que desea utilizar acepta números negativos como parámetros u opciones-argumentos,puede utilizar números en el rango de INT_MIN a INT_MAX, tal como se han definido ambos en elarchivo /usr/include/sys/limits.h. Esto no significa necesariamente que todos los números queestán comprendidos dentro de este rango sean semánticamente correctos. Algunos mandatos tienen unaespecificación incorporada que permite un rango de números menor, por ejemplo algunos de losmandatos de impresión. Si se genera un error, el mensaje de error le permite saber que el valor no está enel rango soportado y no que el mandato es sintácticamente incorrecto.

Sentencias de usoLas sentencias de uso son una forma de representar la sintaxis del mandato y se componen de símboloscomo, por ejemplo, los corchetes ([ ]), las llaves ({ }) y las barras verticales (|).

A continuación se muestra un ejemplo de una sentencia de uso para el mandato unget:

unget [ -rSID ] [ -s ] [ -n ] Archivo ...

En las sentencias de uso de los mandatos se utilizan los convenios siguientes:

• Los elementos que deben especificarse literalmente en la línea de mandatos aparecen en negrita.Estos elementos incluyen el nombre del mandato, los distintivos y los caracteres literales.

• Los elementos que representan variables que deben sustituirse por un nombre aparecen en cursiva.Estos elementos incluyen los parámetros que siguen a los indicadores y los parámetros que el mandatolee como, por ejemplo, los Archivos y los Directorios.

• Los parámetros delimitados por corchetes son opcionales.• Los parámetros incluidos entre llaves son obligatorios.• Los parámetros que no están delimitados por corchetes o por llaves son obligatorios.• Una barra vertical significa que sólo se elige un parámetro. Por ejemplo, [ a | b ] indica que puede elegir

entre a, b o nada. Del mismo modo, { a | b } indica que debe elegir a o bien b.• Los puntos suspensivos ( ... ) significan que el parámetro se puede repetir en la línea de mandatos.• El guión ( - ) representa la entrada estándar.

Mandato shutdownSi tiene autorización de usuario root, puede utilizar el mandato shutdown para detener el sistema. Si notiene autorización para utilizar el mandato shutdown, simplemente finalice la sesión del sistemaoperativo y déjelo en ejecución.

Atención: No apague el sistema sin cerrarlo antes. Si apagara el sistema, finalizarían todos losprocesos que se ejecutan en el sistema. Si existen otros usuarios que están trabajando en elsistema, o si existen trabajos en segundo plano en ejecución, podrían perderse datos. Antes dedetener el sistema, realice los procedimientos de conclusión adecuados.

En el indicador de mandatos, escriba lo siguiente:

shutdown

Cuando se complete el mandato shutdown y el sistema operativo detenga su ejecución, recibirá elmensaje siguiente:

....Cierre completado....

Consulte el mandato shutdown para ver la sintaxis completa.

132 AIX Versión 7.2: Gestión del sistema operativo

Page 139: AIX Versión 7 - IBM

Localización de otro mandato o programa (mandato whereis)El mandato whereis localiza las secciones correspondientes a fuente, binario y manuales de los archivosespecificados. El mandato intenta localizar el programa deseado en una lista de ubicaciones estándares.

Vea los ejemplos siguientes:

• Para buscar los archivos del directorio actual que no tienen ninguna documentación, escriba losiguiente:

whereis -m -u *

• Para buscar todos los archivos que contienen el nombre Mail, escriba lo siguiente:

whereis Mail

El sistema mostrará una información parecida a esta:

Mail: /usr/bin/Mail /usr/lib/Mail.rc

Visualización de información acerca de un mandato (mandato man)El mandato man visualiza información acerca de los mandatos, las subrutinas y los archivos.

El formato general del mandato man es el siguiente:

man NombreMandato

Para obtener información acerca del mandato pg, escriba lo siguiente:

man pg

El sistema mostrará una información parecida a esta:

Mandato pg

Objetivo

Formatea archivos en la pantalla.

Sintaxis

pg [ - Número ] [ -c ] [ -e ] [ -f ] [ -n ] [ -p Serie ] [ -s ] [ +NúmeroLínea | +/Patrón/ ] [ Archivo ... ]

Descripción

El mandato pg lee un nombre de archivo del parámetro Archivo y graba el archivo en salida estándar, una pantalla cada vez. Si especifica un - (guión) como parámetro Archivo o ejecuta el mandato pg sin opciones, el mandato pg lee la entrada estándar. A cada pantalla le sigue un indicador. Si pulsa la tecla Intro, se visualiza otra página. Los submandatos utilizados con el mandato pg le permiten revisar o buscar en el archivo.

Visualización de la función de un mandato (mandato whatis)El mandato whatis busca un mandato, una llamada al sistema, una función de biblioteca o un nombre dearchivo especial determinado, según lo especificado en el parámetro Mandato, en una base de datos quese crea utilizando el mandato catman -w.

Para obtener información acerca del mandato catman -w, consulte catman -w. El mandato whatisvisualiza la línea de cabecera de la sección de manuales. A continuación puede emitir el mandato manpara obtener información adicional. Para obtener información acerca del mandato man, consulte man.

El mandato whatis es equivalente a utilizar el mandato man -f.

Para averiguar qué hace el mandato ls, escriba lo siguiente:

whatis ls

Gestión del sistema operativo 133

Page 140: AIX Versión 7 - IBM

El sistema mostrará una información parecida a esta:

ls(1) -Muestra el contenido de un directorio.

Listado de los mandatos entrados anteriormente (mandato history)Utilice el mandato history para listar los mandatos que ha entrado anteriormente.

El mandato history es un mandato incorporado del shell Korn que lista los 16 últimos mandatos que sehan entrado. El shell Korn guarda los mandatos que ha entrado en un archivo histórico de mandatos, porlo general denominado $HOME/.sh_history. La utilización de este mandato le ahorra tiempo cuandotiene que repetir un mandato anterior.

Por omisión, el shell Korn guarda el texto de los 128 últimos mandatos para usuarios que no son root y delos 512 últimos mandatos para el usuario root. El tamaño del archivo histórico (que se especificamediante la variable de entorno HISTSIZE) no está limitado, aunque un tamaño de archivo histórico muygrande puede dar lugar a que el inicio del shell Korn sea lento.

Nota: El shell Bourne no soporta el mandato history.

Para listar los mandatos que ha entrado anteriormente, en el indicador de mandatos escriba lo siguiente:

history

El mandato history que él mismo entra muestra una lista con los 16 mandatos anteriormente entrados.El sistema mostrará una información parecida a esta:

928 ls929 mail930 printenv MAILMSG931 whereis Mail932 whatis ls933 cd /usr/include/sys934 ls935 man pg936 cd937 ls | pg938 lscons939 tty940 ls *.txt941 printenv MAILMSG942 pwd943 history

El listado muestra en primer lugar la posición del mandato en el archivo $HOME/.sh_history y luego elmandato.

Para listar los cinco mandatos anteriores, en el indicador de mandatos escriba lo siguiente:

history -5

Se visualiza una lista similar a la siguiente:

939 tty940 ls *.txt941 printenv MAILMSG942 pwd943 history944 history -5

El mandato history seguido de un número muestra una lista de todos los mandatos entradosanteriormente, empezando por el número de mandato indicado.

Para listar los mandatos desde el número 938, en el indicador de mandatos escriba lo siguiente:

history 938

Se visualiza una lista similar a la siguiente:

134 AIX Versión 7.2: Gestión del sistema operativo

Page 141: AIX Versión 7 - IBM

938 lscons939 tty940 ls *.txt941 printenv MAILMSG942 pwd943 history944 history -5945 history 938

Conceptos relacionadosShells del sistema operativoLa interfaz con el sistema operativo se denomina shell.Sustitución del histórico de mandatosUtilice el mandato incorporado fc para listar o editar partes del archivo histórico. Para seleccionar unaparte del archivo a editar o listar, especifique el número del primer carácter o caracteres del mandato.

Repetición de mandatos utilizando el alias rPara repetir mandatos anteriores, utilice el alias del shell Korn r.

Escriba r y pulse Intro y podrá especificar el número o el primer carácter o caracteres del mandato.

Si desea listar las pantallas que están actualmente disponibles en el sistema, escriba lsdisp en elindicador. El sistema devuelve la información en la pantalla. Si desea que vuelva a mostrarse la mismainformación, en el indicador de mandatos escriba lo siguiente:

r

El sistema vuelve a ejecutar el mandato que se ha entrado más recientemente. En este ejemplo, seejecuta el mandato lsdisp.

Para repetir el mandato ls *.txt, en el indicador, escriba lo siguiente:

r ls

El alias del shell Korn r localiza el mandato más reciente que empieza por el carácter o caracteresespecificados.

Sustitución de series utilizando el alias rPuede utilizar el alias del shell Korn r para modificar un mandato antes de ejecutarlo.

En este caso, se puede utilizar un parámetro de sustitución con el formato Antiguo=nuevo para modificarel mandato antes de ejecutarlo.

Los ejemplos siguientes muestran cómo utilizar el alias r:

• Si la línea de mandatos 940 es ls *.txt, y desea ejecutar ls *.exe, en el indicador escriba losiguiente:

r txt=exe 940

Con ello se ejecutará el mandato 940, sustituyéndose exe por txt.• Si el mandato de la línea 940 es el mandato más reciente que empieza por la letra minúscula l, también

puede escribir lo siguiente:

r txt=exe l

Nota: Sólo se sustituye la primera ocurrencia de la serie Antigua por la serie Nueva. Si se entra el alias deshell Korn r sin un número de mandato o carácter específico, la sustitución se efectúa en el mandatoentrado anteriormente.

Edición del histórico de mandatosEl mandato incorporado del shell Korn fc se utiliza para listar o editar partes del archivo histórico demandatos.

Gestión del sistema operativo 135

Page 142: AIX Versión 7 - IBM

Para seleccionar una parte del archivo a editar o listar, especifique el número del primer carácter ocaracteres del mandato. Puede especificar un solo mandato o un rango de mandatos.

Si no especifica un programa editor como argumento para el mandato incorporado del shell Korn fc, seutiliza el editor especificado por la variable FCEDIT. Si no se ha definido la variable FCEDIT, se utiliza eleditor /usr/bin/ed. El mandato o mandatos editados se imprimen y ejecutan cuando sale del editor.Utilice el mandato printenv para visualizar el valor de la variable FCEDIT.

A continuación se muestran ejemplos de cómo editar el histórico de mandatos:

• Si desea ejecutar el mandato:

cd /usr/tmp

que es muy similar a la línea de mandatos 933, en el indicador de mandatos escriba lo siguiente:

fc 933

En este punto, aparece el editor por omisión con la línea de mandatos 933. Debe cambiarinclude/sys por tmp y, cuando salga del editor, se ejecutará el mandatos editado.

• También puede especificar el editor que desea utilizar en el mandato fc. Por ejemplo, si desea editarun mandato utilizando el editor /usr/bin/vi, en el indicador, escriba lo siguiente:

fc -e vi 933

En este punto, aparece el editor vi con la línea de mandatos 933.• También puede especificar un rango de mandatos para editar. Por ejemplo, si desea editar los

mandatos del 930 al 940, en el indicador de mandatos escriba lo siguiente:

fc 930 940

En este punto, aparece el editor por omisión con las líneas de mandato 930 a 940. Cuando salga deleditor, todos los mandatos que aparezcan en el editor se ejecutan secuencialmente.

Creación de un alias de mandato (mandatos de shell alias)Un alias le permite crear un nombre abreviado para un mandato, un nombre de archivo o cualquier textodel shell. Utilizando alias, puede ahorrarse tiempo cuando efectúa tareas de proceso frecuente. Puedecrear un alias de mandato.

Utilice el mandato incorporado del shell Korn alias para definir un palabra como alias para algúnmandato. Puede utilizar alias para redefinir mandatos incorporados, pero no para redefinir palabrasreservadas.

El primer carácter de un nombre de alias puede ser cualquier carácter imprimible, a excepción de losmetacaracteres. Los caracteres restantes deben ser los mismos que los de un nombre de archivo válido.

El formato para crear un alias es el siguiente:

alias Nombre=Serie

donde el parámetro Nombre especifica el nombre del alias y el parámetro Serie especifica una serie decaracteres. Si la Serie contiene espacios en blanco, especifíquela entre comillas.

A continuación se proporcionan ejemplos sobre cómo crear un alias:

• Para crear un alias para el mandato rm -i (le pregunta antes de suprimir los archivos), en el indicadorde mandatos escriba lo siguiente:

alias rm="/usr/bin/rm -i"

En este ejemplo, siempre que especifique el mandato rm, el mandato real ejecutado es /usr/bin/rm-i.

136 AIX Versión 7.2: Gestión del sistema operativo

Page 143: AIX Versión 7 - IBM

• Para crear un alias denominado dir para el mandato ls -alF | pg (que visualiza informacióndetallada de todos los archivos del directorio actual, incluyendo los archivos invisibles; marca losarchivos ejecutables con un * y los directorios con una /; y se desplaza por la pantalla), escriba losiguiente en el indicador:

alias dir="/usr/bin/ls -alF | pg"

En este ejemplo, siempre que especifique el mandato dir, el mandato real ejecutado es /usr/bin/ls-alF | pg.

• Para que se visualicen todos los alias de que dispone, en el indicador de mandatos escriba lo siguiente:

alias

El sistema mostrará una información parecida a esta:

rm="/usr/bin/rm -i"dir="/usr/bin/ls -alF | pg"

Conceptos relacionadosAlias de mandatos en el shell Korn o shell POSIXEl shell Korn o el shell POSIX le permiten crear alias para personalizar mandatos.

Soporte internacional de caracteres en formateo de textoPuede utilizar mandatos de formateo de texto para trabajar con texto compuesto por el juego decaracteres ampliado internacional que se utiliza para idiomas europeos.

El juego de caracteres ampliado internacional proporciona los caracteres y símbolos utilizados en muchosidiomas europeos, además de un subconjunto ASCII compuesto de los caracteres, dígitos y puntuacióndel idioma inglés.

Todos los caracteres del juego de caracteres ampliado europeo tienen formatos ASCII. Estos formatospueden utilizarse para representar los caracteres ampliados en la entrada; por otra parte, los caracterespuede escribirse directamente con un dispositivo como, por ejemplo, un teclado que dé soporte a loscaracteres ampliados europeos.

Los siguientes mandatos de formateo de texto aceptan todos los idiomas internacionales que utilizancaracteres de un solo byte. Estos mandatos se encuentran en /usr/bin. (Los mandatos que seidentifican con un asterisco (*) dan soporte al proceso de texto en varios idiomas.

addbib* hyphen pic* pstextcheckmm ibm3812 ps4014 refer*checknr* ibm3816 ps630 roffbib*col* ibm5587G* psbanne soelim*colcrt ibm5585H-T* psdit sortbib*deroff* indxbib* psplot tbl*enscript lookbib* psrev troff*eqn* makedev* psroff vgrindgrap* neqn* psrv xpreview*hplj nroff*

Los mandatos de formateo de texto y los paquetes de macros que no están en la lista anterior no se hanhabilitado para procesar los caracteres internacionales.

Conceptos relacionadosSoporte de caracteres de varios bytes en formateo de textoDeterminados mandatos de formateo de texto se pueden utilizar para procesar texto para idiomasmultibyte.

Formato de texto con caracteres ampliados de un solo byteSi el dispositivo de entrada que utiliza da soporte a los caracteres del juego de caracteres ampliado paraidiomas europeos, puede escribirlos directamente.

Gestión del sistema operativo 137

Page 144: AIX Versión 7 - IBM

De lo contrario, utilice el siguiente formato de escape ASCII para representar dichos caracteres:

El formato \[N ], donde N es el código hexadecimal de 2 o de 4 dígitos del carácter.

Nota: El formato NCesc \<xx> ya no está soportado.

Al texto que contiene caracteres ampliados se le da salida de acuerdo con los convenios de formateo delidioma en uso. Los caracteres que no están definidos para la interfaz a un dispositivo de salida específicono generan salida ni indicación de errores.

Aunque los nombres de las peticiones, paquetes de macros y mandatos están basados en el inglés, lamayoría de ellos pueden aceptar entrada (por ejemplo, nombres de archivos y parámetros) que incluyacaracteres del juego de caracteres ampliado europeo.

Respecto a los mandatos nroff y troff y sus predecesores, la entrada del mandato debe ser ASCII o seproducirá un error de sintaxis no recuperable. Los caracteres internacionales, de un solo byte o de variosbytes, pueden escribirse cuando éstos se especifican entre comillas y dentro de otro texto que tenga queformatearse. Por ejemplo, utilizando macros desde el mandato pic:

define foobar % AlgúnTexto %

Después de la directiva define, el nombre especificado, foobar, debe ser ASCII. Sin embargo, el textode sustitución, AlgúnTexto, puede contener caracteres que no sean ASCII.

Soporte de caracteres de varios bytes en formateo de textoDeterminados mandatos de formateo de texto se pueden utilizar para procesar texto para idiomasmultibyte.

Estos mandatos se identifican con un asterisco (*) en la lista de Soporte internacional de caracteres enformateo de texto. Los mandatos de formateo de texto que no están en la lista no se han habilitado paraprocesar caracteres internacionales.

Los caracteres de varios bytes pueden escribirse directamente, si el dispositivo de entrada da soporte aéstos. En caso contrario, puede escribir cualquier carácter de varios bytes en el formato ASCII \[N], dondela N es la codificación hexadecimal de 2, 4, 6, 7 u 8 dígitos del carácter.

Aunque los nombres de las peticiones, macros y mandatos están basados en el inglés, la mayoría de ellospueden aceptar entrada (por ejemplo, nombres de archivos y parámetros) que incluya cualquier tipo decarácter multibyte.

Si ya está familiarizado con la utilización de mandatos de formateo de texto de un solo byte, la listasiguiente resume las características que son indicativas o exclusivas para los escenarios multibyte:

• El texto no está delimitado por guiones.• Se requieren tipos de formatos especiales para salida numérica multibyte. Están disponibles los tipos

de formato japoneses.• Se da salida al texto en líneas horizontales, rellenadas de izquierda a derecha.• El espaciado de caracteres es constante, de forma que los caracteres se alineen automáticamente en

columnas.• Los caracteres que no están definidos para la interfaz a un dispositivo de salida específico no generan

salida ni indicación de errores.

Conceptos relacionadosSoporte internacional de caracteres en formateo de textoPuede utilizar mandatos de formateo de texto para trabajar con texto compuesto por el juego decaracteres ampliado internacional que se utiliza para idiomas europeos.

Visualización de un calendarioPuede grabar un calendario en la salida estándar utilizando el mandato cal.

El parámetro Mes denomina el mes para el que se desea el calendario. Puede ser un número de 1 a 12para los meses de enero a diciembre, respectivamente. Si no se especifica el Mes, el mandato cal tomael valor predeterminado del mes actual.

138 AIX Versión 7.2: Gestión del sistema operativo

Page 145: AIX Versión 7 - IBM

El parámetro Año denomina el año para el que se desea el calendario. Puesto que el mandato cal puedemostrar un año para cada año de 1 a 9999, teclee el año completo en lugar de sólo los dos últimosdígitos. Si no especifica el Año, el mandato cal toma el valor predeterminado del año actual.

Lo siguiente son ejemplos del modo de utilizar el mandato cal:

1. Para visualizar un calendario de febrero de 2002 en la estación de trabajo, teclee:

cal 2 2002

2. Pulse Intro.3. Para imprimir un calendario del año 2002, teclee:

cal 2002 | qprt

4. Pulse Intro.

Visualización de mensajes de recordatorioPuede visualizar un mensaje de recordatorio al leer un archivo denominado calendar. Este archivo secrea en el directorio padre con el mandato calendar. El mandato graba en salida estándar cualquierlínea del archivo que contiene la fecha del día actual o del día siguiente.

Puede leer un archivo denominado calendar, que el usuario crea en el directorio padre con el mandatofilepath. El mandato graba en salida estándar cualquier línea del archivo que contiene la fecha del díaactual o del día siguiente.

El mandato calendar reconoce formatos de fecha como, por ejemplo, 7 de dic. o 12/7. Tambiénreconoce el asterisco de carácter especial (*) cuando va seguido de una barra inclinada (/). Por ejemplo,interpreta */7 como el séptimo día de cada mes.

Los viernes, el mandato calendar graba todas las líneas que contienen las fechas para viernes, sábado,domingo y lunes. Sin embargo, el mandato no reconoce los días festivos. En los días festivos, el mandatofunciona del modo habitual y sólo proporciona la planificación del día siguiente.

Uso de un archivo de calendario típico

Un archivo calendar típico puede tener un aspecto similar al siguiente:

*/25 - Preparar informe mensual12 agosto - Vuelo a Madrid23 agosto - reunión de la junta directivaMarta ausente - 8/23, 8/24, 8/258/24 - pago cochesab agos/25 - excursión a la playa27 agosto - Reunión con García28 agosto - Reunión con Domínguez

Para ejecutar el mandato calendar, escriba:

calendario

Si hoy es viernes, 24 de agosto, el mandato calendar muestra lo siguiente:

*/25 - Preparar informe mensualMarta ausente - 8/23, 8/24, 8/258/24 - pago cochesab agos/25 - excursión a la playa27 agosto - Reunión con García

Uso de un archivo de calendario que contiene una sentencia de inclusión

Un archivo calendar que contiene una sentencia de inclusión puede tener un aspecto similar alsiguiente:

#include </tmp/out>1/21 -Revisión anual

Gestión del sistema operativo 139

Page 146: AIX Versión 7 - IBM

1/21 -Reunión de proyecto semanal1/22 *Reunión con Martínez en Barcelona*Cita con el médico - 1/231/23 -Boda de Vinh

Para ejecutar el mandato calendar, escriba:

calendario

Si hoy es miércoles, 21 de enero, el mandato calendar muestra lo siguiente:

21 de enero Fiesta de despedida de David22 de enero Reunión de accionistas en Bilbao1/21 -Revisión anual1/21 -Reunión de proyecto semanal1/22 *Reunión con Martínez en Barcelona*

Los resultados del mandato calendar indican el archivo /tmp/out contenido en las líneas siguientes:

21 de enero Fiesta de despedida de David22 de enero Reunión de accionistas en Bilbao

Descomposición de un número en factoresEl mandato factor le permite descomponer números en factores.

Cuando se llama sin especificar un valor para el parámetro Number, el mandato factor espera a que elusuario entre un número positivo inferior a 1E14 (100,000,000,000,000). A continuación, graba losfactores principales de dicho número en la salida estándar. Muestra cada factor por orden, así como elnúmero correspondiente de veces en caso de que el mismo factor se utilice varias veces. Para salir, entre0 (cero) o cualquier carácter no numérico.

Cuando se llama con un argumento, el mandato factor determina los factores principales del parámetroNumber, graba los resultados en la salida estándar y efectúa la salida.

Lo siguiente es un ejemplo de cómo calcular factores:

1. Para calcular los factores principales del número 123, escriba:

factor 123

2. Pulse Intro. Se muestra lo siguiente:

123 3 41

Localización de un mandato por palabra clavePuede visualizar las secciones de las páginas man en cuyo título contienen cualquiera de las palabrasclave dadas utilizando el mandato apropos.

El mandato apropos considera que cada palabra por separado no es sensible a las mayúsculas yminúsculas. También se muestran las palabras que forman parte de otras palabras. Por ejemplo, cuandose busca la palabra compila, el mandato apropos también encuentra todas las instancias de la palabracompilador.

Nota: la base de datos que contiene las palabras clave es /usr/share/man/whatis, que primero sedebe generar con el mandato catman -w.

El mandato apropos es equivalente a utilizar el mandato man con la opción -k.

Por ejemplo, para buscar las secciones del manual que contengan la palabra password en sus títulos,ejecute el mandato siguiente:

apropos password

ProcesosUn programa o mandato que se ejecuta realmente en el sistema recibe la denominación de proceso.

140 AIX Versión 7.2: Gestión del sistema operativo

Page 147: AIX Versión 7 - IBM

Los procesos existen en jerarquías de padre-hijo. Un proceso iniciado por un programa o mandato es unproceso padre; un proceso hijo es el producto del proceso padre. Un proceso padre puede tener variosprocesos hijo, pero un proceso hijo sólo puede tener un padre.

El sistema asigna un número de identificación de proceso (número PID) a cada proceso cuando se inicia.Si inicia el mismo programa varias veces, tendrá un número PID distinto cada vez.

Cuando se inicia un proceso en un sistema, el proceso utiliza una parte de los recursos disponibles en elsistema. Cuando está ejecutándose más de un proceso, un planificador que está incorporado al sistemaoperativo proporciona a cada proceso su parte de tiempo del sistema, basándose en las prioridadesestablecidas. Estas prioridades pueden cambiarse mediante la utilización de los mandatos nice orenice.

Nota: Para cambiar la prioridad de un proceso por una más alta, debe tener autorización de usuario root.Todos los usuarios pueden reducir las prioridades de un proceso que inician utilizando el mandato nice ode un proceso que ya han iniciado utilizando el mandato renice.

La lista siguiente describe los tipos de procesos:

Procesos en primer plano y en segundo plano

Los procesos que necesitan que un usuario los inicie o que interactúe con ellos se denominanprocesos en primer plano. Los procesos que se ejecutan con independencia de un usuario sedenominan procesos en segundo plano. Los programas y los mandatos se ejecutan como procesos enprimer plano por omisión. Para ejecutar un proceso en segundo plano, coloque un ampersand (&) alfinal del nombre del mandato que utiliza para iniciar el proceso.

Procesos daemon

Los daemons son procesos que se ejecutan de forma desatendida. Están constantemente en elsegundo plano y están disponibles siempre. Los daemons suelen iniciarse cuando se arranca elsistema y se ejecutan hasta que se detiene el sistema. Un proceso daemon efectúa servicios delsistema y está disponible siempre para más de una tarea o usuario. El usuario root o el shell rootinicia los procesos daemon y sólo puede detenerlos el usuario root. Por ejemplo, el proceso qdaemonproporciona acceso a los recursos del sistema como las impresoras. Otro daemon habitual es eldaemon sendmail.

Procesos zombie

Un proceso zombie es un proceso finalizado que ya no se ejecuta pero que sigue reconociéndose en latabla de procesos (en otras palabras, tiene un número PID). Ya no se asigna espacio del sistema adicho proceso. Los procesos zombie han sido cerrados o han salido y siguen existiendo en la tabla deprocesos hasta que muere el proceso padre o se apaga el sistema y se reinicia. Los procesos zombiese visualizan como <defunct> cuando se listan por el mandato ps.

Arranque del procesoPuede iniciar un proceso en primer plano desde una estación de pantalla entrando el nombre de unprograma o el nombre de un mandato en el indicador del sistema.

Tras iniciarse un proceso en primer plano, el proceso interactúa con el usuario en la estación de pantallahasta que se completa. Esto significa que no puede producirse ninguna otra interacción (como, porejemplo, entrar otro mandato) en la estación de pantalla hasta que el proceso haya finalizado o hasta quelo interrumpa.

Un solo usuario puede ejecutar más de un proceso al mismo tiempo, hasta un valor máximo por omisiónde 40 procesos por usuario.

Inicio de un proceso en primer plano

Para iniciar un proceso en primer plano, entre el nombre del mandato con los parámetros y distintivosadecuados:

$ NombreMandato

Gestión del sistema operativo 141

Page 148: AIX Versión 7 - IBM

Inicio de un proceso en segundo plano

Para ejecutar un proceso en el fondo, escriba el nombre del mandato con los parámetros y distintivosadecuados, seguido de un ampersand (&):

$ NombreMandato&

Cuando un proceso se ejecuta en segundo plano, puede realizar tareas adicionales entrando otrosmandatos en la estación de pantalla.

Generalmente, los procesos en segundo plano son más útiles para mandatos que tardan mucho enejecutarse. Sin embargo, puesto que aumentan la cantidad total de trabajo que efectúa el procesador,los procesos en segundo plano pueden reducir la velocidad del resto del sistema.

La mayoría de los procesos dirigen la salida a salida estándar, aunque se ejecuten en segundo plano.A menos que se haya redirigido, la salida estándar se presenta en el dispositivo de pantalla. Puestoque la salida de un proceso en segundo plano puede interferir con otros trabajos del sistema, es útilredirigir la salida de los procesos en segundo plano a un archivo o a una impresora. De este modo,podrá ver la salida cuando lo desee.

Nota: Bajo ciertas circunstancias, un proceso puede generar su salida en una secuencia diferentecuando se ejecuta en el fondo a cuando se ejecuta en primer plano. Puede que los programadoresdeseen utilizar la subrutina fflush para garantizar que la salida se produzca en el orden correcto,con independencia de si el proceso se ejecuta en primer plano o en segundo plano.

Mientras se ejecuta un proceso en el fondo, puede comprobar su estado con el mandato ps.

Mandato para comprobar el estado de procesos (mandato ps)Cuando el sistema está en ejecución, también están ejecutándose procesos. Puede utilizar el mandato pspara averiguar qué procesos están ejecutándose y visualizar información sobre estos procesos.

El mandato ps tiene varios distintivos que le permiten especificar qué procesos deben listarse y quéinformación acerca de cada proceso debe visualizarse.

Para que se muestren todos los procesos que están ejecutándose en el sistema, escriba lo siguiente en elindicador de mandatos:

ps -ef

El sistema visualiza información similar a la siguiente:

USER PID PPID C STIME TTY TIME CMD root 1 0 0 Jun 28 - 3:23 /etc/init root 1588 6963 0 Jun 28 - 0:02 /usr/etc/biod 6 root 2280 1 0 Jun 28 - 1:39 /etc/syncd 60 mary 2413 16998 2 07:57:30 - 0:05 aixterm mary 11632 16998 0 07:57:31 lft/1 0:01 xbiff mary 16260 2413 1 07:57:35 pts/1 0:00 /bin/ksh mary 16469 1 0 07:57:12 lft/1 0:00 ksh /usr/lpp/X11/bin/xinit mary 19402 16260 20 09:37:21 pts/1 0:00 ps -ef

A continuación se muestran las definiciones de las columnas de la salida anterior:

Elemento

Descripción

USER El nombre de inicio de sesión del usuario

PID ID del proceso

PPID ID del proceso padre

C Utilización de CPU del proceso

STIME Hora de inicio del proceso

TTY Estación de trabajo controladora del proceso

142 AIX Versión 7.2: Gestión del sistema operativo

Page 149: AIX Versión 7 - IBM

Elemento

Descripción

TIME Tiempo total de ejecución del proceso

CMD Mandato

En el ejemplo anterior, el ID de proceso para el mandato ps -ef es 19402. El ID de proceso padre es16260, el mandato /bin/ksh.

Si el listado es muy largo, la parte superior se desplaza fuera de la pantalla. Para visualizar la lista demodo que se muestre una página (pantalla) cada vez, conecte el mandato ps con el mandato pg. En elindicador de mandatos, escriba lo siguiente:

ps -ef | pg

Para visualizar información sobre el estado de todos los procesos que se ejecutan en el sistema, escribalo siguiente en el indicador de mandatos:

ps gv

Este formato del mandato lista estadísticas de cada proceso activo. La salida de este mandato tiene unaspecto similar al siguiente:

PID TTY STAT TIME PGIN SIZE RSS LIM TSIZ TRS %CPU %MEM COMMAND 0 - A 0:44 7 8 8 xx 0 0 0.0 0.0 swapper 1 - A 1:29 518 244 140 xx 21 24 0.1 1.0 /etc/init 771 - A 1:22 0 16 16 xx 0 0 0.0 0.0 kproc 1028 - A 0:00 10 16 8 xx 0 0 0.0 0.0 kproc 1503 - A 0:33 127 16 8 xx 0 0 0.0 0.0 kproc 1679 - A 1:03 282 192 12 32768 130 0 0.7 0.0 pcidossvr 2089 - A 0:22 918 72 28 xx 1 4 0.0 0.0 /etc/sync 2784 - A 0:00 9 16 8 xx 0 0 0.0 0.0 kproc 2816 - A 5:59 6436 2664 616 8 852 156 0.4 4.0 /usr/lpp/ 3115 - A 0:27 955 264 128 xx 39 36 0.0 1.0 /usr/lib/ 3451 - A 0:00 0 16 8 xx 0 0 0.0 0.0 kproc 3812 - A 0:00 21 128 12 32768 34 0 0.0 0.0 usr/lib/lpd/ 3970 - A 0:00 0 16 8 xx 0 0 0.0 0.0 kproc 4267 - A 0:01 169 132 72 32768 16 16 0.0 0.0 /etc/sysl 4514 lft/0 A 0:00 60 200 72 xx 39 60 0.0 0.0 /etc/gett 4776 pts/3 A 0:02 250 108 280 8 303 268 0.0 2.0 -ksh 5050 - A 0:09 1200 424 132 32768 243 56 0.0 1.0 /usr/sbin 5322 - A 0:27 1299 156 192 xx 24 24 0.0 1.0 /etc/cron 5590 - A 0:00 2 100 12 32768 11 0 0.0 0.0 /etc/writ 5749 - A 0:00 0 208 12 xx 13 0 0.0 0.0 /usr/lpp/ 6111 - T 0:00 66 108 12 32768 47 0 0.0 0.0 /usr/lpp/

Establecimiento de la prioridad inicial de un proceso (mandato nice)Puede establecer la prioridad inicial de un proceso en un valor inferior que la prioridad de planificaciónbase.

Para establecer la prioridad inicial de un proceso en un valor inferior a la prioridad de planificación base,utilice el mandato nice para iniciar el proceso.

Nota: Para ejecutar un proceso en una prioridad superior que la prioridad de planificación base, debetener autorización de usuario root.

Para establecer la prioridad inicial de un proceso, escriba lo siguiente:

nice -n Número SerieMandato

donde Número es un número comprendido entre el 0 y el 39, siendo 39 la prioridad más baja. El valor denice es el valor decimal de la prioridad de planificación del sistema de un proceso. Cuanto mayor sea elnúmero, menor será la prioridad. Si utiliza cero, el proceso se ejecutará en la prioridad de planificaciónbase. SerieMandato es el mandato y los distintivos y parámetros que desea ejecutar.

También puede utilizar el mandato smit nice para efectuar esta tarea.

Gestión del sistema operativo 143

Page 150: AIX Versión 7 - IBM

Cambio de la prioridad de un proceso en ejecución (mandato renice)Puede cambiar la prioridad de planificación de un proceso en ejecución por un valor más alto o más bajoque el valor de la prioridad de planificación básica utilizando el mandato renice desde la línea demandatos. Este mandato cambia el valor de nice de un proceso.

Nota: Para ejecutar un proceso con una prioridad más alta o para cambiar la prioridad para un procesoque no ha iniciado, debe tener autorización de usuario root.

Para cambiar la prioridad de un proceso en ejecución, escriba lo siguiente:

renicePrioridad -p IDProceso

donde Prioridad es un número dentro del rango comprendido entre -20 y 20. Cuanto mayor sea elnúmero, menor será la prioridad. Si utiliza cero, el proceso se ejecutará en la prioridad de planificaciónbase. IDProceso es el PID para el que desea cambiar la prioridad.

También puede utilizar el mandato smit renice para efectuar esta tarea.

Cancelación de procesos en primer planoSi inicia un proceso en primer plano y, luego, decide que no desea que se complete, puede cancelarlopulsando la tecla de interrupción (Inter). Dicha tecla suele ser Control-C o Control-Retroceso.

Nota: La INTERRUPCIÓN (Control-C) no cancela los procesos de fondo. Para cancelar un proceso ensegundo plano, deberá utilizar el mandato kill.

La mayoría de mandatos simples se ejecutan con tanta rapidez que finalizan antes de tener tiempo paracancelarlos. Por lo tanto, los ejemplos de esta sección utilizan un mandato que tarda más de unossegundos en ejecutarse: find / -type f. Este mandato visualiza los nombres de vías de acceso paratodos los archivos del sistema. No es necesario que estudie el mandato find para poder completar esteapartado; aquí se utiliza simplemente para demostrar cómo trabajar con procesos.

En el ejemplo siguiente, el mandato find inicia un proceso. Una vez que el proceso se ejecuta durantealgunos segundos, puede cancelarlo pulsando la tecla de interrupción:

$ find / -type f/usr/sbin/acct/lastlogin/usr/sbin/acct/prctmp/usr/sbin/acct/prdaily/usr/sbin/acct/runacct/usr/sbin/acct/sdisk/usr/sbin/acct/shutacct INTERRUPT (Ctrl-C)$ _

El sistema devuelve el indicador a la pantalla. Ahora puede entrar otro mandato.

Tareas relacionadasLista de asignaciones de teclas de control para el terminal (mandato stty)Para visualizar los valores del terminal, utilice el mandato stty. Fíjese especialmente en las teclas queutiliza el terminal para teclas de control.

Mandato del teclado para detener un proceso en primer planoEs posible detener un proceso, pero no puede eliminarse su ID de proceso (PID) de la tabla de procesos.Puede detener un proceso en primer plano pulsando Control-Z desde el teclado.

Nota: Control-Z funciona en el shell Korn (ksh) y el shell C (csh), pero no en el shell Bourne (bsh).

Reinicio de un proceso detenidoEste procedimiento describe cómo reiniciar un proceso que se ha detenido con Control-Z.

Nota: Control-Z funciona en el shell Korn (ksh) y el shell C (csh), pero no en el shell Bourne (bsh). Parareiniciar un proceso detenido, debe ser el usuario que inició el proceso o tener autorización de usuarioroot.

1. Para que se muestren todos los procesos que están en ejecución o que se han detenido, pero no losprocesos que se han matado, escriba lo siguiente:

144 AIX Versión 7.2: Gestión del sistema operativo

Page 151: AIX Versión 7 - IBM

ps -ef

Puede que desee interconectar este mandato por medio de un mandato grep para restringir la lista alos procesos entre los que probablemente se encontrará el que desea iniciar. Por ejemplo, si deseareiniciar una sesión vi, podría escribir lo siguiente:

ps -ef | grep vi

Este mandato sólo visualiza líneas de la salida del mandato ps que contengan la palabra vi. La salidatendría este aspecto:

UID PID PPID C STIME TTY TIME COMMANDroot 1234 13682 0 00:59:53 - 0:01 vi testroot 14277 13682 1 01:00:34 - 0:00 grep vi

2. En la salida del mandato ps, busque el proceso que desea reiniciar y anote su número PID. En esteejemplo, el PID es 1234.

3. Para enviar la señal CONTINUE al proceso detenido, escriba lo siguiente:

kill -19 1234

Sustituya el PID de su proceso por 1234. El número -19 indica la señal CONTINUE. Este mandatoreinicia el proceso en segundo plano. Si el proceso puede ejecutarse como proceso en segundo plano,el procedimiento habrá finalizado. Si el proceso debe ejecutarse como proceso en primer plano (comocorrespondería a una sesión vi), debe continuar con el paso siguiente.

4. Para llevar el proceso a primer plano, escriba lo siguiente:

fg 1234

Una vez más, sustituya el PID de su proceso por 1234. El proceso debe estar ejecutándose ahora enprimer plano. (Ahora está en la sesión de edición de vi).

Planificación de un proceso para su posterior ejecuciónPuede establecer un proceso como proceso por lotes para que se ejecute en segundo plano en elmomento planificado.

Los mandatos at y smit le permiten entrar los nombres de mandatos que se ejecutarán en un momentoposterior y le permiten especificar cuándo deben ejecutarse los mandatos.

Nota: Los archivos /var/adm/cron/at.allow y /var/adm/cron/at.deny controlan si puedeutilizar el mandato at. Una persona con autorización de usuario root puede crear, editar o suprimir dichosarchivos. Las entradas en dichos archivos son nombres de inicio de sesión de usuario con un nombre encada línea. A continuación se muestra un ejemplo de un archivo at.allow:

rootnickdeesarah

Si existe el archivo at.allow, sólo los usuarios cuyos nombres de inicio de sesión se listan en él puedenutilizar el mandato at. Un administrador del sistema puede impedir explícitamente que un usuario utiliceel mandato at listando el nombre de inicio de sesión del usuario en el archivo at.deny. Si sólo existe elarchivo at.deny, cualquier usuario cuyo nombre no aparezca en el archivo puede utilizar el mandato at.

No podrá utilizar el mandato at si se da alguna de las condiciones siguientes:

• El archivo at.allow y el archivo at.deny no existen (sólo tiene permiso el usuario root).• El archivo at.allow existe, pero el nombre de inicio de sesión del usuario no está listado en el mismo.• El archivo at.deny existe, pero el nombre de inicio de sesión del usuario está listado en el mismo.

Si no existe el archivo at.allow y tampoco existe el archivo at.deny o está vacío, sólo una persona conautorización de usuario root puede someter un trabajo con el mandato at.

Gestión del sistema operativo 145

Page 152: AIX Versión 7 - IBM

La sintaxis del mandato at le permite especificar una serie de fecha, una serie de hora y de día o bien unaserie incremental que especifique el momento en el que desea que se ejecute el proceso. También lepermite especificar qué shell o cola debe utilizar. Los siguientes ejemplos muestran algunas utilizacionesusuales del mandato.

Por ejemplo, si el nombre de inicio de sesión es alberto y tiene un script llamado WorkReport quedesea ejecutar a medianoche, realice lo siguiente:

1. Escriba la hora a la que desea que el programa empiece a ejecutarse:

a medianoche

2. Escriba los nombres de los programas que desea ejecutar, pulsando Intro después de cada nombre.Cuando escriba el apellido, pulse el carácter de fin de archivo (Control-D) para señalizar el fin de lalista.

WorkReport^D

Después de pulsar Control-D, el sistema visualiza información similar a la siguiente:

job alberto.741502800.a at Vie Jul 6 00:00:00 CDT 2002.

Al programa WorkReport se le proporciona el número de trabajo alberto.741502800.a y seejecutará el día 6 de julio a medianoche.

3. Para que se listen los programas que ha enviado para que se ejecuten posteriormente, escriba losiguiente:

at -l

El sistema mostrará una información parecida a esta:

alberto.741502800.a Vie Jul 6 00:00:00 CDT 2002

Consulte el mandato at para ver la sintaxis completa.

Tareas relacionadasListado de todos los procesos planificados (mandato at o atq)Utilice el distintivo -l con el mandato at o con el mandato atq para listar todos los procesos planificados.Eliminación de un proceso de la planificaciónPuede eliminar un proceso planificado con el mandato at utilizando el distintivo -r.

Listado de todos los procesos planificados (mandato at o atq)Utilice el distintivo -l con el mandato at o con el mandato atq para listar todos los procesos planificados.

Ambos mandatos generan la misma salida; sin embargo, el mandato atq puede ordenar los procesos enel mismo período de tiempo que el mandato at se emite y únicamente visualiza el número de procesosde la cola.

Puede listar todos los procesos planificados de estas formas:

• Con el mandato at desde la línea de mandatos• Con el mandato atq

Mandato at

Para listar los procesos planificados, escriba lo siguiente:

at -l

Este mandato lista todos los procesos planificados de la cola. Si es usted un usuario root, estemandato lista todos los procesos planificados de todos los usuarios. Para obtener informacióndetallada acerca de la sintaxis, consulte el mandato at.

146 AIX Versión 7.2: Gestión del sistema operativo

Page 153: AIX Versión 7 - IBM

Mandato atq

Vea los ejemplos siguientes sobre cómo utilizar el mandato atq:

• Para listar los procesos planificados en la cola, escriba lo siguiente:

atq

• Si es usted un usuario root, puede listar los procesos planificados de la cola de un usuariodeterminado escribiendo:

atq NombreUsuario

• Para listar el número de procesos planificados en la cola, escriba lo siguiente:

atq -n

Tareas relacionadasPlanificación de un proceso para su posterior ejecuciónPuede establecer un proceso como proceso por lotes para que se ejecute en segundo plano en elmomento planificado.Eliminación de un proceso de la planificaciónPuede eliminar un proceso planificado con el mandato at utilizando el distintivo -r.

Eliminación de un proceso de la planificaciónPuede eliminar un proceso planificado con el mandato at utilizando el distintivo -r.

Consulte el ejemplo siguiente sobre cómo utilizar el mandato at o atq:

1. Para eliminar un proceso planificado, debe conocer su número de proceso.Puede obtener el número de proceso utilizando el mandato at -l o el mandato atq.

2. Cuando conozca el número de proceso que desea eliminar, escriba lo siguiente:

at -r NúmeroProceso

También puede utilizar el mandato smit rmat para efectuar esta tarea.

Tareas relacionadasListado de todos los procesos planificados (mandato at o atq)Utilice el distintivo -l con el mandato at o con el mandato atq para listar todos los procesos planificados.Planificación de un proceso para su posterior ejecuciónPuede establecer un proceso como proceso por lotes para que se ejecute en segundo plano en elmomento planificado.

Eliminación de un proceso en segundo plano (mandato kill)Si la tecla de interrupción (Inter) no detiene el proceso en primer plano o si decide, después de haberiniciado un proceso en segundo plano, que no desea que el proceso se complete, puede cancelar elproceso con el mandato kill.

Antes de poder cancelar un proceso utilizando el mandato kill, primero deberá conocer su número PID.El formato general del mandato kill es el siguiente:

kill IDProceso

Nota:

• Para eliminar un proceso, debe tener autorización de root o ser el usuario que ha iniciado el proceso. Laseñal por omisión para un proceso del mandato kill es -15 (SIGTERM).

• Para eliminar un proceso zombie, debe eliminar su proceso padre.

Gestión del sistema operativo 147

Page 154: AIX Versión 7 - IBM

1. Utilice el mandato ps para determinar el ID de proceso que desea eliminar. Puede que deseeinterconectar este mandato por medio de un mandato grep para que sólo se listen los procesosdeseados. Por ejemplo, si desea el ID de proceso de una sesión vi, podría escribir lo siguiente:

ps -l | grep vi

2. En el ejemplo siguiente, emite el mandato find para ejecutar el proceso en segundo plano. Acontinuación decide cancelar el proceso. Emita el mandato ps para que se listen los números PID.

$ find / -type f > dir.paths &[1] 21593$ ps PID TTY TIME COMMAND 1627 pts3 0:00 ps 5461 pts3 0:00 ksh 17565 pts3 0:00 -ksh 21593 pts3 0:00 find / -type f$ kill 21593$ ps PID TTY TIME COMMAND 1627 pts3 0:00 ps 5461 pts3 0:00 ksh 17565 pts3 0:00 -ksh[1] + Terminated 21593 find / -type f > dir.paths &

El mandato kill 21593 finaliza el proceso find de fondo y el segundo mandato ps no devuelveinformación de estado acerca del PID 21593. El sistema no visualizará el mensaje de terminaciónhasta que escriba el mandato siguiente, a menos que ese mandato sea cd.

El mandato kill le permite cancelar los procesos en segundo plano. Puede que desee utilizarlo si seda cuenta de que ha colocado un proceso en segundo plano por error o si observa que la ejecución deun proceso tarda demasiado.

El mandato kill también puede utilizarse en smit escribiendo lo siguiente:

smit kill

Resumen de mandatos para mandatos y procesosLos siguientes mandatos sirven para mandatos y procesos.

Tabla 55. Resumen de mandatos para mandatos

Elemento Descripción

alias Mandato de shell que imprime una lista de alias en la salida estándar

history Mandato de shell que visualiza la lista de sucesos históricos

man Visualiza información en línea acerca de los mandatos, subrutinas y archivos

whatis Describe la función que realiza un mandato

whereis Localiza el fuente, binario o manual de los programas instalados

Tabla 56. Resumen de mandatos para procesos

Elemento Descripción

at Ejecuta mandatos con posterioridad, lista todos los procesos planificados o elimina unproceso de la planificación

atq Visualiza la cola de trabajos que están a la espera de ejecutarse

kill Envía una señal a los procesos que están en ejecución

nice Ejecuta un mandato en una prioridad más bajo o más alta.

ps Muestra el estado actual de los procesos

renice Altera la prioridad de los procesos que están en ejecución

148 AIX Versión 7.2: Gestión del sistema operativo

Page 155: AIX Versión 7 - IBM

Gestión del sistema colgadoLa gestión del sistema colgado permite a los usuarios ejecutar aplicaciones importantes para la actividadcontinuamente mientras mejora la disponibilidad de la aplicación. La detección del sistema colgado alertaal administrador del sistema de posibles problemas y permite al administrador iniciar la sesión como rooto rearrancar el sistema para resolver el problema.

Mandato shconf

El mandato shconf se invoca cuando se habilita la Detección de cuelgue del sistema. El mandatoshconf configura los sucesos que se supervisan y las acciones que se realizan si se producen esossucesos. Puede especificar cualquiera de las siguientes acciones, el nivel de prioridad que se debecomprobar, el tiempo de espera mientras ningún proceso ni hebra se ejecuta a una prioridad inferior oigual, el dispositivo de terminal para la acción de aviso y la acción del mandato getty:

• Registrar un error en el archivo errlog• Visualizar un mensaje de aviso en la consola del sistema (consola alfanumérica) o en una TTYespecificada

• Rearrancar el sistema• Proporcionar un getty especial para permitir al usuario iniciar la sesión como root y ejecutar mandatos• Ejecutar un mandato

Para las opciones Ejecutar un mandato y Otorgar getty especial, la detección de sistema colgadoejecuta el mandato getty especial o el mandato especificado en la prioridad más alta. El mandato gettyespecial imprime un mensaje de aviso de que hay un getty de recuperación en ejecución en la prioridad0. La tabla siguiente captura las distintas acciones y los parámetros predeterminados asociados para ladetección de cuelgue de prioridad. Sólo se habilita una acción para cada tipo de detección.

Opción Habilitación Prioridad Tiempo de esperaexcedido (segundos)

Registrar un error en el archivo errlog inhabilitada 60 120

Visualizar un mensaje de aviso inhabilitada 60 120

Proporcionar un getty de recuperación enabled 60 120

Ejecutar un mandato inhabilitada 60 120

Rearrancar el sistema inhabilitada 39 300

Nota: Cuando se ha habilitado Ejecutar getty de recuperación en una consola, el mandato shconfañade el distintivo -u al mandato getty en el inittab asociado al inicio de sesión de la consola.

Para la detección de ES perdida, puede establecer el valor de tiempo de espera excedido y habilitar lasacciones siguientes:

Opción Habilitación

Visualizar un mensaje de aviso inhabilitada

Rearrancar el sistema inhabilitada

Daemon shdaemon

El daemon shdaemon es un proceso que init inicia y se ejecuta en la prioridad 0 (cero). Está al cargo delmanejo de la detección de sistema colgado recuperando la información de configuración, iniciandoestructuras de trabajo e iniciando los tiempos de detección establecidos por el usuario.

Conceptos relacionadosDetección de cuelgue de prioridadAIX puede detectar las condiciones de cuelgue del sistema e intentar recuperar estas situaciones,basándose en acciones definidas por el usuario.

Gestión del sistema operativo 149

Page 156: AIX Versión 7 - IBM

Detección del cuelgue de E/S perdidaAIX puede detectar las condiciones de cuelgue del sistema e intentar recuperar estas situaciones,basándose en acciones definidas por el usuario.

Configuración de la detección de sistema colgadoPuede gestionar la configuración de la detección de sistema colgado desde la herramienta de gestiónSMIT.

Las opciones de menú de SMIT permiten habilitar o inhabilitar el mecanismo de detección, visualizar elestado actual de la característica y cambiar o mostrar la configuración actual. Las vías rápidas para losmenús de detección de sistema colgado son:smit shd

Gestionar detección de sistema colgadosmit shstatus

Estado de detección de sistema colgadosmit shpriocfg

Cambiar/Mostrar características de detección de problemas de prioridadsmit shreset

Restaurar configuración de problemas de prioridad predeterminadasmit shliocfg

Cambiar/Mostrar características de detección de E/S perdidasmit shlioreset

Restaurar configuración de detección de E/S perdida predeterminada

También puede gestionar la detección de sistema colgado utilizando el mandato shconf.

Detección de cuelgue de prioridadAIX puede detectar las condiciones de cuelgue del sistema e intentar recuperar estas situaciones,basándose en acciones definidas por el usuario.

Todos los procesos (también conocidos como hebras) se ejecutan en una prioridad. Esta prioridad estáinvertida numéricamente en el rango de 0 a 126. Cero es la prioridad más alta y 126 es la prioridad másbaja. La prioridad predeterminada para todas las hebras es 60. Cualquier usuario puede bajar la prioridadde un proceso con el mandato nice. Cualquier persona con autorización de root también puede elevar laprioridad de un proceso.

El planificador de kernel siempre toma la hebra ejecutable con la prioridad más alta para colocarla en unaCPU. Por lo tanto, es posible que un número de hebras suficiente de prioridad alta colapsencompletamente la máquina de modo que las hebras de baja prioridad no se puedan ejecutar nunca. Si lashebras en ejecución están en una prioridad superior al valor predeterminado de 60, se pueden bloqueartodos los shells normales e inicios de sesión hasta el punto en que el sistema parezca colgado.

La característica Detección del cuelgue del sistema proporciona un mecanismo para detectar estasituación y facilitar al administrador del sistema un medio de recuperación. Esta característica seimplementa como un daemon (shdaemon) que se ejecuta en la prioridad de proceso más alta. Estedaemon consulta al kernel la hebra de prioridad más baja ejecutada en un intervalo especificado. Si laprioridad está por encima de un umbral configurado, el daemon puede realizar varias acciones. Cada unade esas acciones se puede habilitar independientemente, y cada una se puede configurar para activarseen cualquier prioridad y durante cualquier intervalo de tiempo. Las acciones y sus valorespredeterminados son:

Acción Habilitado Prioridad Tiem.esp. Dispositivo predeter. predeter. predeter. predeterm.

1) Registrar un error no 60 22) Mensaje de consola no 60 2 /dev/console3) Shell inicio sesión sí 60 2 /dev/tty0 de prioridad alta4) Ejecutar mandato no 60 2 a prioridad alta5) Cuelgue y rearran. no 39 5

150 AIX Versión 7.2: Gestión del sistema operativo

Page 157: AIX Versión 7 - IBM

Conceptos relacionadosGestión del sistema colgadoLa gestión del sistema colgado permite a los usuarios ejecutar aplicaciones importantes para la actividadcontinuamente mientras mejora la disponibilidad de la aplicación. La detección del sistema colgado alertaal administrador del sistema de posibles problemas y permite al administrador iniciar la sesión como rooto rearrancar el sistema para resolver el problema.

Detección del cuelgue de E/S perdidaAIX puede detectar las condiciones de cuelgue del sistema e intentar recuperar estas situaciones,basándose en acciones definidas por el usuario.

Debido a errores de E/S, la vía de acceso de E/S puede bloquearse y afectar a las demás E/S de esa vía deacceso. En estas circunstancias es esencial que el sistema operativo alerte al usuario y ejecute lasacciones definidas por el usuario. Como parte de la detección y notificación de E/S perdida, shdaemon,con ayuda del Gestor de volúmenes lógicos, supervisa los almacenamientos intermedios de E/S duranteun periodo de tiempo y comprueba si alguna E/S está pendiente durante un periodo de tiempo demasiadolargo. Si el tiempo de espera excede del tiempo de espera umbral definido en el archivo shconf, sedetecta una E/S perdida y se realizan más acciones. La información acerca de E/S perdida se documentaen el registro de errores. También basándose en los valores del archivo shconf, el sistema puederearrancar para recuperar la situación de E/S perdida.

Para la detección de E/S perdida, puede establecer el valor de tiempo de espera y también habilitar lassiguientes acciones:

Acción Habilitado predeterminado Dispositivo predeterminado

Mensaje de consola no /dev/console

Cuelgue y rearranque no -

Para obtener más información acerca de la detección de cuelgue del sistema, consulte el apartado“Gestión del sistema colgado ” en la página 149.

Conceptos relacionadosGestión del sistema colgadoLa gestión del sistema colgado permite a los usuarios ejecutar aplicaciones importantes para la actividadcontinuamente mientras mejora la disponibilidad de la aplicación. La detección del sistema colgado alertaal administrador del sistema de posibles problemas y permite al administrador iniciar la sesión como rooto rearrancar el sistema para resolver el problema.

Gestión de procesosEl proceso es la entidad que el sistema operativo utiliza para controlar el uso de los recursos del sistema.Las hebras pueden controlar el consumo de tiempo del procesador pero la mayoría de herramientas degestión del sistema siguen necesitando que el usuario haga referencia al proceso en el que se ejecuta unahebra, en lugar de la propia hebra.

Hay herramientas disponibles para:

• Observar la creación, la cancelación, la identidad y el consumo de recursos de los procesos.

– El mandato ps se utiliza para informar de los ID de procesos, los usuarios, el consumo de tiempo deCPU y otros atributos.

– El mandato who -u informa del ID de procesos de shell de los usuarios que han iniciado la sesión.– El mandato svmon se utiliza para informar del consumo de memoria real de los procesos.– El mecanismo del mandato acct graba registros cuando termina el proceso que resume el uso de

recursos del proceso.• Controlar el nivel de prioridad en el contiende un proceso para la CPU.

– El mandato nice hace que se ejecute un mandato con la prioridad de proceso especificada.– El mandato renice cambia la prioridad de un proceso determinado.

Gestión del sistema operativo 151

Page 158: AIX Versión 7 - IBM

• Terminar los procesos que están fuera de control.

– El mandato kill envía una señal de terminación a uno o varios procesos.

Supervisión de procesosPuede gestionar procesos como administrador del sistema.

El mandato ps es la herramienta principal para observar los procesos del sistema. La mayoría dedistintivos del mandato ps se encuentran en una de dos categorías:

• Distintivos que especifican los tipos de procesos que se deben incluir en la salida• Distintivos que especifican los atributos de estos procesos que se deben visualizar

Las variables más útiles en general de ps para la gestión del sistema son:

Elemento Descripción

ps -ef Lista todos los procesos que no son de kernel, con los ID de usuario, el ID deproceso, el uso de CPU reciente, el uso total de CPU y el mandato que ha iniciadoel proceso (incluyendo sus parámetros).

ps -fu IDUsuario Lista todos los procesos que son propiedad de IDUsuario, con el ID de proceso, eluso reciente de CPU, el uso total de CPU y el mandato que ha iniciado el proceso(incluyendo sus parámetros).

Para identificar los usuarios actuales que utilizan más tiempo de CPU, puede especificar:

ps -ef | egrep -v "STIME|$LOGNAME" | sort +3 -r | head -n 15

Este mandato lista, en orden descendente, los 15 procesos que utilizan más CPU cuyo propietario es otrousuario.

Para usos más especializados, las dos tablas siguientes están pensadas para identificar la tarea de elegirlos distintivos ps resumiendo los efectos de los distintivos.

Distintivos de especificación de procesos

-A -a -d -e -G -g -k -p -t -U -u a g t x

Todos losprocesos

Y - - - - - - - - - Y - -

No loslíderes degrupo deprocesos niasociadoscon unterminal

- Y - - - - - - - - - - -

No líderesde grupo deprocesos

- - Y - - - - - - - - - -

No procesosde kernel

- - - Y - - - - - - - - -

Miembrosde gruposde procesosespecificados

- - - - Y - - - - - - - -

152 AIX Versión 7.2: Gestión del sistema operativo

Page 159: AIX Versión 7 - IBM

Distintivos de especificación de procesos (continuación)

-A -a -d -e -G -g -k -p -t -U -u a g t x

Procesos dekernel

- - - - - Y - - - - - - -

Losespecificados en listade númerode procesos

- - - - - - Y - - - - - -

Losasociadoscon las ttyde la lista

- - - - - - - Y (ntty)

- - - Y (1tty)

-

Procesosespecificados por elusuario

- - - - - - - - Y - - - -

Procesosconterminales

- - - - - - - - - Y - - -

Noasociadoscon una tty

- - - - - - - - - - - - Y

Distintivos de selección de columnas

Predeterminado1 -f -l -U-u

Predeterminado2

e l s u v

PID Y Y Y Y Y Y Y Y Y Y

TTY Y Y Y Y Y Y Y Y Y Y

TIME Y Y Y Y Y Y Y Y Y Y

CMD Y Y Y Y Y Y Y Y Y Y

USER - Y - - - - - - Y -

UID - - Y Y - - Y - - -

PPID - Y Y - - - Y - - -

C - Y Y - - - Y - - -

STIME - Y - - - - - - Y -

F - - Y - - - - - - -

S/STAT - - Y - Y Y Y Y Y Y

PIR - - Y - - - Y - - -

NI/NICE - - Y - - - Y - - -

ADDR - - Y - - - Y - - -

SIZE - - - - - - - - Y -

SZ - Y - - - Y - Y - -

Gestión del sistema operativo 153

Page 160: AIX Versión 7 - IBM

Distintivos de selección de columnas (continuación)

Predeterminado1 -f -l -U-u

Predeterminado2

e l s u v

WCHAN - - Y - - - Y - - -

RSS - - - - - - Y - Y Y

SSIZ - - - - - - - Y - -

%CPU - - - - - - - - Y Y

%MEM - - - - - - - - Y Y

PGIN - - - - - - - - - Y

LIM - - - - - - - - - Y

TSIZ - - - - - - - - - Y

TRS - - - - - - - - - Y

Entorno (después del mandato) - - - - - Y - - - -

Si ps se proporciona sin distintivos o con un distintivo de especificación de proceso que empieza por unsigno menos, las columnas que se visualizan son las que aparecen para Predeterminado1. Si el mandatose proporciona con un distintivo de especificación de proceso que no empieza por un signo menos, sevisualizan las columnas de Predeterminado2. El distintivo -u o -U es un distintivo de especificación deproceso y de selección de columnas.

Estas son unas breves descripciones del contenido de las columnas:

Elemento Descripción

PID ID del proceso

TTY Terminal o pseudoterminal asociada al proceso

TIME Tiempo de CPU acumulado consumido, en minutos y segundos

CMD Mandato que el proceso está ejecutando

USER Nombre de inicio de sesión del usuario al que pertenece el proceso

UID ID de usuario numérico del usuario al que pertenece el proceso

PPID ID del proceso padre de este proceso

C Tiempo de CPU utilizado recientemente

STIME Hora en que se ha iniciado el proceso, si es inferior a 24 horas. De lo contrario, lafecha en que se ha iniciado el proceso

F Valor hexadecimal de ocho caracteres que describe los distintivos asociados alproceso (consulte la descripción detallada del mandato ps)

S/STAT Estado del proceso (consulte la descripción detallada del mandato ps)

PRI Valor de prioridad actual del proceso

NI/NICE Valor nice para el proceso

ADDR Número de segmento de la pila del proceso

SIZE (Distintivo -v) el tamaño virtual de la sección de datos del proceso (en kilobytes)

SZ (Distintivos -l y l) el tamaño en kilobytes de la imagen de la memoria del proceso.

WCHAN Suceso en el cual espera el proceso

154 AIX Versión 7.2: Gestión del sistema operativo

Page 161: AIX Versión 7 - IBM

Elemento Descripción

RSS Suma de los números de páginas de segmentos de trabajo y de segmentos de códigoen memoria multiplicado por 4

SSIZ Tamaño de la pila de kernel

%CPU Porcentaje de tiempo desde que ha empezado el proceso que ha utilizado la CPU

%MEM Nominalmente, el porcentaje de memoria real utilizada por el proceso, esta mediciónno se correlaciona con ninguna otra estadística de memoria

PGIN Número de entradas de página provocadas por anomalías de página. Puesto quetodas las E/S se clasifican como anomalías de página, es básicamente una medicióndel volumen de E/S

LIM Siempre xx

TSIZ Tamaño de la sección de texto del archivo ejecutable

TRS Número de páginas de segmentos de código multiplicado por 4

Entorno Valor de todas las variables de entorno para el proceso

Modificación de la prioridad de procesosBásicamente, si ha identificado un proceso que utiliza demasiado tiempo de CPU, puede reducir suprioridad efectiva aumentando su valor nice con el mandato renice.

Por ejemplo:

renice +5 IDProc

El valor nice del proceso IDProc aumentaría del valor normal 20 de un proceso de primer plano a 25.Debe tener autorización de root para restablecer el valor nice del proceso IDProc en 20. Escriba:

renice -5 IDProc

Terminación de procesosNormalmente, se utiliza el mandato kill para finalizar un proceso.

El mandato kill envía una señal al proceso desasignado. Según el tipo de señal y la naturaleza delprograma que se ejecutan en el proceso, éste puede finalizar o continuar en ejecución. Las señales que seenvían son:

Elemento Descripción

SIGTERM (señal 15) es una petición al programa de que termine. Si el programa tiene un manejadorde señal para SIGTERM que no termina realmente la aplicación, es posible que estemandato kill no surta efecto. Se trata de la señal predeterminada enviada por kill.

SIGKILL (señal 9) es una directriz para matar el proceso inmediatamente. Esta señal no se puedecapturar ni pasar por alto.

Normalmente, es mejor emitir SIGTERM en lugar de SIGKILL. Si el programa tiene un manejador paraSIGTERM, se puede limpiar y terminar ordenadamente. Escriba:

kill -term IDProceso

(-term se puede omitir.) Si el proceso no responde a SIGTERM, escriba:

kill -kill IDProceso

Puede observar ocasionalmente procesos disueltos, también denominados zombies, en la tabla deprocesos. Estos procesos ya no se ejecutan, no tienen asignado espacio de sistema, pero conservan su

Gestión del sistema operativo 155

Page 162: AIX Versión 7 - IBM

número PID. Puede reconocer un proceso residual en la tabla de procesos porque aparece <defunct>en la columna CMD. Por ejemplo:

UID PID PPID C STIME TTY TIME CMD . . . lee 22392 20682 0 Jul 10 - 0:05 xclock lee 22536 21188 0 Jul 10 pts/0 0:00 /bin/ksh lee 22918 24334 0 Jul 10 pts/1 0:00 /bin/ksh lee 23526 22536 22 0:00 <defunct> lee 24334 20682 0 Jul 10 ? 0:00 aixterm lee 24700 1 0 Jul 16 ? 0:00 aixtermroot 25394 26792 2 Jul 16 pts/2 0:00 ksh lee 26070 24700 0 Jul 16 pts/3 0:00 /bin/ksh lee 26792 20082 0 Jul 10 pts/2 0:00 /bin/kshroot 27024 25394 2 17:10:44 pts/2 0:00 ps -ef

Los procesos zombie continúan existiendo en la tabla de procesos hasta que el proceso padre muere o secierra y reinicia el sistema. En el ejemplo que se muestra arriba, el proceso padre (PPID) es el mandatoksh. Cuando se sale del shell Korn, los procesos disueltos se eliminan de la tabla de procesos.

A veces, algunos de estos procesos disueltos se recopilan en la tabla de procesos porque una aplicacióntiene varios procesos hijo bifurcados y no ha salido. Si se convierte en un problema, la solución mássencilla es modificar la aplicación para que su subrutina sigaction pase por alto la señal SIGCHLD.

Información relacionadaMandato sigaction

Vinculación o desvinculación de un procesoPuede vincular un proceso a un procesador o desvincular un proceso vinculado previamente.

Debe tener autorización de root para vincular o desvincular un proceso del que no es propietario.

En sistemas de multiprocesador, puede vincular un proceso a un procesador o desvincular un procesovinculado previamente de:

• SMIT• línea de mandatos

Nota: Aunque la vinculación de un proceso a un procesador puede mejorar el rendimiento para elproceso vinculado (al reducir las pérdidas de memoria caché de hardware), la sobreutilización de esterecurso puede provocar la sobrecarga de procesadores individuales mientras se infrautilizan otros. Loscuellos de botella resultantes podrían reducir la productividad y el rendimiento globales. Durante lasoperaciones normales, es mejor permitir al sistema operativo asignar procesos a los procesadoresautomáticamente, distribuyendo la carga del sistema por todos los procesadores. Vincule solamentelos procesos que sabe que tendrán ventajas si se ejecutan en un solo procesador.

Tareas de vinculación o desvinculación de un proceso

Tarea Vía rápida de SMIT Mandato o archivo

Vinculación de un proceso smit bindproc bindprocessor -q

Desvinculación de un proceso smit ubindproc bindprocessor -u

Arreglos para procesos retenidos o no deseadosLos procesos retenidos o no deseados pueden provocar problemas en el terminal. Algunos problemasgeneran mensajes en la pantalla que ofrecen información acerca de las posibles causas.

Para realizar los procedimientos siguientes, debe disponer de un segundo terminal, un módem o un iniciode sesión de red. Si no dispone de ninguno de ellos, arregle el problema de terminal rearrancando lamáquina.

Elija el procedimiento adecuado para arreglar el problema de terminal:

156 AIX Versión 7.2: Gestión del sistema operativo

Page 163: AIX Versión 7 - IBM

Liberación de un terminal que se ha llenado de procesosSe puede detener un proceso retenido o no deseado.

Identifique y detenga los procesos retenidos o no deseados haciendo lo siguiente:

1. Determine los procesos activos que se ejecutan en la pantalla, para ello escriba el siguiente mandatops:

ps -ef | pg

El mandato ps muestra el estado del proceso. El distintivo -e graba información acerca de todos losprocesos (excepto los procesos de kernel) y el distintivo f genera un listado completo de procesosincluyendo el nombre y los parámetros del mandato cuando se ha creado el proceso. El mandato pglimita la salida a una sola página cada vez, por lo que la información no se desplaza rápidamente fuerade la pantalla.

Los procesos sospechosos son los procesos del sistema o del usuario que utilizan cantidadesexcesivas de recurso del sistema como, por ejemplo, CPU o espacio de disco. Los procesos delsistema como sendmail, routed y lpd se descontrolan frecuentemente. Utilice el mandato ps -u paracomprobar el uso de CPU.

2. Determine quién ejecuta procesos en la máquina utilizando el mandato who:

who

El mandato who visualiza información acerca de todos los usuarios que hay actualmente en estesistema como, por ejemplo, el nombre de inicio de sesión, el nombre de estación de trabajo, la fecha yla hora de inicio de sesión.

3. Determine si debe detener, suspender o cambiar la prioridad de un proceso de usuario.

Nota: Debe tener autorización de root para detener los procesos de los que no es propietario. Sitermina o cambia la prioridad de un proceso de usuario, póngase en contacto con el propietario delproceso y explique lo que ha hecho.

• Detenga el proceso utilizando el mandato kill. Por ejemplo:

kill 1883

El mandato kill envía una señal a un proceso en ejecución. Para detener un proceso, especifique elID del proceso (PID), que es 1883 en este ejemplo. Utilice el mandato ps para determinar el númerode PID de los mandatos.

• Suspenda el proceso y ejecútelo en el fondo utilizando el carácter de ampersand (&). Por ejemplo:

/u/bin1/prog1 &

& indica que desea que este proceso se ejecute en el fondo. En un proceso de fondo, el shell noespera que el mandato se complete para devolver el indicador de shell. Cuando un proceso necesitemás de unos segundos para completarse, ejecute el mandato en el fondo escribiendo un & al final dela línea de mandatos. Los trabajos que se ejecutan en el fondo aparecen en el mandato ps normal.

• Cambie la prioridad de los procesos que han llenado el terminal utilizando el siguiente mandatorenice:

renice 20 1883

El mandato renice modifica la prioridad de planificación de uno o varios procesos en ejecución.Cuanto más alto es el número, menor es la prioridad, siendo 20 la más baja.

En el ejemplo anterior, renice vuelve a planificar el número de proceso 1883 con la prioridad másbaja. Se ejecutará cuando haya una cantidad pequeña de tiempo de procesador no utilizadodisponible.

Respuesta a mensajes de la pantallaUtilice este procedimiento para responder a los mensajes de la pantalla y realizar la recuperación.

Gestión del sistema operativo 157

Page 164: AIX Versión 7 - IBM

1. Asegúrese de que la variable de entorno DISPLAY está establecida correctamente. Utilice uno de losmétodos siguientes para comprobar el entorno de DISPLAY:

• Utilice el mandato setsenv para visualizar las variables de entorno.

setsenv

El mandato setsenv visualiza el entorno de estado protegido al iniciar la sesión.

Determine si se ha establecido la variable DISPLAY. En el ejemplo siguiente, la variable DISPLAY noaparece, lo que indica que la variable DISPLAY no está establecida en un valor específico.

SYSENVIRON:NAME=caseyTTY=/dev/pts/5LOGNAME=caseyLOGIN=casey

O BIEN• Cambie el valor de la variable DISPLAY. Por ejemplo, para establecerla en la máquina denominadabastet y el terminal 0, especifique:

DISPLAY=bastet:0export DISPLAY

Si no se establece específicamente, la variable de entorno DISPLAY es de forma predeterminadaunix:0 (la consola). El valor de la variable está en el formato nombre:número donde nombre es elnombre de sistema principal de una máquina determinada y número es el número de servidor de Xen el sistema nombrado.

2. Restablezca los valores predeterminados del terminal utilizando el siguiente mandato stty:

stty sane

El mandato stty sane restaura la “corrección” de los controladores de terminal. El mandato generauna salida de código de restablecimiento de terminal adecuado a partir del archivo /etc/termcap(o /usr/share/lib/terminfo si está disponible).

3. Si la tecla de retorno no funciona correctamente, restáurela escribiendo:

^J stty sane ^J

^J representa la secuencia de teclas Control-J.

Ejecución de múltiples colas utilizando las variables de entorno RT_MPC y RT_GRQEl uso de múltiples colas aumenta la afinidad de las hebras del procesador, pero en una situaciónespecial es aconsejable contrarrestar este efecto.

Normalmente, cuando sólo hay una cola de ejecución, una hebra que se ha activado (la hebra que seactiva) por otra hebra en ejecución (la hebra activadora) puede utilizar inmediatamente la CPU en la quese ejecuta la hebra activadora. Cuando hay varias colas de ejecución, es posible que la hebra que seactiva esté en la cola de ejecución de otra CPU que no pueda observar la hebra que se activa hasta lasiguiente decisión de planificación. En este caso se puede producir un retraso de hasta 10 ms.

Es similar a los casos de ejemplo de releases anteriores de este sistema operativo que se pueden haberproducido utilizando la opción bindprocessor. Si todas las CPU están constantemente ocupadas, y hayvarias hebras interdependientes que se activan, se disponen de dos opciones.

• La primera opción, que utiliza una cola de ejecución, es establecer la variable de entorno RT_GRQ=ONque fuerza el despacho de las hebras seleccionadas desvinculadas fuera de la cola de ejecución global.

• Alternativamente, los usuarios pueden elegir la opción de kernel de tiempo real (escriba el mandatobosdebug -R on y después bosboot) y la variable de entorno RT_MPC=ON para los procesos

158 AIX Versión 7.2: Gestión del sistema operativo

Page 165: AIX Versión 7 - IBM

seleccionados. Es esencial mantener un registro de rendimiento de los sistema para supervisar decerca el impacto de cualquier ajuste que intenta.

Contabilidad del sistemaEl programa de utilidad de contabilidad del sistema permite recopilar datos e informar acerca del usoindividual y de grupo de distintos recursos del sistema.

Esta información de contabilidad se puede utilizar para facturar a los usuarios los recursos del sistemaque utilizan y para supervisar aspectos seleccionados de la operación del sistema. Para ayudar a lafacturación, el sistema de contabilidad proporciona totales del uso de recursos definidos por miembrosdel grupo adm y, si se incluye el mandato chargefee, factores de la tarifa de facturación.

El sistema de contabilidad también proporciona datos para valorar la adecuación de las asignaciones derecursos actuales, establecer límites y cuotas de recursos, prever las necesidades futuras y pedirprovisiones para impresoras y otros dispositivos.

La siguiente información ayuda a comprender cómo se debe implementar el programa de utilidad decontabilidad en el sistema.

Informes de datos de contabilidadDespués de recopilar varios tipos de datos de contabilidad, los registros se procesan y se convierten eninformes.

Los mandatos de contabilidad convierten automáticamente los registros a notación científica cuando losnúmeros crecen. Un número se representa en notación científica con el formato siguiente:

Basee+Exp

Basee-Exp

que es el número igual al número Base multiplicado por 10 y elevado a la +Exp o -Exp potencia. Porejemplo, la notación científica 1,345e+9 es igual a 1,345x109 o 1.345.000.000. Y la notación científica1,345e-9 es igual a 1,345x10-9 o 0,000000001345.

Conceptos relacionadosDatos de contabilidad de procesosEl sistema de contabilidad recopila datos sobre el uso de recursos para cada proceso mientras se ejecuta.

Informes de contabilidad diariosPara generar un informe diario, utilice el mandato runacct.

Este mandato resume datos en un archivo ASCII denominado /var/adm/acct/sum(x)/rprtMMDD.MMDD especifica el mes y el día en que se ha ejecutado el informe. El informe cubre los temas siguientes:

• Informe diario• Informe de uso diario• Resumen de mandatos diario• Resumen de totales de mandatos mensual• Último inicio de sesión

Informe diarioLos informes de contabilidad diarios contienen datos sobre el tiempo de conexión, los procesos, el uso dedisco, el uso de impresora y las tarifas que se deben cargar.

El mandato acctmerg fusiona los datos de contabilidad brutos sobre el tiempo de conexión, losprocesos, el uso de disco, el uso de impresora y las tarifas que se deben cargar en informes diarios. Elmandato runacct lo llama como parte de su operación diaria, el mandato acctmerg produce losiguiente:

/var/adm/acct/nite(x)/dacctUn informe intermedio que se genera cuando se llena uno de los archivos de entrada.

Gestión del sistema operativo 159

Page 166: AIX Versión 7 - IBM

/var/adm/acct/sum(x)/tacctUn informe de totales acumulados en formato tacct. El mandato monacct utiliza este archivo paragenerar el resumen mensual ASCII.

El mandato acctmerg puede convertir registros entre los formatos ASCII y binario y fusionar registros dediferentes orígenes en un solo registro para cada usuario. Para obtener más información acerca delmandato acctmerg, consulte acctmerg.

La primera línea del informe diario empieza con las horas de inicio y finalización de los datos recopiladosen el informe, una lista de sucesos a nivel de sistema incluyendo cualquier cierre, rearranque y cambio anivel de ejecución existentes. También se indica la duración total con el número total de minutosincluidos en el periodo de contabilidad (normalmente 1440 minutos, si el informe se ejecuta cada 24horas). El informe contiene la siguiente información:

Elemento Descripción

LÍNEA Consola, tty o pty en uso

MINUTOS Número total de minutos que se ha utilizado la línea

PORCENTAJE

Porcentaje de tiempo del periodo de contabilidad que se ha utilizado la línea

NÚM.SESIÓN

Número de nuevas sesiones de inicio de sesión iniciadas

NÚM. ACT Igual que NÚM. SESIÓN

NÚM.DESACT

El número de finalizaciones de sesión más las interrupciones realizadas en la línea

Informe de contabilidad de uso diarioEl informe de uso diario es un informe de resumen del uso del sistema por ID de usuario durante elperiodo de contabilidad.

Algunos campos se dividen en tiempo de horas punta y no punta, según defina el administrador decontabilidad en el directorio /usr/lib/acct/holidays. El informe contiene la siguiente información:

Elemento Descripción

UID ID de usuario

NOMBRE DE CONEXIÓN Nombre de usuario

CPU (PUNTA/NPUNTA) El tiempo total de CPU para todos los procesos del usuario enminutos

MEMK (PUNTA/NPUNTA) Total de memoria utilizada por los procesos en ejecución, enkilobyte-minutos

CONEXIÓN (PUNTA/NPUNTA) Tiempo de conexión total (el tiempo que el usuario ha estadoconectado) en minutos

BLOQUES DE DISCO Cantidad promedio total de espacio de disco utilizado por elusuario en todos los sistemas de archivos cuya contabilidad estáhabilitada

TARIFAS Tarifas totales especificadas con el mandato chargefee

NÚM. DE PROCESOS Número total de procesos que pertenecen a este usuario

NÚM. DE SESIONES Número de sesiones de inicio de sesión diferenciadas para esteusuario

NÚM. DE EJEMPLOS DE DISCO Número de veces que se han ejecutado ejemplos de discodurante el periodo de contabilidad. Si no se es propietario deningún BLOQUE DE DISCO, el valor será cero.

160 AIX Versión 7.2: Gestión del sistema operativo

Page 167: AIX Versión 7 - IBM

Informe de contabilidad de resumen de mandatos diarioEl informe de resumen de mandatos diario muestra todos los mandatos ejecutados durante el periodo decontabilidad, una línea por cada nombre de mandato exclusivo.

La tabla se clasifica por MEMKMIN TOTAL (descrito abajo) y la primera línea incluye la información deltotal para todos los mandatos. Los datos indicados para cada mandato son acumulativos para todas lasejecuciones del mandato durante el periodo de contabilidad. Las columnas de esta tabla incluyen lasiguiente información:

Elemento Descripción

NOMBRE DEMANDATO

El mandato que se ha ejecutado

NÚMERO DEMANDATOS

Número de veces que se ha ejecutado el mandato

MEMKMIN Memoria total utilizada para la ejecución del mandato, en kilobyte-minutos

TOTAL CPU-MIN Total de tiempo de CPU utilizado por el mandato en minutos

TOTAL REAL-MIN Total de tiempo real transcurrido para el mandato en minutos

TAMAÑO-KPROMEDIO

Tamaño promedio de memoria utilizado por el mandato por minuto de CPU

CPU-MIN PROMEDIO Número promedio de minutos de CPU por ejecución del mandato

FACTORACAPARAMIENTO

Medición del acaparamiento de CPU por el mandato mientras está activo. Es laproporción de TOTAL CPU-MIN con respecto a TOTAL REAL-MIN

CARACTERESTRANSFERIDOS

Número de caracteres transferidos por el mandato con lecturas y grabacionesdel sistema

BLOQUES LEÍDOS Número de lecturas y grabaciones de bloque físico realizadas por el mandato

Informe de contabilidad de resumen de totales de mandatos mensualEl resumen de totales de mandatos mensual, creado por el mandato monacct, proporciona informaciónacerca de todos los mandatos ejecutados desde el informe mensual anterior.

Los campos e información significan lo mismo que los del resumen de mandatos diario.

Último inicio de sesiónEl informe de último inicio de sesión visualiza dos campos para cada ID de usuario. El primer campo esAA-MM-DD e indica el inicio de sesión más reciente para el usuario especificado. El segundo campo es elnombre de la cuenta del usuario.

Un campo de fecha de 00-00-00 indica que el ID de usuario nunca ha iniciado la sesión.

Resumen de informe de contabilidadPuede generar un informe que resuma los datos de contabilidad brutos.

Para resumir datos de contabilidad brutos, utilice el mandato sa. Este mandato lee los datos decontabilidad brutos, normalmente recopilados en el archivo /var/adm/pacct, y los datos de resumende uso actual del archivo /var/adm/savacct, si existen datos de resumen. Combina esta informaciónen un nuevo informe de resumen de uso y depura el archivo de datos brutos a fin de liberar espacio parala recopilación de más datos.

Requisitos previos

El mandato sa necesita un archivo de entrada de datos de contabilidad brutos como, por ejemplo, elarchivo pacct (archivo de contabilidad de procesos). Para recopilar datos de contabilidad brutos, debetener configurado un sistema de contabilidad y debe estar en ejecución.

Procedimiento

Gestión del sistema operativo 161

Page 168: AIX Versión 7 - IBM

La finalidad del mandato sa es resumir la información de contabilidad de procesos y visualizar oalmacenar esa información. El uso más sencillo del mandato visualiza una lista de estadísticas de cadaproceso que se ha ejecutado durante el periodo del archivo pacct que se lee. Para generar esta lista,escriba:

/usr/sbin/sa

Para resumir la información de contabilidad y fusionarla en el archivo de resumen, escriba:

/usr/sbin/sa -s

El mandato sa ofrece muchos distintivos adicionales que especifican cómo se procesa y visualiza lainformación de contabilidad. Consulte la descripción del mandato sa para obtener más información.

Tareas relacionadasConfiguración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.

Informe mensualPuede generar un informe de contabilidad mensual.

El daemon cron llama al mandato monacct que genera lo siguiente:

Elemento Descripción

/var/adm/acct/fiscal Un informe de resumen periódico a partir del informe /var/adm/acct/sum/tacct por el mandato monacct. El mandato monacctpuede estar configurado para ejecutarse mensualmente o al final deun periodo fiscal.

Informes de tiempo de conexiónLos registros de contabilidad incluyen registros de inicio de sesión, fin de sesión, cierre del sistema yúltimo inicio de sesión.

El mandato runacct llama a dos mandatos, acctcon1 y acctcon2, para procesar los registros de iniciode sesión, fin de sesión y cierre del sistema que se recopilan en el archivo /var/adm/wtmp. El mandatoacctcon1 convierte estos registros en registros de sesión y los graba en el archivo /var/adm/acct/nite(x)/lineuse. Después, el mandato acctcon2 convierte los registros de sesión en un registro detotales de contabilidad, /var/adm/logacct, que el mandato acctmerg añade a los informes diarios.Para obtener información acerca de estos mandatos, consulte runacct, acctcon1 y acctcon2.

Si ejecuta el mandato acctcon1 desde la línea de mandatos, debe incluir el distintivo -l para producir elinforme de uso de línea, /var/adm/acct/nite(x)/lineuse. Para producir un informe global de lasesión para el periodo de contabilidad, /var/adm/acct/nite(x)/reboots, utilice el mandatoacctcon1 con el distintivo -o.

El mandato lastlogin produce un informe que proporciona la última fecha en la que cada usuario hainiciado la sesión. Para obtener información acerca del mandato lastlogin, consulte lastlogin.

Conceptos relacionadosDatos de contabilidad de tiempo de conexiónLos datos de tiempo de conexión se recopilan por los mandatos init y login.Datos de contabilidad de uso de discoMucha de la información de contabilidad se recopila a medida que se consumen los recursos. El mandatododisk, ejecutado según lo especificado por el daemon cron, graba periódicamente los registros de usode disco para cada usuario en el archivo /var/adm/acct/nite(x)/dacct.

Informe de contabilidad de uso de discoLos registros de uso de disco recopilados en el archivo /var/adm/acct/nite(x)/dacct se fusionanen los informes de contabilidad diarios mediante el mandato acctmerg.

Para obtener información acerca del mandato acctmerg, consulte acctmerg.

162 AIX Versión 7.2: Gestión del sistema operativo

Page 169: AIX Versión 7 - IBM

Informe de contabilidad de uso de impresoraEl registro ASCII del archivo /var/adm/qacct se puede convertir en un registro de total de contabilidadque el mandato acctmerg añade al informe diario.

Para obtener información acerca del mandato acctmerg, consulte acctmerg.

Conceptos relacionadosDatos de contabilidad de uso de impresoraLa recopilación de los datos de uso de impresora es un esfuerzo cooperativo entre el mandato enq y eldaemon de puesta en cola.

Informe de contabilidad de tarifasSi ha utilizado el mandato chargefee para cargar a los usuarios los servicios como, por ejemplo,restauraciones de archivos, consultoría o materiales, se graba un registro ASCII de totales decontabilidad en el archivo /var/adm/fee. El mandato acctmerg añade este archivo a los informesdiarios.

Para obtener información acerca de los mandatos chargefee y acctmerg, consulte chargefee yacctmerg.

Conceptos relacionadosDatos de contabilidad de tarifasPuede generar un registro ASCII de totales de contabilidad en el archivo /var/adm/fee.

Informes de contabilidad fiscalGeneralmente, los informes de contabilidad fiscal se recopilan mensualmente utilizando el mandatomonacct.

El informe se almacena en /var/adm/acct/fiscal(x)/fiscrptMM donde MM es el mes en que se haejecutado el mandato monacct. Este informe incluye información similar a los informes diariosresumidos para todo el mes.

Informes de actividad del sistema de contabilidadPuede crear un informe que muestre la actividad del sistema de contabilidad.

Para generar un informe sobre la actividad del sistema, utilice el mandato prtacct. Este mandato lee lainformación de un archivo de totales de contabilidad (formato de archivo tacct) y produce salidaformateada. Los archivos de totales de contabilidad incluyen los informes diarios sobre el tiempo deconexión, el tiempo de proceso, el uso de disco y el uso de impresora.

Requisitos previos

El mandato prtacct necesita un archivo de entrada en formato de archivo tacct. Esto implica que debehaber configurado un sistema de contabilidad y que debe estar en ejecución o que debe haber ejecutadoel sistema de contabilidad en el pasado.

Procedimiento

Genere un informe sobre la actividad del sistema entrando:

prtacct -f Especificación -v Cabecera Archivo

Especificación es la lista de números de campo separados mediante comas o los rangos utilizados por elmandato acctmerg. El distintivo -v produce salida detallada donde los números de coma flotante sevisualizan en notación de precisión superior. Cabecera es el título que desea que aparezca en el informe yes opcional. Archivo es el nombre completo de vía de acceso del archivo de totales de contabilidad que seva a utilizar como entrada. Puede especificar más de un archivo.

Tareas relacionadasConfiguración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.

Gestión del sistema operativo 163

Page 170: AIX Versión 7 - IBM

Soporte de nombres de usuario superiores a ocho caracteresPara mantener la compatibilidad con todos los scripts de versiones anteriores, el soporte de nombres deusuario largos no está habilitado de forma predeterminada en la contabilidad. En vez de esto, todos los IDde usuario se truncan en los ocho primeros caracteres.

Para habilitar el soporte de nombres de usuario largos, se ha proporcionado a la mayoría de mandatos eldistintivo adicional -X, que les permite aceptar y generar ID de usuario superiores a ocho caracteres (enlos formatos ASCII y binario). Además, cuando se habilita el soporte de nombres de usuario largos, losmandatos y scripts procesarán los archivos de los directorios /var/adm/acct/sumx, /var/adm/acct/nitex y /var/adm/acct/fiscalx, en lugar de utilizar /var/adm/acct/sum, /var/adm/acct/nitey /var/adm/acct/fiscal.

Mandatos de contabilidadLos mandatos de contabilidad funcionan de diferentes maneras.

Algunos mandatos:

• Recopilan datos o generan informes para un tipo específico de contabilidad: tiempo de conexión,proceso, uso de disco, uso de impresora o uso de mandatos.

• Llaman a otros mandatos. Por ejemplo, el mandato runacct, que normalmente se ejecutaautomáticamente por el daemon cron, llama a muchos mandatos que recopilan y procesan datos decontabilidad y preparan informes. Para obtener la contabilidad automáticamente, primero debeconfigurar el daemon cron para que ejecute el mandato runacct. Consulte el mandato crontab paraobtener más información acerca de cómo configurar el daemon cron para someter mandatos aintervalos planificados regularmente. Para obtener información acerca de estos mandatos, consulterunacct, cron daemon y crontab.

• Realizan las funciones de mantenimiento y aseguran la integridad de los archivos de datos activos.• Permiten que los miembros del grupo adm realicen tareas ocasionales como, por ejemplo, visualizar

registros específicos, especificando un mandato en el teclado.• Permiten que un usuario visualice información específica. Sólo hay un mandato de usuario, el mandatoacctcom, que visualiza resúmenes de contabilidad de procesos.

Mandatos que se ejecutan automáticamenteVarios mandatos recopilan automáticamente datos de contabilidad.

Normalmente varios mandatos ejecutados por el daemon cron recopilan datos de contabilidadautomáticamente. Estos mandatos son:runacct

Maneja el procedimiento de contabilidad diario principal. El mandato runacct normalmente iniciadopor el daemon cron durante horas no punta, llama a otros mandatos de contabilidad para procesarlos archivos de datos activos y generar resúmenes de mandatos y uso de recursos, clasificados pornombre de usuario. También llama al mandato acctmerg para generar archivos de informes deresumen diarios y al mandato ckpacct para mantener la integridad de los archivos de datos activos.

ckpacctManeja el tamaño del archivo pacct. Es mejor tener varios archivos pacct más pequeños si debereiniciar el procedimiento runacct después de una anomalía en el proceso de estos registros. Elmandato ckpacct comprueba el tamaño del archivo de datos activo /var/adm/pacct, y si elarchivo es superior a 500 bloques, el mandato invoca al mandato turnacct switch para desactivartemporalmente la contabilidad de procesos. Los datos se transfieren a un nuevo archivopacct, /var/adm/pacct x. (x es un entero que aumenta cada vez que se crea un nuevo archivopacct.) Si el número de bloques de disco libres cae por debajo de 500, el mandato ckpacct llama almandato turnacct off para desactivar la contabilidad de procesos.

dodiskLlama al mandato acctdisk y al mandato diskusg o al mandato acctdusg para grabar registros deuso de disco en el archivo /var/adm/acct/nite/dacct. Estos datos se fusionan posteriormenteen informes diarios.

164 AIX Versión 7.2: Gestión del sistema operativo

Page 171: AIX Versión 7 - IBM

dodiskLlama al mandato acctdisk y al mandato diskusg o al mandato acctdusg para grabar registros deuso de disco en el archivo /var/adm/acct/nite/dacct. Estos datos se fusionan posteriormenteen informes diarios.

monacctGenera un resumen periódico a partir de informes diarios.

sa1Recopila y almacena datos binarios en el archivo /var/adm/sa/sa dd, donde dd es el día del mes.

sa2Graba un informe diario en el archivo /var/adm/sa/sadd, donde dd es el día del mes. El mandatoelimina los informes del archivo /var/adm/sa/sadd que han estado ahí más de una semana.

Otros mandatos se ejecutan automáticamente por otros procedimientos que no son el daemon cron:

startupCuando se añade al archivo /etc/rc, el mandato startup inicia procedimientos de arranque para elsistema de contabilidad.

shutacctRegistra el tiempo que la contabilidad ha estado desactivada llamando al mandato acctwtmp paragrabar una línea en el archivo /var/adm/wtmp. Después, llama al mandato turnacct off paradesactivar la contabilidad de procesos.

Mandatos del tecladoUn miembro del grupo adm puede especificar los mandatos siguientes desde el teclado.

acImprime los registros de tiempo de conexión. Este mandato se proporciona para compatibilidad conlos sistemas de Berkeley Software Distribution (BSD).

acctcomVisualiza resúmenes de contabilidad de procesos. Este mandato también está disponible para losusuarios.

acctcon1Visualiza resúmenes de tiempo de conexión. Se deben utilizar los distintivos -l o -o.

acctonActiva y desactiva la contabilidad de procesos.

chargefeeCarga al usuario una tarifa predeterminada por unidades de trabajo realizadas. El mandato acctmergañade los cargos al informe diario.

fwtmpConvierte los archivos entre los formatos binario y ASCII.

lastVisualiza información acerca de inicios de sesión anteriores. Este mandato se proporciona paracompatibilidad con sistemas BSD.

lastcommVisualiza información acerca de los últimos mandatos que se han ejecutado. Este mandato seproporciona para compatibilidad con sistemas BSD.

lastloginVisualiza la hora en que cada usuario ha iniciado la sesión por última vez.

pacPrepara registros de contabilidad de impresora/trazador. Este mandato se proporciona paracompatibilidad con sistemas BSD.

prctmpVisualiza el registro de una sesión.

Gestión del sistema operativo 165

Page 172: AIX Versión 7 - IBM

prtacctVisualiza los archivos de totales de contabilidad.

saResume la información de contabilidad bruta para ayudar a gestionar grandes volúmenes deinformación de contabilidad. Este mandato se proporciona para compatibilidad con sistemas BSD.

sadcInforma sobre varias acciones del sistema local como, por ejemplo, el uso de almacenamientointermedio, la actividad de E/S de disco y cinta, los contadores de actividad de dispositivo TTY y loscontadores de acceso a archivos.

sarGraba en salida estándar el contenido de los contadores de actividad acumulados seleccionados delsistema operativo. El mandato sar sólo informa de las actividades locales.

timeImprime el tiempo real, el tiempo de usuario y el tiempo del sistema necesario para ejecutar unmandato.

timexInforma en segundos del tiempo transcurrido, el tiempo de usuario y el tiempo de ejecución.

Conceptos relacionadosRecopilación e informe de datos del sistemaPuede configurar el sistema para que recopile datos y genere informes automáticamente.

Archivos de contabilidadLos dos directorios de contabilidad principales son el directorio /usr/sbin/acct, donde se almacenantodos los programas en lenguaje C y procedimientos de shell necesarios para ejecutar el sistema decontabilidad, y el directorio /var/adm, que contiene los archivos de datos, informes y resúmenes.

Los archivos de datos de contabilidad pertenecen a miembros del grupo adm, y todos los archivos dedatos activos (por ejemplo, wtmp y pacct) residen en el directorio inicial de adm /var/adm.

Archivos de datos de contabilidadLos siguientes archivos están en el directorio /var/adm.

Elemento Descripción

/var/adm/diskdiag Salida de diagnóstico durante la ejecución de programasde contabilidad de disco

/var/adm/dtmp Salida del mandato acctdusg

/var/adm/fee Salida del mandato chargefee, en registros tacct ASCII

/var/adm/pacct Archivo de contabilidad de procesos activos

/var/adm/wtmp Archivo de contabilidad de procesos activos

/var/adm/Spacct .mmdd Archivos de contabilidad de procesos para mmdd durantela ejecución del mandato runacct.

Archivos de informe y resumen de contabilidadAlgunos subdirectorios son necesarios antes de habilitar el sistema de contabilidad.

Los archivos de informe y resumen residen en un subdirectorio /var/adm/acct. Debe crear lossiguientes subdirectorios antes de habilitar el sistema de contabilidad.

/var/adm/acct/nite(x)Contiene archivos que el mandato runacct vuelve a utilizar diariamente

/var/adm/acct/sum(x)Contiene archivos de resumen acumulado que el mandato runacct actualiza diariamente

/var/adm/acct/fiscal(x)Contiene archivos de resumen mensual que el mandato monacct crea.

166 AIX Versión 7.2: Gestión del sistema operativo

Page 173: AIX Versión 7 - IBM

Tareas relacionadasConfiguración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.

Inicio del mandato runacct para contabilidadPuede iniciar el mandato runacct.

Requisitos previos

1. Debe tener el sistema de contabilidad instalado.2. Debe tener autorización de usuario root o grupo adm.

Notas:

1. Si llama al mandato runacct sin parámetros, el mandato supone que es la primera vez que se ejecutael mandato hoy. Por lo tanto, debe incluir el parámetro mmdd cuando reinicie el programa runacct,para que el mes y el día sean correctos. Si no especifica un estado, el programa runacct lee elarchivo /var/adm/acct/nite(x)/statefile para determinar el punto de entrada para elproceso. Para alterar temporalmente el archivo /var/adm/acct/nite(x)/statefile, especifiqueel estado deseado en la línea de mandatos.

2. Cuando realice la tarea siguiente, puede necesitar utilizar el nombre completo de vía de acceso /usr/sbin/acct/runacct en lugar del nombre de mandato simple, runacct.

Procedimiento

Para iniciar el mandato runacct, escriba lo siguiente:

nohup runacct 2> \/var/adm/acct/nite/accterr &

Esta entrada hace que el mandato pase por alto todas las señales INTR y QUIT mientras realiza elproceso de fondo. Redirige toda la salida de error estándar al archivo /var/adm/acct/nite/accterr.

Reinicio del mandato runacct para contabilidadSi el mandato runacct no es satisfactorio, puede reiniciarlo.

Los requisitos previos para este procedimiento son:

• Debe tener el sistema de contabilidad instalado.• Debe tener autorización de usuario root o grupo adm.

Nota: Las causas más comunes de que falle el mandato runacct son porque:

• El sistema se desactiva.• El sistema de archivos /usr se queda sin espacio.• El archivo /var/adm/wtmp contiene registros con indicaciones de fecha y hora incoherentes.

Si el mandato runacct no es satisfactorio, haga lo siguiente:

1. Compruebe en el archivo /var/adm/acct/nite(x)/active mmdd si hay mensajes de error.2. Si existen el archivo activo y los archivos de bloqueo en acct/nite, compruebe el archivo accterr,

donde se redirigen los mensajes de error cuando el daemon cron llama al mandato runacct.3. Realice las acciones necesarias para eliminar errores.4. Reinicie el mandato runacct.5. Para reiniciar el mandato runacct para una fecha específica, escriba lo siguiente:

nohup runacct 0601 2>> \/var/adm/acct/nite/accterr &

Este programa reinicia runacct para el 1 de junio (0601). El programa runacct lee elarchivo /var/adm/acct/nite/statefile para averiguar con qué estado debe empezar. Toda lasalida de error estándar se añade al archivo /var/adm/acct/nite/accterr.

Gestión del sistema operativo 167

Page 174: AIX Versión 7 - IBM

6. Para reiniciar el programa runacct en un estado especificado, por ejemplo, en el estado MERGE,escriba lo siguiente:

nohup runacct 0601 MERGE 2>> \/var/adm/acct/nite/accterr &

Archivos del mandato runacctEl mandato runacct genera archivos de informe y resumen.

Los siguientes archivos de informe y resumen, producidos por el mandato runacct, son especialmenteinteresantes:

Elemento Descripción

/var/adm/acct/nite(x)/lineuse

Contiene estadísticas de uso para cada línea de terminal del sistema.Este informe es muy útil para detectar líneas incorrectas. Si laproporción entre el número de finalizaciones e inicios de sesiónexcede en aproximadamente 3 a 1, hay una gran posibilidad de queuna línea falle.

/var/adm/acct/nite(x)/daytacct

Contiene el archivo de totales de contabilidad para el día anterior.

/var/adm/acct/sum(x)/tacct

Contiene la acumulación del archivo nite/daytacct de cada día yse puede utilizar para la facturación. El mandato monacct reinicia elarchivo cada mes o periodo fiscal.

/var/adm/acct/sum(x)/cms Contiene la acumulación de los resúmenes de mandatos de cada día.El mandato monacct lee esta versión binaria del archivo y la depura.La versión ASCII es nite/cms.

/var/adm/acct/sum(x)/daycms

Contiene el resumen de mandatos diario. Se almacena una versiónASCII en nite/daycms.

/var/adm/acct/sum(x)/loginlog

Contiene un registro de la última vez que se ha utilizado cada ID deusuario.

/var/adm/acct/sum(x)/rprt mmdd

El archivo contiene una copia del informe diario guardado por elmandato runacct.

Archivos del directorio /var/adm/acct/nite(x)Los archivos siguientes se encuentran en el directorio /var/adm/acct/nite(x).

Elemento Descripción

active El mandato runacct lo utiliza para registrar mensajes de aviso yerror de progreso e impresión. El archivo active. mmdd es unacopia del archivo active realizada por el programa runacctdespués de que detecte un error.

cms Resumen ASCII de totales de mandatos utilizado por el mandatoprdaily.

ctacct.mmdd Conecta registros de totales de contabilidad.

ctmp Conecta registros de sesión.

daycms Resumen ASCII de mandatos diarios utilizado por el mandatoprdaily.

daytacct Registros de totales de contabilidad para un día.

dacct Registros de totales de contabilidad de disco, creados por elmandato dodisk.

168 AIX Versión 7.2: Gestión del sistema operativo

Page 175: AIX Versión 7 - IBM

Elemento Descripción

accterr Salida de diagnóstico generada durante la ejecución del mandatorunacct.

lastdate Último día en que se ha ejecutado runacct, en formato fecha +%m%d.

lock1 Se utiliza para controlar el uso en serie del mandato runacct.

lineuse Informe de uso de línea tty utilizado por el mandato prdaily.

log Salida de diagnóstico del mandato acctcon1.

logmmdd Igual que log después de que el mandato runacct detecte un error.

reboots Contiene las fechas de inicio y finalización de wtmp, y un listado delos reinicios del sistema.

statefile Se utiliza para registrar el estado actual durante la ejecución delmandato runacct.

tmpwtmp El archivo wtmp corregido por el mandato wtmpfix.

wtmperror Contiene mensajes de error de wtmpfix.

wtmperrmmdd Igual que wtmperror después de que el mandato runacct detecteun error.

wtmp.mmdd Contiene el archivo wtmp del día anterior. Se ha eliminado durante lalimpieza del mandato runacct.

Archivos del directorio /var/adm/acct/sum(x)Los archivos siguientes se encuentran en el directorio /var/adm/acct/sum(x).

Elemento Descripción

cms Archivo de resumen de totales de mandatos para el periodo fiscal actual, en formatobinario.

cmsprev Archivo de resumen de mandatos sin la última actualización.

daycms Archivo de resumen de mandatos para el día anterior, en formato binario.

lastlogin Archivo creado por el mandato lastlogin.

pacct.mmdd Versión concatenada de todos los archivos pacct para mmdd. Este archivo se eliminadespués del rearranque del sistema por el mandato remove. Para obtener informaciónacerca del mandato remove, consulte remove.

rprtmmdd Salida guardada del mandato prdaily.

tacct Archivo de totales de contabilidad acumulados para el periodo fiscal actual.

tacctprev Igual que tacct sin la última actualización.

tacctmmdd Archivo de totales de contabilidad para mmdd.

Archivos del directorio /var/adm/acct/fiscal(x)Los siguientes archivos se encuentran en el directorio /var/adm/acct/fiscal(x).

Elemento Descripción

cms? Archivo de resumen de totales de mandatos para el periodo fiscal, especificado por ?, enformato binario.

fiscrpt? Informe similar al del mandato prdaily para el periodo fiscal, especificado por ?, enformato binario

Gestión del sistema operativo 169

Page 176: AIX Versión 7 - IBM

Elemento Descripción

tacct? Archivo de totales de contabilidad para el periodo fiscal, especificado por ?, en formatobinario.

Formatos de archivos de contabilidadLa siguiente tabla resume la salida y los formatos de los archivos de contabilidad.

Elemento Descripción

wtmp Produce el archivo de contabilidad de procesos activos. El formato del archivo wtmp sedefine en el archivo utmp.h. Para obtener información acerca del archivo utmp.h,consulte utmp.h.

ctmp Produce registros de sesión de conexión. El formato se describe en el archivo ctmp.h.

pacct* Produce registros de contabilidad de procesos activos. El formato de la salida se defineen el archivo /usr/include/sys/acct.h.

Spacct* Produce archivos de contabilidad de procesos para mmdd durante la ejecución delmandato runacct. El formato de estos archivos se define en el archivo sys/acct.h.

daytacct Produce registros de totales de contabilidad para un día. El formato del archivo se defineen el formato del archivo tacct.

sum/tacct Produce un archivo binario que acumula los resúmenes de mandatos de cada día. Elformato de este archivo se define en el archivo de cabecera /usr/include/sys/acct.h.

ptacct Produce versiones concatenadas de archivos pacct. El formato de estos archivos sedefinen en el archivo tacct.

ctacct Produce registros de totales de contabilidad de conexión. La salida de este archivo sedefine en el archivo tacct.

cms Produce un resumen de totales de mandatos de contabilidad utilizado por el mandatoprdaily, en formato binario. La versión ASCII es nite/cms.

daycms Resumen de mandatos diarios utilizado por el mandato prdaily, en formato binario. Laversión ASCII es nite/daycms.

Administración de la contabilidad del sistemaHay varias tareas que puede llevar a cabo para la contabilidad del sistema. Estas tareas incluyenconfigurar un sistema de contabilidad, mostrar el uso de CPU y visualizar procesos de contabilidad.

Configuración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.

Debe tener autorización de root para completar este procedimiento.

A continuación se presenta una visión general de los pasos que se deben seguir para configurar unsistema de contabilidad. Consulte los mandatos y los archivos indicados en estos pasos para obtenerinformación más específica.

1. Utilice el mandato nulladm para garantizar que cada archivo tenga el permiso de acceso correcto: elpermiso de lectura (r) y grabación (w) para el propietario y grupo del archivo y el permiso de lectura (r)para otros:

/usr/sbin/acct/nulladm wtmp pacct

Esto proporciona acceso a los archivos pacct y wtmp.2. Actualice el archivo /etc/acct/holidays para incluir las horas que designe como punta y para

reflejar la planificación de las fiestas del año.

170 AIX Versión 7.2: Gestión del sistema operativo

Page 177: AIX Versión 7 - IBM

Nota: Las líneas de comentarios pueden aparecer en cualquier lugar del archivo siempre que el primercarácter de la línea sea un asterisco (*).

a. Para definir las horas punta, rellene los campos de la primera línea de datos (la primera línea queno es un comentario), utilizando un reloj de 24 horas. Esta línea consiste en tres campos de 4dígitos, por el orden siguiente:

1) Corriente año2) Principio de la hora punta (hhmm)3) Fin de la hora punta (hhmm)

Los blancos iniciales se pasan por alto. Puede especificar la medianoche como 0000 o 2400.

Por ejemplo, para especificar el año 2000, si la hora punta empieza a las 8:00 de la mañana yfinaliza a las 5:00 de la tarde, especifique:

2000 0800 1700

b. Para definir las fiestas de la compañía durante el año, rellene la siguiente línea de datos. Cada líneacontiene cuatro campos, en el orden siguiente:

1) Día del año2) Mes3) Día del mes4) Descripción del día de fiesta

El campo de día del año contiene el número del día en el que cae la fiesta y debe ser un número de1 a 365 (366 en los años bisiestos). Por ejemplo, el 1 de febrero es el día 32. Los otros tres campossólo son informativos y se tratan como comentarios.

A continuación, encontrará un ejemplo de dos líneas:

1 Jan 1 New Year's Day332 Nov 28 Thanksgiving Day

3. Active el proceso de contabilidad añadiendo la línea siguiente al archivo /etc/rc o suprimiendo elsímbolo de comentario (#) situado delante de la línea si ya existe:

/usr/bin/su - adm -c /usr/sbin/acct/startup

El procedimiento startup registra la hora en que se ha activado la contabilidad y limpia los archivos decontabilidad del día anterior.

4. Identifique todos los sistemas de archivos que desea incluir en la contabilidad del disco añadiendo lalínea siguiente a la stanza para el sistema de archivos en el archivo /etc/filesystems:

account = true

5. Especifique un archivo de datos para utilizarlo para los datos de impresora añadiendo la siguientelínea a la stanza de cola del archivo /etc/qconfig:

acctfile = /var/adm/qacct

6. Como usuario adm, cree los directorios /var/adm/acct/nite, /var/adm/acct/fiscaly /var/adm/acct/sum para recopilar los registros diarios y del periodo fiscal:

su - admcd /var/adm/acctmkdir nite fiscal sumexit

Para nombres de usuarios largos, utilice los mandatos siguientes en su lugar:

su - adm cd /var/adm/acct

Gestión del sistema operativo 171

Page 178: AIX Versión 7 - IBM

mkdir nitex fiscalx sumx exit

7. Establezca la ejecución automática de procedimientos de contabilidad diarios editando elarchivo /var/spool/cron/crontabs/adm para que incluya los mandatos dodisk, ckpacct yrunacct.Por ejemplo:

0 2 * * 4 /usr/sbin/acct/dodisk5 * * * * /usr/sbin/acct/ckpacct0 4 * * 1-6 /usr/sbin/acct/runacct 2>/var/adm/acct/nite/accterr

Para nombres de usuario largos, añada las siguientes líneas en su lugar:

0 2 * * 4 /usr/sbin/acct/dodisk -X 5 * * * * /usr/sbin/acct/ckpacct 0 4 * * 1-6 /usr/sbin/acct/runacct -X 2>/var/adm/acct/nitex/accterr

La primera línea inicia la contabilidad del disco a las 2:00 de la mañana (0 2) de cada jueves (4). Lasegunda línea inicia una comprobación de la integridad de los archivos de datos activos 5 minutosdespués de cada hora (5 *) todos los días (*). La tercera línea ejecuta la mayoría de losprocedimientos de contabilidad y procesa los archivos de datos activos a las 4:00 de la mañana (0 4)cada día de lunes a sábado (1-6). Si estas horas no encajan con las horas en que opera el sistema,ajuste las entradas.

Nota: Debe tener autorización de usuario root para editar el archivo /var/spool/cron/crontabs/adm.

8. Establezca el resumen de contabilidad mensual para que se ejecute automáticamente incluyendo elmandato monacct en el archivo /var/spool/cron/crontabs/adm.Por ejemplo, escriba:

15 5 1 * * /usr/sbin/acct/monacct

Para los nombres de usuarios largos, añada la siguiente línea en su lugar:

15 5 1 * * /usr/sbin/acct/monacct -X

Asegúrese de planificar este procedimiento lo suficientemente temprano para que finalice el informe.Este ejemplo inicia el procedimiento a las 5:15 de la mañana el primer día de cada mes.

9. Para someter el archivo cron editado, escriba:

crontab /var/spool/cron/crontabs/adm

Conceptos relacionadosRecopilación e informe de datos del sistemaPuede configurar el sistema para que recopile datos y genere informes automáticamente.Informes de actividad del sistema de contabilidadPuede crear un informe que muestre la actividad del sistema de contabilidad.Resumen de informe de contabilidadPuede generar un informe que resuma los datos de contabilidad brutos.Tareas relacionadasVisualización del tiempo de proceso de los procesos de contabilidad activosPuede visualizar el tiempo de proceso de los procesos activos.Visualización del tiempo de proceso de los procesos de contabilidad finalizadosPuede visualizar el tiempo de proceso de los procesos finalizados.Visualización del uso de CPU para cada proceso de contabilidadPuede visualizar informes formateados acerca del uso de CPU por usuario con el mandato acctprc1.

172 AIX Versión 7.2: Gestión del sistema operativo

Page 179: AIX Versión 7 - IBM

Visualización de la contabilidad de uso de CPU para cada usuarioPuede visualizar un informe formateado acerca del uso de CPU por usuario con una combinación de losmandatos acctprc1 y prtacct.Visualización de los registros de contabilidad del uso de impresora o trazadorPuede visualizar los registros de contabilidad del uso de la impresora o el trazador con el mandato pac.Referencia relacionadaArchivos de informe y resumen de contabilidadAlgunos subdirectorios son necesarios antes de habilitar el sistema de contabilidad.

Visualización de la actividad del sistema de contabilidadPuede visualizar información formateada acerca de la actividad del sistema con el mandato sar.

Para visualizar las estadísticas de la actividad del sistema, el mandato sadc debe estar en ejecución.

Nota: El método típico de ejecutar el mandato sadc es colocar una entrada para el mandato sa1 en elarchivo crontab raíz. El mandato sa1 es una variante de procedimiento de shell del mandato sadcdiseñado para funcionar con el daemon cron.

Para visualizar información básica de la actividad del sistema, escriba:

sar 2 6

donde el primer número es los segundos entre intervalos de muestreo y el segundo número es losintervalos que se deben visualizar. La salida de este mandato se parece a esta:

arthurd 2 3 000166021000 05/28/92

14:03:40 %usr %sys %wio %idle14:03:42 4 9 0 8814:03:43 1 10 0 8914:03:44 1 11 0 8814:03:45 1 11 0 8814:03:46 3 9 0 8814:03:47 2 10 0 88

Average 2 10 0 88

El mandato sar también ofrece varios distintivos para visualizar una matriz extensa de estadísticas delsistema. Para ver todas las estadísticas disponibles, utilice el distintivo -A. Para ver una lista deestadísticas disponibles y los distintivos para visualizarlas, consulte el mandato sar.

Nota: Para grabar un informe diario de la actividad del sistema en /var/adm/sa/sadd, incluya unaentrada en el archivo crontab raíz para el mandato sa2. El mandato sa2 es una variante deprocedimiento de shell para el mandato sar diseñado para funcionar con el daemon cron.

Visualización de la actividad del sistema de contabilidad mientras se ejecuta un mandatoPuede visualizar información formateada acerca de la actividad del sistema mientras se ejecuta unmandato determinado.

Los distintivos -o y -p del mandato timex necesitan que la contabilidad del sistema esté activada.

Puede utilizar los mandatos time y timex para visualizar información formateada acerca de la actividaddel sistema mientras se ejecuta un mandato determinado.

Para visualizar el tiempo transcurrido, el tiempo de usuario y el tiempo de ejecución del sistema para unmandato determinado, escriba:

time NombreMandato

O bien

timex NombreMandato

Gestión del sistema operativo 173

Page 180: AIX Versión 7 - IBM

Para visualizar la actividad total del sistema (todos los elementos de datos informados por el mandatosar) durante la ejecución de un mandato determinado, escriba:

timex -s NombreMandato

El mandato timex tiene dos distintivos adicionales. El distintivo -o informa del número total de bloquesleídos o grabados por el mandato y todos sus hijos. El distintivo -p lista todos los registros de contabilidadde proceso para un mandato y todos sus hijos.

Visualización del tiempo de proceso de los procesos de contabilidad activosPuede visualizar el tiempo de proceso de los procesos activos.

El mandato acctcom lee la entrada en formato de registro total de contabilidad (formato de archivoacct). Esto implica que la contabilidad de procesos está activada o que ha ejecutado la contabilidad deprocesos en el pasado.

El mandato ps ofrece diversos distintivos para adaptar la información visualizada.

Para producir una lista completa de todos los procesos activos excepto los procesos de kernel, escriba:

ps -ef

También puede visualizar una lista de todos los procesos asociados a terminales. Para ello, escriba:

ps -al

Ambos usos visualizan varias columnas para cada proceso, incluyendo el tiempo de CPU actual para elproceso en minutos y segundos.

Tareas relacionadasConfiguración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.

Visualización del tiempo de proceso de los procesos de contabilidad finalizadosPuede visualizar el tiempo de proceso de los procesos finalizados.

El mandato acctcom lee la entrada en formato de registro total de contabilidad (formato de archivoacct). Esto implica que la contabilidad de procesos está activada o que ha ejecutado la contabilidad deprocesos en el pasado.

Las funciones de contabilidad de procesos se activan con el mandato startup, que normalmente seinicia en la inicialización del sistema con una llamada al archivo /etc/rc. Cuando las funciones decontabilidad de proceso están en ejecución, se graba un registro en /var/adm/pacct (un archivo deregistros de totales de contabilidad) para cada proceso finalizado que incluye el tiempo de inicio ydetención del proceso. Puede visualizar la información de tiempo de proceso de un archivo pacct con elmandato acctcom. Este mandato tiene diversos distintivos que permiten flexibilidad al especificar losprocesos que se deben visualizar.

Por ejemplo, para ver todos los procesos que se han ejecutado durante un número mínimo de segundosde CPU o más, utilice el distintivo -O, escriba:

acctcom -O 2

Esto visualiza registros para cada proceso que se ha ejecutado durante 2 segundos como mínimo. Si noespecifica un archivo de entrada, el mandato acctcom lee la entrada del directorio /var/adm/pacct.

Tareas relacionadasConfiguración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.

Visualización del uso de CPU para cada proceso de contabilidadPuede visualizar informes formateados acerca del uso de CPU por usuario con el mandato acctprc1.

174 AIX Versión 7.2: Gestión del sistema operativo

Page 181: AIX Versión 7 - IBM

El mandato acctprc1 necesita que la entrada esté en formato del registro de totales de contabilidad(formato de archivo acct). Esto implica que la contabilidad de procesos está activada o que ha ejecutadola contabilidad de procesos en el pasado.

Para producir un informe formateado del uso de CPU por proceso, escriba:

acctprc1 </var/adm/pacct

Tareas relacionadasConfiguración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.

Visualización de la contabilidad de uso de CPU para cada usuarioPuede visualizar un informe formateado acerca del uso de CPU por usuario con una combinación de losmandatos acctprc1 y prtacct.

El mandato acctprc1, acctprc2, o accton necesita que la entrada esté en formato del registro de totalesde contabilidad (formato de archivo acct). Esto implica que la contabilidad de procesos está activada oque ha ejecutado la contabilidad de procesos en el pasado.

Para mostrar el uso de CPU para cada usuario, siga estos pasos:

1. Genere un archivo de salida del uso de CPU por proceso escribiendo:

acctprc1 </var/adm/pacct >out.file

El archivo /var/adm/pacct es la salida predeterminada para los registros de contabilidad deprocesos. Puede especificar un archivo pacct de archivado en su lugar.

2. Genere un archivo de registros de totales de contabilidad binario a partir de la salida del paso anterior,escribiendo:

acctprc2 <out.file >/var/adm/acct/nite/daytacct

Nota: El archivo daytacct se fusiona con otros registros de totales de contabilidad mediante elmandato acctmerg para producir el registro resumen diario, /var/adm/acct/sum(x)/tacct.

3. Utilice el mandato Visualización de la contabilidad de uso de CPU para cada usuario para visualizar uninforme formateado de uso de CPU resumido por el usuario escribiendo:

prtacct </var/adm/acct/nite/daytacct

Tareas relacionadasConfiguración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.

Visualización del uso de tiempo de conexión para contabilidadPuede visualizar el tiempo de conexión para todos los usuarios, usuarios individuales y por inicio desesión individual con el mandato ac.

El mandato ac extrae la información de inicio de sesión del archivo /var/adm/wtmp, por lo que estearchivo debe existir. Si el archivo no se ha creado, se devuelve el siguiente mensaje de error:

No /var/adm/wtmp

Si el archivo se llena demasiado, se crean archivos wtmp adicionales; puede visualizar la información detiempo de conexión de estos archivos especificándolos con el distintivo -w. Para obtener másinformación acerca del mandato ac, consulte ac.

Para visualizar el tiempo de conexión total para todos los usuarios, escriba:

/usr/sbin/acct/ac

Gestión del sistema operativo 175

Page 182: AIX Versión 7 - IBM

Este mandato visualiza un solo número decimal que es la suma total del tiempo de conexión, en minutos,de todos los usuarios que han iniciado la sesión durante el periodo del archivo wtmp actual.

Para visualizar el tiempo de conexión total para uno o varios usuarios determinados, escriba:

/usr/sbin/acct/ac Usuario1 Usuario2 ...

Este mandato visualiza un solo número decimal que es la suma total del tiempo de conexión, en minutos,del usuario o usuarios que ha especificado para cualquier inicio de sesión durante el periodo del archivowtmp actual.

Para visualizar el tiempo de conexión de un usuario individual más el tiempo de conexión total, escriba:

/usr/sbin/acct/ac -p Usuario1 Usuario2 ...

Este mandato visualiza un número decimal para cada usuario especificado igual al tiempo de conexióntotal, en minutos, para ese usuario durante el periodo del archivo wtmp actual. También visualiza unnúmero decimal que es la suma total del tiempo de conexión para todos los usuarios especificados. Si nose ha especificado ningún usuario en el mandato, la lista incluye todos los usuarios que han iniciado lasesión durante el periodo del archivo wtmp.

Visualización de la utilización de espacio de disco para contabilidadPuede visualizar información de utilización de espacio de disco con el mandato acctmerg.

Para visualizar información de la utilización del espacio de disco, el mandato acctmerg necesita entradade un archivo dacct (contabilidad de disco). La recopilación de registros de contabilidad de uso de discola realiza el mandato dodisk.

Para visualizar información de la utilización de espacio de disco, escriba:

acctmerg -a1 -2,13 -h </var/adm/acct/nite(x)/dacct

Este mandato visualiza registros de contabilidad de disco, que incluyen el número de bloques de 1 KButilizados por cada usuario.

Nota: El mandato acctmerg siempre lee la entrada estándar y puede leer hasta nueve archivosadicionales. Si no conduce entrada al mandato, debe redirigir la entrada de un archivo; el resto de losarchivos se puede especificar sin redirección.

Visualización de los registros de contabilidad del uso de impresora o trazadorPuede visualizar los registros de contabilidad del uso de la impresora o el trazador con el mandato pac.

• Para recopilar información del uso de impresora, debe tener un sistema de contabilidad configurado yen ejecución. Consulte el apartado “Configuración de un sistema de contabilidad” en la página 170 paraver las directrices.

• La impresora o el trazador cuyos registros desea contabilizar deben tener una cláusula acctfile= enla stanza de impresora del archivo /etc/qconfig. El archivo especificado en la cláusula acctfile=debe otorgar los permisos de lectura y grabación al usuario root o grupo printq.

• Si se especifica el distintivo -s del mandato pac, el mandato vuelve a grabar el nombre de archivo deresumen añadiendo _sum al nombre de vía de acceso especificado por la cláusula acctfile= en elarchivo /etc/qconfig. Este archivo debe existir y otorgar permisos de lectura y grabación al usuarioroot o grupo printq.

Para visualizar la información del uso de la impresora para todos los usuarios de una impresoradeterminada, escriba:

/usr/sbin/pac -PPrinter

Si no especifica una impresora, la variable de entorno PRINTER nombra la impresora predeterminada. Sila variable PRINTER no está definida, el valor predeterminado es lp0.

Para visualizar la información del uso de la impresora para determinados usuarios de una impresoradeterminada, escriba:

176 AIX Versión 7.2: Gestión del sistema operativo

Page 183: AIX Versión 7 - IBM

/usr/sbin/pac -PPrinter Usuario1 Usuario2 ...

El mandato pac ofrece otros distintivos para controlar la información que se visualiza.

Tareas relacionadasConfiguración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.

Actualización del archivo holidaysEl archivo holidays se queda obsoleto tras la última fiesta que se lista o cuando cambia el año. Puedeactualizar el archivo holidays.

El mandato acctcon1 (iniciado desde el mandato runacct) envía correo a las cuentas root y admcuando el archivo /usr/lib/acct/holidays se queda obsoleto.

Actualice el archivo holidays obsoleto editando el archivo /var/adm/acct/holidays para diferenciarentre las horas punta y las que no lo son.

Se supone que las horas punta son el periodo en que el sistema está más activo como, por ejemplo, losdías laborables. Los sábados y los domingos siempre son horas no punta para el sistema de contabilidad,como cualquier otro día festivo de la lista.

El archivo de fiestas contiene tres tipos de entradas: comentarios, el año y el periodo de horas punta yuna lista de fiestas parecida a la del ejemplo siguiente:

* Prime/Non-Prime Time Table for Accounting System** Curr Prime Non-Prime* Year Start Start 1992 0830 1700** Day of Calendar Company* Year Date Holiday** 1 Jan 1 New Year's Day* 20 Jan 20 Martin Luther King Day* 46 Feb 15 President's Day* 143 May 28 Memorial Day* 186 Jul 3 4th of July* 248 Sep 7 Labor Day* 329 Nov 24 Thanksgiving* 330 Nov 25 Friday after* 359 Dec 24 Christmas Eve* 360 Dec 25 Christmas Day* 361 Dec 26 Day after Christmas

La primera línea que no es un comentario debe especificar el año actual (cuatro dígitos) y el principio y elfin de la hora punta, como cuatro dígitos cada uno. El concepto de hora punta y no punta sólo afecta a lamanera en que los programas de contabilidad procesan los registros de contabilidad.

Si la lista de fiestas es demasiado larga, el mandato acctcon1 genera un error y necesitará reducir lalista. Es seguro con 20 fiestas o menos. Si desea añadir más fiestas, simplemente edite el archivo defiestas cada mes.

Recopilación de datos de contabilidadUna vez que haya configurado la contabilidad del sistema podrá empezar a recopilar y procesar losdiferentes tipos de datos de contabilidad.

Recopilación e informe de datos del sistemaPuede configurar el sistema para que recopile datos y genere informes automáticamente.

Para que los datos se recopilen automáticamente, un miembro del grupo adm debe haberse configuradocomo sistema de contabilidad. La configuración del sistema de contabilidad permite que el daemon cronejecute los mandatos que generan datos acerca de:

• La cantidad de tiempo que cada usuario pasa con una sesión iniciada en el sistema• El uso de la unidad de proceso, la memoria y los recursos de E/S

Gestión del sistema operativo 177

Page 184: AIX Versión 7 - IBM

• La cantidad de espacio de disco ocupado por los archivos de cada usuario• El uso de impresoras y trazadores• Las veces que se da un mandato específico.

El sistema graba un registro de cada sesión y proceso cuando se completan. Estos registros se conviertenen registros de totales de contabilidad (tacct) ordenados por usuario y fusionados en un informe diario.Periódicamente, los informes diarios se combinan para producir totales para el periodo fiscal definido.Los métodos para recopilar e informar de los datos y los distintos mandatos y archivos de contabilidad seexplican en las secciones siguientes.

Aunque la mayoría de los datos de contabilidad se recopilan y procesan automáticamente. un miembrodel grupo adm puede especificar determinados mandatos desde el teclado para obtener informaciónespecífica.

Tareas relacionadasConfiguración de un sistema de contabilidadSe puede configurar un sistema de contabilidad.Referencia relacionadaMandatos del tecladoUn miembro del grupo adm puede especificar los mandatos siguientes desde el teclado.

Datos de contabilidad de tiempo de conexiónLos datos de tiempo de conexión se recopilan por los mandatos init y login.

Cuando inicia la sesión, el programa login graba un registro en el archivo /etc/utmp. Este registroincluye el nombre de usuario, la fecha y la hora del inicio de sesión y el puerto de inicio de sesión. Losmandatos como, por ejemplo, who, utilizan este archivo para averiguar los usuarios que han iniciado lasesión en distintas pantallas. Si existe el archivo de contabilidad de tiempo de conexión /var/adm/wtmp, el mandato login le añade una copia de este registro de inicio de sesión. Para obtenerinformación acerca de los mandatos init y login, consulte init y login.

Cuando finaliza el programa de inicio de sesión (normalmente cuando se finaliza la sesión) el mandatoinit registra el fin de la sesión grabando otro registro en el archivo /var/adm/wtmp. Los registros de finde sesión difieren de los registros de inicio de sesión en que el nombre de usuario está en blanco. Losregistros de inicio y fin de sesión tienen el formato descrito en el archivo utmp.h. Para obtenerinformación acerca del archivo utmp.h, consulte utmp.h.

El mandato acctwtmp también graba entradas especiales en el archivo /var/adm/wtmp relativas a loscierres y arranques del sistema.

Conceptos relacionadosInformes de tiempo de conexiónLos registros de contabilidad incluyen registros de inicio de sesión, fin de sesión, cierre del sistema yúltimo inicio de sesión.

Datos de contabilidad de procesosEl sistema de contabilidad recopila datos sobre el uso de recursos para cada proceso mientras se ejecuta.

Estos datos incluyen:

• Los números de usuario y grupo bajo los cuales se ejecuta el proceso• Los ocho primeros caracteres del nombre del mandato• Una clave numérica de 64 bits que representa la clase del Gestor de carga de trabajo a la que pertenece

el proceso• El tiempo transcurrido y el tiempo de procesador utilizado por el proceso• Uso de memoria• El número de caracteres transferidos• El número de bloques de disco leídos o grabados para el proceso

178 AIX Versión 7.2: Gestión del sistema operativo

Page 185: AIX Versión 7 - IBM

El mandato accton registra estos datos en un archivo especificado, normalmente el archivo /var/adm/pacct. Para obtener más información acerca del mandato accton, consulte accton.

Los mandatos relacionados son startup, shutacct, dodisk, ckpacct y turnacct. Para obtenerinformación acerca de estos mandatos, consulte startup, shutacct, dodisk, ckpacct y turnacct.

Conceptos relacionadosInformes de datos de contabilidadDespués de recopilar varios tipos de datos de contabilidad, los registros se procesan y se convierten eninformes.

Informes de contabilidad de procesosDos mandatos procesan los datos relacionados con la facturación que se han recopilado en /var/adm/pacct o en otro archivo especificado.

El mandato acctprc1 convierte el ID de usuario en un nombre de usuario y graba registros ASCII quecontienen los elementos facturables (tiempo de CPU de horas punta y horas no punta, tamaño medio dememoria y datos de E/S). El mandato acctprc2 transforma esos registros en registros totales decontabilidad que el mandato acctmerg añade a los informes diarios. Para obtener más informaciónacerca del mandato acctmerg, consulte acctmerg.

Los datos de contabilidad del proceso también proporcionan información que puede utilizar parasupervisar el uso de recursos del sistema. El mandato acctcms resume el uso de recursos por nombre demandato. Esta información proporciona información sobre las veces que se ha ejecutado el mandato, lacantidad de tiempo de procesador y de memoria que se ha utilizado, y la intensidad con que se hanutilizado los recursos (también denominado factor de acaparamiento). El mandato acctcms produceestadísticas a largo plazo sobre la utilización del sistema, proporcionando información sobre el uso totaldel sistema y la frecuencia con la que se utilizan los mandatos. Para obtener más información acerca delmandato acctcms, consulte acctcms.

El mandato acctcom maneja los mismos datos que el mandato acctcms, pero proporciona informacióndetallada acerca de cada proceso. Puede visualizar todos los registros de contabilidad del proceso oseleccionar los procesos con un interés determinado. Los criterios de selección incluyen la cargaimpuesta por el proceso, el periodo de tiempo en que ha finalizado el proceso, el nombre del mandato, elusuario o el grupo que ha invocado el proceso, el nombre de la clase de WLM a la que ha pertenecido elproceso y el puerto en el que se ha ejecutado el proceso. A diferencia de otros mandatos de contabilidad,acctcom se puede ejecutar por todos los usuarios. Para obtener información acerca del mandatoacctcom, consulte acctcom.

Datos de contabilidad de uso de discoMucha de la información de contabilidad se recopila a medida que se consumen los recursos. El mandatododisk, ejecutado según lo especificado por el daemon cron, graba periódicamente los registros de usode disco para cada usuario en el archivo /var/adm/acct/nite(x)/dacct.

Para ello, el mandato dodisk llama a otros mandatos. Según la minuciosidad de la búsqueda decontabilidad, se pueden utilizar los mandatos diskusg o acctdusg para recopilar datos. El mandatoacctdisk se utiliza para grabar un registro de totales de contabilidad. A su vez, el mandato acctmergutiliza el registro de totales de contabilidad para preparar el informe de contabilidad diario.

El mandato dodisk carga a un usuario los enlaces con los archivos encontrados en el directorio de iniciode sesión del usuario y divide uniformemente los cargos para cada archivo entre los enlaces. Estodistribuye el coste de la utilización de un archivo entre todos los que lo han utilizado y elimina los cargosde los usuarios que renuncian a acceder a un archivo. Para obtener más información acerca del mandatododisk y el daemon cron, consulte dodisk y cron.

Conceptos relacionadosInformes de tiempo de conexiónLos registros de contabilidad incluyen registros de inicio de sesión, fin de sesión, cierre del sistema yúltimo inicio de sesión.

Gestión del sistema operativo 179

Page 186: AIX Versión 7 - IBM

Datos de contabilidad de uso de impresoraLa recopilación de los datos de uso de impresora es un esfuerzo cooperativo entre el mandato enq y eldaemon de puesta en cola.

El mandato enq pone en cola el nombre del usuario, el número de trabajo y el nombre del archivo que sedebe imprimir. Tras imprimir el archivo, el mandato qdaemon graba un registro ASCII en un archivo,normalmente el archivo /var/adm/qacct, que contiene el nombre del usuario, el número de usuario y elnúmero de páginas impresas. Puede clasificar estos registros y convertirlos en registros de totales decontabilidad. Para obtener información acerca de estos mandatos, consulte enq y qdaemon.

Conceptos relacionadosInforme de contabilidad de uso de impresoraEl registro ASCII del archivo /var/adm/qacct se puede convertir en un registro de total de contabilidadque el mandato acctmerg añade al informe diario.

Datos de contabilidad de tarifasPuede generar un registro ASCII de totales de contabilidad en el archivo /var/adm/fee.

Puede especificar el mandato chargefee para generar un registro ASCII de totales de contabilidad en elarchivo /var/adm/fee. El mandato acctmerg añadirá este archivo a los informes diarios.

Para obtener información acerca de los mandatos chargefee y acctmerg, consulte chargefee yacctmerg.

Conceptos relacionadosInforme de contabilidad de tarifasSi ha utilizado el mandato chargefee para cargar a los usuarios los servicios como, por ejemplo,restauraciones de archivos, consultoría o materiales, se graba un registro ASCII de totales decontabilidad en el archivo /var/adm/fee. El mandato acctmerg añade este archivo a los informesdiarios.

Resolución de problemas de la contabilidad del sistemaUtilice los siguientes métodos de resolución de problemas para solucionar algunos de los problemasbásicos que pueden producirse al utilizar la contabilidad del sistema. Si la información de resolución deproblemas no resuelve su problema, póngase en contacto con el representante de servicio.

Arreglo de errores de tacctSi utiliza el sistema de contabilidad para cargar a los usuarios los recursos del sistema, la integridad delarchivo /var/adm/acct/sum/tacct es bastante importante. En ocasiones, aparecen misteriososregistros tacct que contienen números negativos, números de usuario duplicados o el número de usuario65.535. Estos problemas se pueden arreglar.

Debe tener autorización de usuario root o grupo adm.

Para aplicar un parche al archivo tacct, siga estos pasos:

1. Vaya al directorio /var/adm/acct/sum escribiendo:

cd /var/adm/acct/sum

2. Utilice el mandato prtacct para comprobar el archivo de totales de contabilidad, tacctprev,escribiendo:

prtacct tacctprev

El mandato prtacct formatea y visualiza el archivo tacctprev de modo que puede comprobar eltiempo de conexión, el tiempo de proceso, el uso de disco y el uso de impresora.

3. Si el archivo tacctprev parece correcto, cambie el último archivo tacct .mmdd del formato binarioal formato ASCII. En el ejemplo siguiente, el mandato acctmerg convierte el archivo tacct.mmdden un archivo ASCII denominado tacct.new:

acctmerg -v < tacct.mmdd > tacct.new

180 AIX Versión 7.2: Gestión del sistema operativo

Page 187: AIX Versión 7 - IBM

Nota: El mandato acctmerg con el distintivo -a también produce salida ASCII. El distintivo -v generauna notación más precisa para números de coma flotante.

El mandato acctmerg se utiliza para fusionar los informes de registros de contabilidad intermedios enun informe de totales acumulados (tacct). Estos totales acumulados son la fuente a partir de la cual elmandato monacct produce el informe de resumen mensual ASCII. Puesto que el procedimiento delmandato monacct elimina todos los archivos tacct.mmdd, se vuelve a crear el archivo tacctfusionando estos archivos.

4. Edite el archivo tacct.new para eliminar los registros incorrectos y grabar los registros de usuarioduplicados en otro archivo escribiendo:

acctmerg -i < tacct.new > tacct.mmdd

5. Cree el archivo tacct de nuevo escribiendo:

acctmerg tacctprev < tacct.mmdd > tacct

Arreglo de errores de wtmpEl archivo /var/adm/wtmp, o "who temp", puede generar problemas en la operación diaria del sistemade contabilidad. Los errores de wtmp se pueden arreglar.

Debe tener autorización de usuario root o grupo adm para seguir este procedimiento.

Cuando se cambia una fecha y el sistema está en modalidad de múltiples usuarios, los registros decambio de fecha se graban en el archivo /var/adm/wtmp. Cuando se encuentra un cambio de fecha, elmandato wtmpfix ajusta las indicaciones de la hora en los registros de wtmp. Algunas combinaciones decambios de fecha y reinicios del sistema pueden pasar desapercibidos para el mandato wtmpfix y hacerque el mandato acctcon1 falle y el mandato runacct envíe correo a las cuentas root y adm indicandofechas incorrectas.

Para arreglar los errores de wtmp, siga este procedimiento:

1. Vaya al directorio /var/adm/acct/nite escribiendo:

cd /var/adm/acct/nite

2. Convierta el archivo wtmp binario en un archivo ASCII que pueda editar escribiendo:

fwtmp < wtmp.mmdd > wtmp.new

El mandato fwtmp convierte wtmp de formato binario a ASCII.3. Edite el archivo wtmp.new ASCII para suprimir los registros dañados o todos los registros desde el

principio del archivo hasta la fecha necesaria escribiendo:

vi wtmp.new

4. Convierta el archivo wtmp.new ASCII de nuevo al formato binario escribiendo:

fwtmp -ic < wtmp.new > wtmp.mmdd

5. Si el archivo wtmp no se puede reparar, utilice el mandato nulladm para crear un archivo wtmp vacío.Esto impide cualquier carga en tiempo de conexión.

nulladm wtmp

El mandato nulladm crea el archivo especificado con permisos de lectura y grabación para elpropietario y grupo del archivo, y permisos de lectura para otros usuarios. Garantiza que el propietarioy el grupo del archivo sean adm.

Tareas relacionadasArreglo de errores de contabilidadPuede corregir las incoherencias de fecha e indicación de la hora.

Gestión del sistema operativo 181

Page 188: AIX Versión 7 - IBM

Arreglo de permisos incorrectos de archivo de contabilidadPara utilizar el sistema de contabilidad, la propiedad y los permisos del archivo deben ser correctos.

Debe tener autorización de usuario root o grupo adm para seguir este procedimiento.

La cuenta administrativa adm es propietaria del mandato y los scripts de contabilidad,excepto /var/adm/acct/accton que es propiedad de root.

Para arreglar los permisos incorrectos de archivos de contabilidad, siga este procedimiento:

1. Para comprobar los permisos de archivos utilizando el mandato ls, escriba:

ls -l /var/adm/acct

-rws--x--- 1 adm adm 14628 Mar 19 08:11 /var/adm/acct/fiscal-rws--x--- 1 adm adm 14628 Mar 19 08:11 /var/adm/acct/nite-rws--x--- 1 adm adm 14628 Mar 19 08:11 /var/adm/acct/sum

2. Ajuste los permisos de archivos con el mandato chown, si es necesario.Los permisos son 755 (todos los permisos para el propietario y los permisos de lectura y ejecuciónpara todos los otros). Además, el propio directorio debe estar protegido contra grabación de otros.Por ejemplo:

a. Vaya al directorio /var/adm/acct escribiendo:

cd /var/adm/acct

b. Cambie la propiedad para los directorios sum, nite y fiscal a la autorización de grupo admescribiendo:

chown adm sum/* nite/* fiscal/*

Para impedir interferencias de los usuarios que intentan evitar cargos, deniegue el permiso degrabación para otros en estos archivos. Cambie el propietario del grupo de mandatos accton poradm, y los permisos por 710, es decir, ningún permiso para otros. Los procesos propiedad de admpueden ejecutar el mandato accton, pero los usuarios normales no.

3. El archivo /var/adm/wtmp también debe ser propiedad de adm. Si /var/adm/wtmp es propiedad deroot, verá el mensaje siguiente durante el arranque:

/var/adm/acct/startup: /var/adm/wtmp: Permiso denegado

Para corregir la propiedad de /var/adm/wtmp, cambie la propiedad al grupo adm escribiendo elmandato siguiente:

chown adm /var/adm/wtmp

Arreglo de errores de contabilidadPuede corregir las incoherencias de fecha e indicación de la hora.

Debe tener autorización de usuario root o grupo adm para seguir este procedimiento.

El proceso del archivo /var/adm/wtmp puede dar lugar a que se envíen por correo avisos a root. Elarchivo wtmp contiene información recopilada por /etc/init y /bin/login y los scripts decontabilidad los utilizan principalmente para calcular el tiempo de conexión (la duración de tiempo queun usuario permanece con la sesión iniciada). Desafortunadamente, los cambios de fecha confunden alprograma que procesa el archivo wtmp. Como resultado, el mandato runacct envía correo a root y admquejándose de cualquier error después de un cambio de una fecha desde la última vez que se haejecutado la contabilidad.

1. Determine si ha recibido algún error.El mandato acctcon1 genera mensajes de error que el mandato runacct envía por correo a adm yroot.

182 AIX Versión 7.2: Gestión del sistema operativo

Page 189: AIX Versión 7 - IBM

Por ejemplo, si el mandato acctcon1 se equivoca después de un cambio de fecha y no puederecopilar tiempos de conexión, adm puede recibir un correo parecido al siguiente mensaje:

Lun Ene 6 11:58:40 CST 1992acctcon1: horas erróneas: antigua: Mar Ene 7 00:57:14 1992nueva: Lun Ene 6 11:57:59 1992acctcon1: horas erróneas: antigua: Mar Ene 7 00:57:14 1992nueva: Lun Ene 6 11:57:59 1992acctcon1: horas erróneas: antigua: Mar Ene 7 00:57:14 1992nueva: Lun Ene 6 11:57:59 1992

2. Ajuste el archivo wtmp escribiendo:

/usr/sbin/acct/wtmpfix wtmp

El mandato wtmpfix examina si hay incoherencias de fecha e indicación de la hora en el archivo wtmpy corrige los problemas que pueden hacer que acctcon1 falle. Sin embargo, algunos cambios defecha pueden pasar desapercibidos para wtmpfix.

3. Ejecute la contabilidad antes del cierre o inmediatamente después del arranque.Si se utiliza el mandato runacct en esos momentos, se minimiza el número de entradas con horasincorrectas. El mandato runacct continúa enviando correo a las cuentas de root y adm, hasta queedite el script runacct, busque la sección WTMPFIX y ponga como comentario la línea en la que seenvía el registro del archivo a las cuentas root y adm.

Tareas relacionadasArreglo de errores de wtmpEl archivo /var/adm/wtmp, o "who temp", puede generar problemas en la operación diaria del sistemade contabilidad. Los errores de wtmp se pueden arreglar.

Errores de contabilidad encontrados al ejecutar el mandato runacctPuede encontrar errores al ejecutar el mandato runacct.

Nota: Debe tener autorización de usuario root o grupo adm para ejecutar el mandato runacct.

El mandato runacct procesa archivos que con frecuencia son muy grandes. El procedimiento implicavarios pases a través de determinados archivos y consume bastantes recursos del sistema mientras tienelugar. Puesto que el mandato runacct consume muchos recursos, normalmente se ejecuta por lamañana temprano, cuando puede ocupar la máquina y no interrumpir a nadie.

El mandato runacct es un script dividido en diferentes etapas. Las etapas permiten reiniciar el mandatodonde se ha detenido, sin tener que volver a ejecutar todo el script.

Cuando runacct encuentra problemas, envía mensajes de error a diferentes destinos según el error quese ha producido. Normalmente, envía una fecha y un mensaje a la consola dándole instrucciones para quebusque en el archivo activeMMDD (por ejemplo, active0621 para el 21 de junio) que está en eldirectorio /usr/adm/acct/nite. Cuando el mandato runacct termina anormalmente, mueve todo elarchivo active a activeMMDD y añade un mensaje que describe el problema.

Revise las siguientes tablas de mensajes de error para ver los errores que puede encontrar al ejecutar elmandato runacct.

Nota:

• La abreviatura MMDD significa el mes y el día como, por ejemplo, 0102 para el 2 de enero. Por ejemplo,un error irrecuperable durante el proceso de CONNECT1 el 2 de enero crea el archivo active0102 quecontiene el mensaje de error.

• La abreviatura "Mensaje EE" significa mensaje de error estándar como, por ejemplo:

********* ERRORES ACCT : vea active0102 *********

Gestión del sistema operativo 183

Page 190: AIX Versión 7 - IBM

Estado preliminar y mensajes de error del mandato runnacct

Estado Mandato ¿Irrecuperable? Mensaje de error Destinos

pre runacct sí * 2 CRONS oPROBLEMAS ACCT* ERROR: sehan encontradobloqueos,ejecucióncanceladaanormalmente

consola, correo,active

pre runacct sí runacct:Espacioinsuficienteen /usr (nnnbloques);Terminando elprocedimiento

consola, correo,active

pre runacct sí Mensaje EE;ERROR:contabilidadya enejecución para'fecha':compruebeúltima fecha

consola, correo,activeMMDD

pre runacct no * CONTABILIDADDEL SISTEMAINICIADA *

consola

pre runacct no reiniciandocontabilidadpara 'fecha'en ESTADO

consola activa,consola

pre runacct no reiniciandocontabilidadpara 'fecha'en estado(argumento $2)el estadoanterior eraESTADO

active

pre runacct sí Mensaje EE;Error: se hallamado arunacct conargumentos queno son válidos

consola, correo,activeMMDD

184 AIX Versión 7.2: Gestión del sistema operativo

Page 191: AIX Versión 7 - IBM

Estados y mensajes de error del mandato runacct

Estado Mandato ¿Irrecuperable?

Mensaje de error Destinos

SETUP runacct no ls -l feepacct* /var/adm/wtmp

active

SETUP runacct sí Mensaje EE;ERROR: elconmutador deturnacct hadevueltorc=error

consola, correo,activeMMDD

SETUP runacct sí Mensaje EE;ERROR:SpacctMMDD yaexiste lasdefinicionesde archivoprobablementeya se ejecutan

activeMMDD

SETUP runacct sí Mensaje EE;ERROR:wtmpMMDD yaexiste:ejecute ladefiniciónmanualmente

consola, correo,activeMMDD

WTMPFIX wtmpfix no Mensaje EE;ERROR: erroresde wtmpfix veaxtmperrorMMDD

activeMMDD,wtmperrorMMDD

WTMPFIX wtmpfix no proceso dewtmpcompletado

active

CONNECT1 acctcon1 no Mensaje EE;(errores delregistroacctcon1)

consola, correo,activeMMDD

CONNECT2 acctcon2 no conexión decontabilidadcompletada

active

PROCESS runacct no AVISO: lacontabilidadya se ejecutapara pacctN

active

PROCESS acctprc1acctprc2

no proceso decontabilidadcompletadoparaSpacctNMMDD

active

Gestión del sistema operativo 185

Page 192: AIX Versión 7 - IBM

Estados y mensajes de error del mandato runacct (continuación)

Estado Mandato ¿Irrecuperable?

Mensaje de error Destinos

PROCESS runacct no todo elproceso decontabilidadcompletadopara fecha

active

MERGE acctmerg no fusión detacct paracrear dayacctcompletada

active

FEES acctmerg no tasasfusionadas Osin tasas

active

DISK acctmerg no registros dediscofusionados Osin registrosde disco

active

MERGEACCT acctmerg no AVISO:volviendo acrear sum/tacct

active

MERGEACCT acctmerg no sum/tacctactualizado

active

CMS runacct no AVISO:volviendo acrear sum/cms

active

CMS acctcms no resúmenes demandatoscompletados

active

CLEANUP runacct no contabilidaddel sistemacompletada el'fecha'

active

CLEANUP runacct no *CONTABILIDADDEL SISTEMACOMPLETADA*

consola

<wrong> runacct sí Mensaje EE;ERROR: estadono válido,compruebeESTADO

consola, correo,activeMMDD

Nota: La etiqueta <wrong> de la tabla anterior no representa un estado, sino un estado distinto al estadocorrecto que se ha grabado en el archivo de estado /usr/adm/acct/nite/statefile.

186 AIX Versión 7.2: Gestión del sistema operativo

Page 193: AIX Versión 7 - IBM

Resumen de destinos de mensajes

Destino Descripción

consola El dispositivo /dev/console

correo Mensaje enviado por correo a las cuentas root y adm

active El archivo /usr/adm/acct/nite/active

activeMMDD El archivo /usr/adm/acct/nite/activeMMDD

wtmperrMMDD El archivo /usr/adm/acct/nite/wtmperrorMMDD

ESTADO Estado actual en el archivo /usr/adm/acct/nite/statefile

fd2log Cualquier otro mensaje de error

Controlador de recursos del sistemaEl Controlador de recursos del sistema (SRC) proporciona un conjunto de mandatos y subrutinas parafacilitar la creación y control de subsistemas al gestor y programador del sistema.

Un subsistema es cualquier programa o proceso, o conjunto de programas o procesos, que normalmentees capaz de funcionar independientemente o con un sistema de control. Un subsistema está diseñadocomo una unidad para proporcionar una función designada.

SRC se ha diseñado para minimizar la necesidad de intervención del operador. Proporciona unmecanismo para controlar los procesos de subsistema utilizando una línea de mandatos común y lainterfaz C. Este mecanismo incluye lo siguiente:

• Interfaz de usuario coherente para iniciar, detener y consultar el estado• Registro cronológico de la terminación anómala de subsistemas• Programa de notificación llamado en la terminación anómala del sistema de procesos relacionados• Rastreo de un subsistema, un grupo de subsistemas o un subservidor• Soporte para el control de operaciones en un sistema remoto• Renovación de un subsistema (como después de un cambio de los datos de configuración).

SRC es útil si desea una forma común de iniciar, detener y recopilar información de estado de losprocesos.

Conceptos relacionadosIntroducción a AIX para los gestores del sistema BSDLas siguientes sugerencias pueden ayudar a los gestores del sistema Berkeley Software Distribution(BSD) a empezar la gestión de AIX.

Componentes de subsistemasLas propiedades y los componentes de un subsistema son los siguientes.

Un subsistema puede tener una o varias de las propiedades siguientes:

• Se conoce en el sistema por su nombre• Requiere un entorno de ejecución más complejo que una subrutina o un programa no privilegiado• Incluye programas de aplicación y bibliotecas, así como código de subsistema• Controla recursos que se pueden iniciar y detener por el nombre• Requiere notificación si un proceso relacionado no es satisfactorio, para realizar la limpieza o recuperar

recursos• Requiere más control operativo que un simple proceso de daemon• Necesita estar controlado por un operador remoto

Gestión del sistema operativo 187

Page 194: AIX Versión 7 - IBM

• Implementa subservidores para gestionar recursos específicos• No se pone automáticamente en el fondo.

Unos cuantos ejemplos de subsistemas son ypserv, ntsd, qdaemon, inetd, syslogd y sendmail.

Nota: Consulte cada subsistema específico para conocer los detalles de sus posibilidades de SRC.

Utilice el mandato lssrc -a para listar los subsistemas activos e inactivos del sistema.

A continuación se definen los grupos de subsistemas y subservidores:

Grupo de subsistemas

Un grupo de subsistemas es un grupo de subsistemas especificados. La agrupación de subsistemaspermite el control de varios subsistemas a la vez. Unos cuantos ejemplos de grupos de subsistemasson TCP/IP, Servicios SNA, Network Information System (NIS) y Network File Systems (NFS).

Subservidor

Un subservidor es un programa o proceso que pertenece a un subsistema. Un subsistema puede tenervarios subservidores y es responsable de iniciar, detener y proporcionar el estado de lossubservidores. Los subservidores sólo se pueden definir para un subsistema con un tipo decomunicación de zócalos y colas de mensajes IPC. Los subsistemas que utilizan las comunicacionesde señales no soportan subservidores.

Los subservidores se inician cuando sus subsistemas padre se inician. Si intenta iniciar un subservidory su subsistema padre no está activo, el mandato startsrc también inicia el subsistema.

Jerarquía SRCLa jerarquía del Controlador de recursos del sistema empieza por el sistema operativo seguido por ungrupo de subsistemas (por ejemplo, tcpip), que contiene un subsistema (por ejemplo, el daemon inetd),que a su vez puede ser propietario de varios subservidores (por ejemplo, el daemon ftp y el mandatofinger).

Mandatos de administración de SRCPuede administrar SRC desde la línea de mandatos.

Los mandatos de administración de SRC son:

Elemento Descripción

Daemon srcmstr daemon Inicia el Controlador de recursos del sistema

Mandato startsrc Inicia un subsistema, un grupo de subsistemas o un subservidor

Mandato stopsrc Detiene un subsistema, un grupo de subsistemas o un subservidor

Mandato refresh Renueva un subsistema

Mandato traceson Activa el rastreo de un subsistema, un grupo de subsistemas o unsubservidor

Mandato tracesoff Desactiva el rastreo de un subsistema, un grupo de subsistemas o unsubservidor

Mandato lssrc Obtiene el estado de un subsistema.

Inicio del Controlador de recursos del sistemaEl Controlador de recursos del sistema (SRC) se inicia durante la inicialización del sistema con un registropara el daemon /usr/sbin/srcmstr en el archivo /etc/inittab.

Los requisitos previos para iniciar SRC son los siguientes:

• Para la lectura y grabación del archivo /etc/inittab se requiere autorización de usuario root.• Para el mandato mkitab se necesita autorización de usuario root.• El daemon srcmstr debe existir en el archivo /etc/inittab.

188 AIX Versión 7.2: Gestión del sistema operativo

Page 195: AIX Versión 7 - IBM

El archivo /etc/inittab predeterminado ya contiene ese registro, por lo que es posible esteprocedimiento no sea necesario. También puede iniciar SRC desde la línea de mandatos, un perfil o unscript de shell, pero hay varias razones para iniciarlo durante la inicialización:

• El inicio de SRC desde el archivo /etc/inittab permite al mandato init reiniciar SRC si se detienepor cualquier razón.

• SRC está diseñado para simplificar y reducir la cantidad de intervención del operador necesaria paracontrolar los subsistemas. El inicio de SRC desde cualquier otro origen diferente del archivo /etc/inittab es contraproducente para ese objetivo.

• El archivo /etc/inittab predeterminado contiene un registro para iniciar el subsistema deplanificación de impresión (qdaemon) con el mandato startsrc. En las instalaciones típicas, tambiénse inician otros subsistemas con los mandatos startsrc del archivo /etc/inittab. Puesto que elmandato srcmstr necesita que SRC esté en ejecución, la eliminación del daemon srcmstr delarchivo /etc/inittab hace que estos mandatos startsrc fallen.

Nota: Este procedimiento sólo es necesario si el archivo /etc/inittab no contiene un registro para eldaemon srcmstr.

1. Cree un registro para el daemon srcmstr en el archivo /etc/inittab utilizando el mandatomkitab.Por ejemplo, para crear un registro idéntico al que aparece en el archivo /etc/inittabpredeterminado, escriba:

mkitab -i fbcheck srcmstr:2:respawn:/usr/sbin/srcmstr

El distintivo -i fbcheck asegura que el registro se inserte antes de todos los registros de subsistemas.2. Indique al mandato init que vuelva a procesar el archivo /etc/inittab escribiendo:

telinit q

Cuando init vuelve a visitar el archivo /etc/inittab, procesa el registro que se acaba de entrarpara el daemon srcmstr e inicia SRC.

Conceptos relacionadosControl de subsistemasSe puede utilizar el mandato traceson para activar y el mandato traceoff para desactivar el rastreo deun recurso del Controlador de recursos del sistema (SRC) como, por ejemplo, un subsistema, un grupo desubsistemas o un subservidor.Tareas relacionadasRenovación de un subsistema o grupo de subsistemasUtilice el mandato refresh para indicar a un recurso del Controlador de recursos del sistema (SRC)como, por ejemplo, un subsistema o un grupo de subsistemas, que se renueve.

Inicio o detención de un subsistema, un grupo de sistemas o un subservidorUtilice el mandato startsrc para iniciar un recurso del Controlador de recursos del sistema (SRC) como,por ejemplo, un subsistema, un grupo de subsistemas o un subservidor. Utilice el mandato stopsrc paradetener un recurso SRC como un subsistema, un grupo de subsistemas o un subservidor.

Los siguientes son requisitos previos para iniciar o detener un subsistema, un grupo de subsistemas o unsubservidor:

• Para iniciar o detener un recurso SRC, SRC debe estar en ejecución. SRC normalmente se inicia durantela inicialización del sistema. El archivo /etc/inittab predeterminado, que determina los procesosque se inician durante la inicialización, contiene un registro del daemon srcmstr (SRC). Para ver si SRCestá en ejecución, escriba ps -A y busque un proceso denominado srcmstr.

• El usuario o proceso que inicia un recurso SRC debe tener autorización de usuario root. El proceso queinicializa el sistema (mandato init) tiene autorización de usuario root.

• El usuario o proceso que detiene un recurso SRC debe tener autorización de usuario root.

El mandato startsrc se puede utilizar:

Gestión del sistema operativo 189

Page 196: AIX Versión 7 - IBM

• Desde el archivo /etc/inittab por lo que el recurso se inicia durante la inicialización del sistema• Desde la línea de mandatos• Con SMIT

Cuando inicie un grupo de subsistemas, todos sus subsistemas también se inicia. Al iniciar unsubsistema, todos los subservidores también se inician. Cuando se inicia un subservidor, su subsistemapadre también se inicia si aún no está en ejecución.

Cuando se detiene un subsistema, todos sus subservidores también se detienen. Sin embargo, cuando sedetiene un subservidor, el estado de su subsistema padre no se cambia.

Los mandatos startsrc y stopsrc contienen distintivos que permiten realizar peticiones en sistemasprincipales locales o remotos. Consulte el mandato srcmstr para ver los requisitos de configuración paradar soporte a peticiones de SRC remotas.

Inicio o detención de tareas del subsistema

Tarea vía rápida deSMIT

Mandato o archivo

Iniciar un subsistema smitstartssys

/bin/startsrc -sSubsystemName, o edite /etc/inittab

Detener un subsistema smitstopssys

/bin/stopsrc -s SubsystemName

Información relacionadamandato stopsrcmandato startsrcmandato srcmstr

Visualización del estado de un subsistema o subsistemasUtilice el mandato lssrc para visualizar el estado de un recurso del Controlador de recursos del sistema(SRC) como, por ejemplo, un subsistema, un grupo de subsistemas o un subservidor.

Todos los subsistemas pueden devolver un informe de estado breve que incluye el grupo al quepertenece el subsistema, si el subsistema está activo y el ID del proceso (PID). Si un subsistema no utilizael método de comunicación de señales, se puede programar para que devuelva un informe de estadolargo que contenga información de estado adicional.

El mandato lssrc proporciona distintivos y parámetros para especificar el subsistema por nombre o PID,para listar todos los subsistemas, para pedir un informe de estado corto o largo y para solicitar el estadode los recursos SRC localmente o en sistemas principales remotos.

Consulte el mandato srcmstr para ver los requisitos de configuración para dar soporte a peticiones deSRC remotas.

Tareas de visualización del estado de subsistemas

Tarea Vía rápida deSMIT

Mandato o archivo

Visualización del estado de un subsistema (formato largo) smit qssys lssrc -l -sNombreSubsistema

Visualización del estado de todos los subsistemas smit lsssys lssrc -a

Visualización del estado de todos los subsistemas de unsistema principal en particular

lssrc -hNombreSistemaPrincipal -a

190 AIX Versión 7.2: Gestión del sistema operativo

Page 197: AIX Versión 7 - IBM

Renovación de un subsistema o grupo de subsistemasUtilice el mandato refresh para indicar a un recurso del Controlador de recursos del sistema (SRC)como, por ejemplo, un subsistema o un grupo de subsistemas, que se renueve.

Los requisitos previos para renovar un subsistema o grupo de subsistemas son:

• SRC debe estar en ejecución.• El recurso que desea renovar no debe utilizar el método de comunicaciones de señales.• El recurso que desea renovar debe estar programado para responder a la petición de renovación.

El mandato refresh proporciona distintivos y parámetros para especificar el subsistema por nombre oPID. Puede utilizarlo para pedir que se renueve un subsistema o grupo de subsistemas, localmente o ensistemas principales remotos. Consulte el mandato srcmstr para ver los requisitos de configuraciónpara dar soporte a peticiones de SRC remotas.

Renovación de un subsistema o grupo de subsistemas

Tarea Vía rápida deSMIT

Mandato o archivo

Renovación de un subsistema smit refresh refresh -s Subsistema

Tareas relacionadasInicio del Controlador de recursos del sistemaEl Controlador de recursos del sistema (SRC) se inicia durante la inicialización del sistema con un registropara el daemon /usr/sbin/srcmstr en el archivo /etc/inittab.

Control de subsistemasSe puede utilizar el mandato traceson para activar y el mandato traceoff para desactivar el rastreo deun recurso del Controlador de recursos del sistema (SRC) como, por ejemplo, un subsistema, un grupo desubsistemas o un subservidor.

Utilice el mandato traceson para activar el rastreo de un recurso del Controlador de recursos delsistema (SRC) como, por ejemplo, un subsistema, un grupo de subsistemas o un subservidor.

Utilice el mandato tracesoff para desactivar el rastreo de un recurso del Controlador de recursos delsistema (SRC) como, por ejemplo, un subsistema, un grupo de subsistemas o un subservidor.

Los mandatos traceson y traceoff se pueden utilizar para activar o desactivar remotamente en unsistema principal específico. Consulte el mandato srcmstr para obtener información de los requisitos deconfiguración para las peticiones de SRC remotas.Requisitos previos

• Para activar o desactivar el rastreo de un recurso SRC, SRC debe estar en ejecución.• El recurso que desea rastrear no debe utilizar el método de comunicaciones de señales.• El recurso que desea rastrear debe estar programado para responder a la petición de rastreo.

Tareas de activación y desactivación del subsistema, grupo de subsistemas o subservidor

Tarea Vía rápida de SMIT Mandato o archivo

Activación del rastreo ensubsistemas (formato corto)

smit tracessyson traceson -s Subsistema

Activación del rastreo ensubsistemas (formato largo)

smit tracessyson traceson -l -s Subsistema

Desactivación del rastreo desubsistemas

smit tracessysoff tracesoff -s Subsistema

Tareas relacionadasInicio del Controlador de recursos del sistema

Gestión del sistema operativo 191

Page 198: AIX Versión 7 - IBM

El Controlador de recursos del sistema (SRC) se inicia durante la inicialización del sistema con un registropara el daemon /usr/sbin/srcmstr en el archivo /etc/inittab.

Archivos del sistema operativoLos archivos se utilizan para toda la entrada y salida (E/S) de información del sistema operativo, paraestandarizar el acceso al software y al hardware.

La entrada se produce cuando se modifica el contenido de un archivo o se graba en él. La salida seproduce cuando se lee el contenido de un archivo o se transfiere a otro archivo. Por ejemplo, para crearuna copia impresa de un archivo, el sistema lee información del archivo de texto y graba esa informaciónen el archivo que representa la impresora.

Tipos de archivosLos tipos de archivos reconocidos por el sistema son normal, directorio o especial. No obstante, elsistema operativo utiliza muchas variaciones de estos tipos básicos.

A continuación se indican los tipos básicos de archivos existentes:

Elemento Descripción

normal Almacena datos (texto, binario y ejecutable)

directorio Contiene la información que se utiliza para acceder a otros archivos

especial Define un archivo de conducto FIFO (primero en entrar, primero en salir) o un dispositivofísico

Todos los tipos de archivos reconocidos por el sistema se enmarcan en una de estas categorías. Noobstante, el sistema operativo utiliza muchas variaciones de estos tipos básicos.

Archivos normales

Los archivos normales son los archivos más comunes y se utilizan para contener datos. Los archivosnormales están en formato de archivos de texto o de archivos binarios:

Archivos de texto

Los archivos de texto son archivos normales que contienen información almacenada en formatoASCII y que el usuario puede leer. Puede visualizar e imprimir dichos archivos. Las líneas de unarchivo de texto no deben contener caracteres NUL y ninguna puede exceder de {LINE_MAX}bytes de longitud, incluido el carácter de nueva línea.

El término archivo de texto no impide la inclusión de caracteres de control o de otros caracteresno imprimibles (diferentes de NUL). Por lo tanto, los programas de utilidad estándar que listanarchivos de texto como entradas o como salidas o bien son capaces de procesar los caracteresespeciales o bien son capaces de describir explícitamente sus limitaciones dentro de sussecciones individuales.

Archivos binarios

Los archivos binarios son archivos normales que contienen información que el sistema puede leer.Los archivos binarios podrían ser archivos ejecutables que indicaran al sistema que ha de realizarun trabajo. Los mandatos y los programas se almacenan en archivos binarios ejecutables. Losprogramas de compilación especial convierten texto ASCII en código binario.

Los archivos de texto y binarios sólo se diferencian en que los archivos de texto tienen líneas demenos de {LINE_MAX} bytes, sin ningún carácter NUL, cada una de las cuales termina con uncarácter de nueva línea.

Archivos de directorios

Los archivos de directorio contienen la información que el sistema necesita para acceder a todos lostipos de archivos, pero los archivos de directorio no contienen los datos reales del archivo. Enconsecuencia, los directorios ocupan menos espacio que un archivo normal y proporcionan a laestructura de sistema de archivos flexibilidad y profundidad. Cada entrada de directorio representa

192 AIX Versión 7.2: Gestión del sistema operativo

Page 199: AIX Versión 7 - IBM

un archivo o un subdirectorio. Cada entrada contiene el nombre del archivo y el número de referenciade nodo de índice (número de i-nodo) del archivo. El número de inodo apunta al nodo de índiceexclusivo que se ha asignado al archivo. El número de inodo describe la ubicación de los datos que seasocian al archivo. Un grupo independiente de mandatos crea y controla los directorios.

Archivos especiales

Los archivos especiales definen dispositivos para el sistema o son archivos temporales creados porprocesos. Los tipos básicos de archivos especiales son FIFO (primero en entrar, primero en salir), debloques y de caracteres. Los archivos FIFO también se denominan conductos. Los conductos se creanmediante un proceso para permitir temporalmente las comunicaciones con otro proceso. Estosarchivos dejan de existir cuando termina el primer proceso. Los archivos de bloque y los archivos decaracteres definen dispositivos.

Cada archivo tiene un conjunto de permisos (denominado modalidades de acceso) que determinaquién puede leer, modificar o ejecutar el archivo.

Conceptos relacionadosModalidades de acceso a archivos y a directoriosCada archivo tiene un propietario. En el caso de archivos nuevos, el usuario que crea el archivo es elpropietario de dicho archivo. El propietario asigna una modalidad de acceso al archivo. Las modalidadesde acceso otorgan a otros usuarios del sistema permiso para leer, modificar o ejecutar el archivo. Sólo elpropietario del archivo o los usuarios con autorización root pueden cambiar la modalidad de acceso de unarchivo.

Convenios de denominación de archivosEl nombre de cada archivo debe ser exclusivo en el directorio en el que se almacena. Esto garantiza queel archivo tiene también un nombre de vía de acceso exclusivo en el sistema de archivos.

A continuación se proporcionan las directrices de la denominación de archivos:

• Un nombre de archivo puede tener una longitud de hasta 255 caracteres y puede contener letras,números y caracteres de subrayado.

• El sistema operativo es sensible a las mayúsculas y minúsculas, lo que significa que distingue las letrasmayúsculas y las letras minúsculas de los nombres de los archivos. Por lo tanto, FILEA, FiLea y fileason tres nombres de archivos distintos, aunque residan en el mismo directorio.

• Los nombres de los archivos deben ser todo lo descriptivos y significativos que sea posible.• Los directorios siguen los mismos convenios de denominación que los archivos.• Existen algunos caracteres que tienen un significado especial para el sistema operativo. Evite utilizar

estos caracteres cuando especifique el nombre de los archivos. Dichos caracteres son los siguientes:

/ \ " ' * ; - ? [ ] ( ) ~ ! $ { } &lt > # @ & | separador espacio nueva línea

• Un nombre de archivo estará oculto en un listado de directorios normal si empieza por un punto (.).Cuando se especifica el mandato ls con el distintivo -a, los archivos ocultos se listan junto con losarchivos y directorios normales.

Nombres de vías de acceso de archivosEl nombre de la vía de acceso de cada archivo y directorio del sistema de archivos se compone de losnombres de cada directorio que precede al archivo o directorio en la estructura de árbol.

Puesto que todas las vías de acceso de un sistema de archivos tienen como origen el directorio /(root),cada archivo del sistema de archivos tiene una relación exclusiva con el directorio raíz, que se conocecomo nombre absoluto de vía de acceso. Los nombres absolutos de vías de acceso empiezan por unsímbolo de barra inclinada (/). Por ejemplo, el nombre absoluto de la vía de acceso del archivo h podríaser /B/C/h. Tenga en cuenta que, en el sistema, pueden existir dos archivos denominados h. Puesto quelas vías de acceso absolutas de los dos archivos son distintas, /B/h y /B/C/h, cada archivo denominadoh tiene un nombre exclusivo dentro del sistema. Cada componente de un nombre de vía de acceso es unvía de acceso excepto el componente final. El componente final de un nombre de vía de acceso puede serun nombre de archivo.

Gestión del sistema operativo 193

Page 200: AIX Versión 7 - IBM

Nota: Los nombres de vía de acceso no pueden exceder de 1023 caracteres de longitud.

Patrones de coincidencia con comodines y metacaracteresLos caracteres comodín son un método muy eficaz para especificar varios nombres de archivos o dedirectorios.

Los caracteres comodín son el asterisco (*) e interrogante (?). Los metacaracteres son los corchetes deapertura y cierre ([ ]), el guión (-) y el signo de exclamación (!).

Coincidencia de patrones utilizando el carácter comodín *Utilice el asterisco (*) para buscar la coincidencia de cualquier secuencia o serie de caracteres.

El (*) indica cualquier carácter, incluida la ausencia de caracteres.

Vea los ejemplos siguientes:

• Si tiene los siguientes archivos en el directorio:

1test 2test afile1 afile2 bfile1 file file1 file10 file2 file3

y tan solo desea hacer referencia a los archivos que empiezan por file, utilice:

file*

Los archivos seleccionados serían: file, file1, file10, file2 y file3.• Para hacer referencia únicamente a los archivos que contienen la palabra file, utilice:

*file*

Los archivos seleccionados serían: afile1, afile2, bfile1, file, file1, file10, file2 y file3.

Coincidencia de patrones utilizando el carácter comodín ?Utilice el ? como sustitución de cualquier carácter.

El ? indica cualquier carácter individual. Vea los ejemplos siguientes:

• Para hacer referencia únicamente a los archivos que empiezan por file y que acaban con un caráctersimple, utilice:

file?

Los archivos seleccionados serían: file1, file2, file3.• Para hacer referencia únicamente a los archivos que empiezan por file y que acaban con dos caracteres

simples, utilice:

file??

El archivo seleccionado sería: file10.

Coincidencia de patrones utilizando metacaracteres de shell [ ]Los metacaracteres ofrecen otro tipo de notación de comodín que delimita los caracteres deseados entre[ ]. Es como utilizar el ?, pero le permite elegir caracteres específicos para la búsqueda decoincidencias.

Los [ ] también le permiten especificar un rango de valores mediante la utilización del guión (-). Paraespecificar todas las letras del alfabeto, utilice [[:alpha:]] . Para especificar todas las letrasminúsculas del alfabeto, utilice [[:lower:]] .

Vea los ejemplos siguientes:

• Para hacer referencia únicamente a los archivos que finalizan por 1 o por 2, utilice:

*file[12]

Los archivos seleccionados serían: afile1, afile2, file1 y file2.

194 AIX Versión 7.2: Gestión del sistema operativo

Page 201: AIX Versión 7 - IBM

• Para que sólo se haga referencia a los archivos que empiezan por cualquier número, utilice lo siguiente:

[0123456789]* o [0-9]*

Los archivos seleccionados serían: 1test y 2test.• Para hacer referencia únicamente a los archivos que no empiezan por a, utilice:

[!a]*

Los archivos seleccionados serían: 1test, 2test, bfile1, file, file1, file10, file2 y file3.

Patrones de coincidencia en contraste con expresiones normalesLas expresiones normales le permiten seleccionar series específicas de un conjunto de series decaracteres. La utilización de expresiones normales suele asociarse al proceso de texto.

Las expresiones normales pueden representar una amplia gama de posibles series. Aunque muchasexpresiones normales pueden interpretarse de forma distinta según el escenario actual, lascaracterísticas de internacionalización hacen que no haya diferencias entre textos de diferentes países.

Vea los ejemplos de la siguiente comparación:

Tabla 57. Ejemplos de expresiones regulares

Coincidencia de patrones Expresión regular

* .*

? .

[!a] [^a]

[abc] [abc]

[[:alpha:]] [[:alpha:]]

Información relacionadamandato awk

Administración de archivosExisten muchas formas de trabajar con los archivos del sistema. Normalmente debe crear un archivo detexto con un editor de texto.

Los editores comunes del entorno UNIX son vi y ed. Puesto que están disponibles varios editores detexto, puede elegir el editor que le resulte más cómodo.

También puede crear archivos utilizando la redirección de la entrada y la salida. Puede enviar la salida deun mandato a un nuevo archivo o añadirla a un archivo existente.

Después de crear y modificar archivos, puede que tenga que copiar o mover archivos de un directorio aotro, cambiar el nombre de los archivos para distinguir las distintas versiones de un archivo o especificarnombres distintos para el mismo archivo. Cuando trabaje en distintos proyectos, puede que tambiéntenga que crear directorios.

Asimismo, también es posible que necesite suprimir determinados archivos. El directorio puede llenarserápidamente de archivos que contienen información antigua o inútil. Para liberar espacio dealmacenamiento en el sistema, asegúrese de que suprime archivos que ya no se necesitan.

Supresión de archivos (mandato rm)Utilice el mandato rm para eliminar archivos que ya no necesita.

El mandato rm elimina las entradas para un archivo, grupo de archivos o archivos seleccionadosdeterminados que se han especificado de una lista de un directorio. Cuando se utiliza el mandato rm nose necesitan la confirmación de usuario, el permiso de lectura y el permiso de grabación antes de eliminar

Gestión del sistema operativo 195

Page 202: AIX Versión 7 - IBM

un archivo. Sin embargo, el usuario debe disponer del permiso de grabación para el directorio quecontiene el archivo.

Lo siguiente son ejemplos del modo de utilizar el mandato rm:

• Para suprimir el archivo denominado myfile, escriba lo siguiente:

rm myfile

• Para suprimir todos los archivos del directorio mydir, uno a uno, escriba lo siguiente:

rm -i mydir/*

Cuando se muestre cada nombre de archivo, escriba y y pulse Intro para suprimir el archivo. O bien,para conservar el archivo, pulse Intro.

Cómo mover y renombrar archivos (mandato mv)Utilice el mandato mv para mover archivos y directorios de un directorio a otro o para renombrar unarchivo o directorio. Si mueve un archivo o directorio a un nuevo directorio sin especificar un nuevonombre, mantiene su nombre original.

Atención: El mandato mv puede sobrescribir varios archivos existentes a menos que seespecifique el distintivo -i. El distintivo -i le solicita que lo confirme antes de sobrescribir unarchivo. El distintivo -f no solicita confirmación. Si se especifican ambos distintivos, -f e -i encombinación, tiene prioridad el último distintivo especificado.

Cómo mover archivos con el mandato mv

Lo siguiente son ejemplos del modo de utilizar el mandato mv:

• Para mover un archivo a otro directorio y proporcionarle un nuevo nombre, escriba lo siguiente:

mv intro manual/chap1

De este modo, el archivo intro se mueve al directorio manual/chap1. El nombre intro se eliminadel directorio actual y el mismo archivo aparece como chap1 en el directorio manual.

• Para mover un archivo a otro directorio, manteniendo el mismo nombre, escriba lo siguiente:

mv chap3 manual

De este modo, el archivo chap3 se mueve al archivo manual/chap3.

Cómo renombrar archivos con el mandato mv

Utilice el mandato mv para cambiar el nombre de un archivo sin moverlo a otro directorio.

Para renombrar un archivo, escriba lo siguiente:

mv appendix apndx.a

De este modo, el archivo appendix se renombra como apndx.a. Si ya existe un archivo denominadoapndx.a, su contenido anterior se sustituye por el contenido del archivo appendix.

Copia de archivos (mandato cp)Utilice el mandato cp para crear una copia del contenido del archivo o directorio especificado mediantelos parámetros ArchivoOrigen o DirectorioOrigen en el archivo o directorio especificado mediante losparámetros ArchivoDestino o DirectorioDestino.

Si el archivo especificado como ArchivoDestino existe, la copia se graba sobre el contenido original dedicho archivo sin mostrar ningún aviso. Si va a copiar varios ArchivosOrigen, el destino debe ser undirectorio.

Si existe un archivo con el mismo nombre en el nuevo destino, el archivo copiado sobrescribe el archivoen el nuevo destino. Por lo tanto, se aconseja asignar un nuevo nombre para la copia del archivo con el finde asegurarse de que no exista un archivo con el mismo nombre en el directorio de destino.

196 AIX Versión 7.2: Gestión del sistema operativo

Page 203: AIX Versión 7 - IBM

Para situar una copia del ArchivoOrigen en un directorio, especifique una vía de acceso a un directorioexistente para el parámetro DirectorioDestino. Los archivos mantienen sus nombres respectivos cuandose copian a un directorio a menos que se especifique un nuevo nombre de archivo al final de la vía deacceso. El mandato cp también copia directorios completos a otros directorios si se especifican losdistintivos -r o -R.

También puede copiar archivos de dispositivos especiales mediante el distintivo -R. Al especificar -R, losarchivos especiales se vuelven a crear en el nuevo nombre de vía de acceso. Si se especifica -r, elmandato cp intenta copiar los archivos especiales en archivos normales.

Lo siguiente son ejemplos del modo de utilizar el mandato cp:

• Para realizar una copia de un archivo en el directorio actual, escriba lo siguiente:

cp prog.c prog.bak

De este modo, se copia prog.c en prog.bak. Si el archivo prog.bak aún no existe, el mandato cp locrea. Si existe, el mandato cp lo sustituye por una copia del archivo prog.c.

• Para copiar un archivo del directorio actual en otro directorio, escriba lo siguiente:

cp jones /home/nick/clients

De este modo, el archivo jones se copia en /home/nick/clients/jones.• Para copiar todos los archivos de un directorio en un nuevo directorio, escriba lo siguiente:

cp /home/janet/clients/* /home/nick/customers

De este modo, sólo se copian los archivos del directorio clients en el directorio customers.• Para copiar un conjunto específico de archivos a otro directorio, escriba lo siguiente:

cp jones lewis smith /home/nick/clients

De este modo, se copian los archivos jones, lewis y smith del directorio de trabajo actual en eldirectorio /home/nick/clients.

• Para utilizar caracteres comodín para copiar archivos, escriba lo siguiente:

cp programs/*.c .

De este modo, se copian los archivos del directorio programs que terminan por .c en el directorioactual, indicado mediante un solo punto (.). Debe dejar un espacio en blanco entre la c y el punto final.

Búsqueda de archivos (mandato find)Utilice el mandato find para buscar de forma recursiva en el árbol de directorio cada Vía de accesoespecificada, realizando búsquedas de archivos que coincidan con una expresión booleana escrita con lostérminos proporcionados en el texto siguiente.

La salida del mandato find depende de los términos especificados mediante el parámetro Expresión.

Lo siguiente son ejemplos del modo de utilizar el mandato find:

• Para listar todos los archivos del sistema de archivos con el nombre .profile, escriba lo siguiente:

find / -name .profile

De este modo, se busca en todo el sistema de archivos y se escriben los nombres de vía de accesocompletos de todos los archivos denominados .profile. La barra inclinada (/) indica al mandato findque realice búsquedas en el directorio /(root) y todos sus subdirectorios.

Para ahorrar tiempo, limite la búsqueda especificando los directorios en los que cree que pueden estarlos archivos.

Gestión del sistema operativo 197

Page 204: AIX Versión 7 - IBM

• Para listar archivos que tienen un código de permiso específico de 0600 en el árbol de directorio actual,escriba lo siguiente:

find . -perm 0600

De este modo, se listan los nombres de los archivos que sólo tienen permiso de lectura y grabación delusuario. El punto (.) indica al mandato find que realice búsquedas en el directorio actual y sussubdirectorios. Para obtener una explicación de los códigos de permisos, consulte el mandato chmod.

• Para buscar archivos con códigos de permisos determinados en varios directorios, escriba lo siguiente:

find manual clients proposals -perm -0600

De este modo, se listan los nombres de los archivos que tienen permiso de lectura y grabación delusuario y, posiblemente, otros permisos. La búsqueda se realiza en los directorios manual, clients yproposals y sus subdirectorios. En el ejemplo anterior, -perm 0600 sólo selecciona los archivoscuyos códigos de permisos coinciden con 0600 exactamente. En este ejemplo, -perm -0600selecciona archivos con códigos de permisos que permiten los accesos indicados mediante 0600 yotros accesos por encima del nivel 0600, lo que también coincide con los códigos de permisos 0622 y2744.

• Para listar todos los archivos del directorio actual que han cambiado durante el periodo de 24 horasactual, escriba lo siguiente:

find . -ctime 1

• Para buscar archivos con varios enlaces, escriba lo siguiente:

find . -type f -links +1

De este modo, se listan los nombres de los archivos (-type f) que tienen más de un enlace (-links+1).

Nota: Cada directorio tiene, como mínimo, dos enlaces: la entrada en el directorio padre y su propiaentrada .(punto). Para obtener más información sobre enlaces de varios archivos, consulte el mandatoln.

• Para buscar todos los archivos que tienen exactamente 414 bytes de longitud, escriba lo siguiente:

find . -size 414c

Visualización del tipo de archivo (mandato file)Utilice el mandato file para leer los archivos que especifica el parámetro File o -fFileList, realizar unaserie de pruebas en cada uno e intentar clasificar los archivos por tipo. A continuación, el mandato grabalos tipos de archivos en salida estándar.

Si parece que un archivo está en ASCII, el mandato file examina los 512 primeros bytes y determina elidioma. Si parece que un archivo no está en ASCII, el mandato file intenta determinar, además, si setrata de un archivo de datos binarios o de un archivo de texto que contiene caracteres ampliados.

Si el parámetro File especifica un archivo de módulo de objeto o ejecutable y el número de versión esmayor que 0, el mandato file muestra la indicación de versión.

El mandato file utiliza el archivo /etc/magic para identificar archivos que tienen un número mágico;es decir, cualquier archivo que contenga una constante de tipo serie o numérico que indique el tipo.

Lo siguiente son ejemplos del modo de utilizar el mandato file:

• Para visualizar el tipo de información que contiene el archivo denominado myfile, escriba lo siguiente:

file myfile

De este modo, se muestra el tipo de archivo de myfile (por ejemplo, directorio, datos, texto ASCII,origen de programa C o archivo archivador).

198 AIX Versión 7.2: Gestión del sistema operativo

Page 205: AIX Versión 7 - IBM

• Para visualizar el tipo de cada archivo denominado en el archivo filenames.lst, que contiene unalista de nombres de archivo, escriba lo siguiente:

file -f filenames.lst

De este modo, se muestra el tipo de cada archivo denominado en el archivo filenames.lst. Cadanombre de archivo se debe visualizar en una línea separada.

• Para crear el archivo filenames.lst que contiene todos los nombres de archivo en el directorioactual, escriba lo siguiente:

ls > filenames.lst

Edite el archivo filenames.lst según desee.

Mandatos para visualizar el contenido de archivos (mandatos pg, more, page y cat)Los mandatos pg, more y page le permiten ver el contenido de un archivo y controlar la velocidad a laque han de visualizarse los archivos.

También puede utilizar el mandato cat para visualizar el contenido de uno o más archivos en la pantalla.La combinación del mandato cat y del mandato pg le permite leer el contenido de un archivo,mostrándose una pantalla completa cada vez.

También puede visualizar el contenido de los archivos utilizando la redirección de la entrada y la salida.

Conceptos relacionadosRedirección de la entrada y la salidaEl sistema operativo AIX permite manipular la entrada y salida (E/S) de datos hacia y desde el sistemautilizando mandatos y símbolos de E/S específicos.

Utilización del mandato pgUtilice el mandato pg para leer los archivos nombrados en el parámetro Archivo y los graba en salidaestándar, una pantalla cada vez.

Si especifica un guión (-) como el parámetro Archivo o ejecuta el mandato pg sin opciones, el mandatopg lee la entrada estándar. A cada pantalla le sigue un indicador. Si pulsa la tecla Intro, se mostrará otrapantalla. Los submandatos utilizados con el mandato pg le permiten revisar contenido que ya ha pasado.

Por ejemplo, para ver el contenido del archivo myfile de modo que se muestra una página cada vez,escriba lo siguiente:

pg myfile

Utilización de los mandatos more o pageUtilice el mandato more o page para visualizar texto continuo, mostrándose una pantalla cada vez.

Hace una pausa después de cada pantalla e imprime el nombre de archivo y el porcentaje completado(por ejemplo, myfile (7%)) en la parte inferior de la pantalla. Si, a continuación, pulsa la tecla Intro, elmandato more visualiza una línea adicional. Si pulsa la barra espaciadora, el mandato more visualiza otrapantalla de texto.

Nota: En algunos modelos de terminal, el mandato more borra la pantalla, en lugar de desplazarla, antesde visualizar la siguiente pantalla de texto.

Por ejemplo, para ver un archivo denominado myfile, escriba lo siguiente:

more myfile

Pulse la barra espaciadora para ver la pantalla siguiente.

Mandato catUtilice el mandato cat para leer cada parámetro Archivo por orden y grabarlo en salida estándar.

Vea los ejemplos siguientes:

Gestión del sistema operativo 199

Page 206: AIX Versión 7 - IBM

• Para visualizar el contenido del archivo notes, escriba lo siguiente:

cat notes

Si el archivo tiene más de 24 líneas de longitud, parte del archivo se desplaza fuera de la pantalla. Paraque un archivo se visualice página por página, utilice el mandato pg.

• Para visualizar el contenido de los archivos notes, notes2 y notes3, escriba lo siguiente:

cat notes notes2 notes3

Búsqueda de series de texto en archivos (mandato grep)Utilice el mandato grep para buscar el archivo especificado para el patrón indicado mediante elparámetro Patrón y grabar cada línea coincidente en salida estándar.

Lo siguiente son ejemplos del modo de utilizar el mandato grep:

• Para buscar un archivo denominado pgm.s para un patrón que contiene algunos de los caracterescomodín *, ^, ?, [, ], \(, \), \{, y \}, en este caso, las líneas que empiezan por cualquier letra en mayúsculao minúscula, escriba lo siguiente:

grep "^[a-zA-Z]" pgm.s

De este modo, se muestran todas las líneas del archivo pgm.s que empiezan por una letra.• Para visualizar todas las líneas de un archivo denominado sort.c que no coinciden con un patrón

concreto, escriba lo siguiente:

grep -v bubble sort.c

De este modo, se muestran todas las líneas que no contienen la palabra bubble en el archivo sort.c.• Para visualizar todas las líneas en la salida del mandato ls que coinciden con la serie staff, escriba lo

siguiente:

ls -l | grep staff

Clasificación de archivos de texto (mandato sort)Utilice el mandato sort para ordenar alfabéticamente líneas de los archivos especificados por losparámetros Archivo y grabar el resultado en la salida estándar.

Si el parámetro Archivo especifica varios archivos, el mandato sort concatena los archivos y los ordenaalfabéticamente como un archivo.

Nota: el mandato sort es sensible a las mayúsculas y minúsculas, y clasifica las letras en mayúsculasantes que las minúsculas (este comportamiento depende del entorno local).

En los ejemplos siguientes, el contenido del archivo denominado names es el siguiente:

martacarlosjoyceendricamelanie

y el contenido del archivo denominado states es el siguiente:

texascoloradoohio

• Para visualizar el contenido ordenado del archivo denominado names, escriba lo siguiente:

ordenar nombres

El sistema mostrará una información parecida a esta:

200 AIX Versión 7.2: Gestión del sistema operativo

Page 207: AIX Versión 7 - IBM

carlosendricajoycemartamelanie

• Para visualizar el contenido ordenado de los archivos names y states, escriba lo siguiente:

ordenar estados nombres

El sistema mostrará una información parecida a esta:

coloradocarlosendricajoycemartamelanieohiotexas

• Para sustituir el contenido original del archivo denominado names por el contenido ordenado, escriba losiguiente:

sort -o names names

De este modo, se sustituye el contenido del archivo names por los mismos datos, pero en el orden declasificación.

Comparación de archivos (mandato diff)Utilice el mandato diff para comparar archivos de texto. Puede comparar archivos únicos o el contenidode directorios.

Cuando el mandato diff se ejecuta en archivos normales, y cuando compara archivos de texto dedirectorios diferentes, el mandato diff indica las líneas que se deben cambiar en el archivo de modo quecoincidan.

Lo siguiente son ejemplos del modo de utilizar el mandato diff:

• Para comparar dos archivos, escriba lo siguiente:

diff chap1.bak chap1

Muestra las diferencias entre los archivos chap1.bak y chap1.• Para comparar dos archivos e ignorar las diferencias con respecto a la cantidad de espacio en blanco,

escriba lo siguiente:

diff -w prog.c.bak prog.c

Si los dos archivos sólo difieren en el número de espacios y separadores entre palabras, el mandatodiff -w considera que los archivos son iguales.

Cálculo de las palabras, líneas y bytes de los archivos (mandato wc)Utilice el mandato wc para contar el número de líneas, palabras y bytes de los archivos especificados porel parámetro Archivo.

Si no se especifica un archivo en el parámetro Archivo, se utiliza la entrada estándar. El mandato graba elresultado en salida estándar y mantiene un recuento total de todos los archivos indicados. Si seespecifican distintivos, el orden de los distintivos determina el orden de la salida. Una palabra se definecomo una serie de caracteres delimitados por espacios, tabulaciones o caracteres de nueva línea.

Cuando se especifican archivos en la línea de mandatos, los nombres de éstos se imprimen junto con losrecuentos.

Vea los ejemplos siguientes:

Gestión del sistema operativo 201

Page 208: AIX Versión 7 - IBM

• Para visualizar el número de líneas, de palabras y de bytes del archivo denominado chap1, escriba losiguiente:

wc chap1

Con ello se visualiza el número de líneas, palabras y bytes del archivo chap1.• Para visualizar sólo el número de bytes y de palabras, escriba lo siguiente:

wc -cw chap*

Esto muestra el número de bytes y palabras de cada archivo cuyo nombre comience por chap ymuestra los totales.

Visualización de las primeras líneas de los archivos (mandato head)Utilice el mandato head para grabar en la salida estándar las primeras líneas de cada archivoespecificado o de la entrada estándar.

Si no se especifica ningún distintivo con el mandato head, por omisión se visualizan las 10 primeraslíneas.

Por ejemplo, para que se visualicen las cinco primeras línea del archivo Test, escriba lo siguiente:

head -5 Test

Visualización de las últimas líneas de los archivos (mandato tail)Utilice el mandato tail para grabar el archivo especificado por el parámetro Archivo en la salidaestándar empezando en un punto especificado.

Vea los ejemplos siguientes:

• Para visualizar las 10 últimas líneas del archivo notes, escriba lo siguiente:

tail notes

• Para especificar el número de líneas que se deben empezar a leer desde el final del archivo notes,escriba lo siguiente:

tail -20 notes

• Para visualizar el archivo notes mostrándose una página cada vez, empezando desde el byte número200, escriba lo siguiente:

tail -c +200 notes | pg

• Para seguir el crecimiento del archivo denominado accounts, escriba lo siguiente:

tail -f accounts

Esto visualiza las 10 últimas líneas del archivo accounts. El mandato tail va visualizando líneas amedida que se añaden al archivo accounts. La visualización seguirá produciéndose hasta que pulse lasecuencia de teclas que detiene la visualización (Control-C).

Corte de secciones de archivos de texto (mandato cut)Utilice el mandato cut para grabar en la salida estándar los bytes, caracteres o campos seleccionados encada línea de un archivo.

Vea los ejemplos siguientes:

• Para visualizar varios campos de cada línea de un archivo, escriba lo siguiente:

cut -f1,5 -d: /etc/passwd

202 AIX Versión 7.2: Gestión del sistema operativo

Page 209: AIX Versión 7 - IBM

Esto muestra el nombre de inicio de sesión y los campos de nombre de usuario completos del archivode contraseñas del sistema. Son los campos primero y quinto (-f1,5) separados por caracteres de dospuntos (-d:).

• Si el aspecto del archivo /etc/passwd es el siguiente:

su:*:0:0:Usuario con privilegios especiales:/:/usr/bin/shdaemon:*:1:1::/etc:bin:*:2:2::/usr/bin:sys:*:3:3::/usr/src:adm:*:4:4:system administrator:/var/adm:/usr/bin/shpierre:*:200:200:Pierre Harper:/home/pierre:/usr/bin/shjoan:*:202:200:Joan Brown:/home/joan:/usr/bin/sh

el mandato cut produce:

su:Usuario con privilegios especialesdaemon:bin:sys:adm:system administradorpierre:Pierre Harperjoan:Joan Brown

Pegado de secciones de archivos de texto (mandato paste)Utilice el mandato paste para fusionar las líneas de hasta 12 archivos en un único archivo.

Vea los ejemplos siguientes:

• Si dispone de un archivo llamado names que contiene el siguiente texto:

racheljerrymarklindascott

y de otro archivo llamado places que contiene el texto siguiente:

New YorkAustinChicagoBoca RatonSeattle

y otro archivo llamado dates que contiene el siguiente texto:

February 5March 13June 21July 16November 4

Para pegar el texto de los archivos names, places y dates, escriba lo siguiente:

paste names places dates > npd

Esto crea un archivo llamado npd que contiene los datos del archivo names en una columna, el archivoplaces en otra columna y el archivo dates en una tercera columna. Ahora, el archivo npd contiene losiguiente:

rachel New York February 5jerry Austin March 13mark Chicago June 21linda Boca Raton July 16scott Seattle November 4

Un carácter de tabulación separa el nombre, el lugar y la fecha en cada línea. Estas columnas no estánalineadas, ya que las detenciones del tabulador se han definido en cada octava columna.

• Para separar las columnas con un carácter distinto de una tabulación, escriba lo siguiente:

Gestión del sistema operativo 203

Page 210: AIX Versión 7 - IBM

paste -d"!@" names places dates > npd

Esto alterna ! y @ como separadores de columnas. Si los archivos names, places y dates son igualesa los del ejemplo 1, el archivo npd contiene lo siguiente:

rachel!New York@February 5jerry!Austin@March 13mark!Chicago@June 21linda!Boca Raton@July 16scott!Seattle@November 4

• Para listar el directorio actual en cuatro columnas, escriba lo siguiente:

ls | paste - - - -

Cada guión (-) indica al mandato paste que cree una columna que contenga los datos que se han leídode la entrada estándar. La primera línea se sitúa en la primera columna, la segunda línea en la segundacolumna, etc.

Numeración de las líneas de archivos de texto (mandato nl)Utilice el mandato nl para leer el archivo especificado (por omisión, la entrada estándar), numerar laslíneas de la entrada y grabar las líneas numeradas en la salida estándar.

Vea los ejemplos siguientes:

• Para numerar solamente las líneas que no están en blanco, escriba lo siguiente:

nl chap1

Con ello se muestra un listado numerado de chap1, donde sólo se numeran las líneas que no están enblanco de las secciones del cuerpo.

• Para numerar todas las líneas, escriba lo siguiente:

nl -ba chap1

Con ello se numeran todas las líneas del archivo denominado chap1, incluidas las líneas en blanco.

Eliminación de columnas de archivos de texto (mandato colrm)Utilice el mandato colrm para eliminar las columnas especificadas de un archivo. La entrada se toma dela entrada estándar. La salida se envía a la salida estándar.

Si se llama al mandato con un parámetro, se eliminarán las columnas de cada línea, desde la columnaespecificada hasta la última columna. Si se llama al mandato con dos parámetros, se eliminarán lascolumnas, desde la primera columna especificada hasta la segunda columna especificada.

Nota: La numeración de las columnas empieza por la columna 1.

Vea los ejemplos siguientes:

• Para eliminar columnas del archivo text.fil, escriba lo siguiente:

colrm 6 < text.fil

Si text.fil contiene:

123456789

el mandato colrm muestra:

12345

Enlaces de archivo y directorioLos enlaces son conexiones entre un nombre de archivo y un número de referencia de nodo de índice(número de inodo), la representación interna de un archivo. Puesto que las entradas de directorio

204 AIX Versión 7.2: Gestión del sistema operativo

Page 211: AIX Versión 7 - IBM

contienen nombres de archivos emparejados con números de inodo, cada entrada de directorio es unenlace.

El número de inodo identifica realmente al archivo, no al nombre de archivo. Mediante la utilización deenlaces, cualquier número de inodo o archivo puede conocerse por muchos nombres distintos. Porejemplo, el número de inodo 798 contiene una memorándum acerca de las ventas de junio de la oficinade Omaha. Actualmente, la entrada de directorio para este memorándum es la siguiente:

Número deinodo

Nombre de archivo

798 memorándum

Puesto que esta información está relacionada con la información que se almacena en los directoriossales y omaha, el enlace se utiliza para compartir la información donde es necesario. Por medio de lautilización del mandato ln se crean los enlaces con dichos directorios. Ahora, el archivo tiene tresnombres de archivo, que son los siguientes:

Número deinodo

Nombre de archivo

798 memorándum

798 sales/june

798 omaha/junesales

Cuando utiliza el mandato pg o cat para ver el contenido de cualquiera de los tres nombres de archivos,se visualiza la misma información. Si edita el contenido del número de inodo de cualquiera de los tresnombres de archivos, el contenido de los datos que visualizarán todos los archivos reflejarán los cambiosrealizados.

Tipos de enlacesHay dos tipos de enlaces: fijo y simbólico.

Los enlaces se crean con el mandato ln y pueden ser de los tipos siguientes:

Elemento Descripción

enlace fijo Permite el acceso a los datos de un archivos desde un nombre de archivo nuevo. Losenlaces fijos garantizan la existencia de un archivo. Cuando se elimina el último enlacefijo, se suprimen el número de inodo y sus datos. Sólo pueden crearse enlaces fijosentre archivos que se encuentran en el mismo sistema de archivos.

enlacesimbólico

Permite el acceso a datos de otros sistemas de archivos desde un nombre de archivonuevo. El enlace simbólico es un tipo especial de archivo que contiene un nombre devía de acceso. Cuando un proceso encuentra un enlace simbólico, puede que elproceso busque en dicha vía de acceso. Los enlaces simbólicos no protegen a unarchivo para evitar su supresión del sistema de archivos.

Nota: El usuario que crea un archivo conserva su propiedad con independencia del número de enlacesque se creen. Sólo el propietario del archivo o el usuario root pueden establecer la modalidad de accesopara dicho archivo. Sin embargo, pueden realizarse cambios en el archivo desde un nombre de archivoenlazado con la modalidad de acceso adecuada.

Un archivo o directorio existirá en tanto que exista un enlace fijo con el número de inodo de ese archivo.En el largo listado visualizado por el mandato ls -l, se proporciona el número de enlaces fijos con cadaarchivo y subdirectorio. El sistema operativo trata todos los enlaces fijos de igual modo,independientemente del enlace que se haya creado primero.

Enlace de archivos (mandato ln)El enlace de archivos utilizando el mandato ln es la forma correcta de trabajar con los mismos datos enmás de un lugar.

Gestión del sistema operativo 205

Page 212: AIX Versión 7 - IBM

Los enlaces se crean al proporcionar nombres alternativos al archivo original. La utilización de enlacespermite compartir un archivo grande, por ejemplo una base de datos o una lista de correo, entre muchosusuarios sin tener que hacer copias de dicho archivo. Los enlaces no sólo ahorran espacio de disco, sinoque los cambios efectuados se reflejan automáticamente en todos los archivos enlazados.

El mandato ln enlaza el archivo designado en el parámetro ArchivoOrigen con el archivo designado en elparámetro ArchivoDestino o con el mismo nombre de archivo en otro directorio especificado por elparámetro DirectorioDestino. Por omisión, el mandato ln crea enlaces fijos. Para utilizar el mandato ln afin de crear enlaces simbólicos, añada el distintivo -s.

Nota: No se pueden enlazar archivos entre sistemas de archivos sin utilizar el distintivo -s.

Si va a enlazar un archivo con un nombre nuevo, puede listar únicamente un archivo. Si va a enlazar conun directorio, puede listar más de un archivo.

El parámetro ArchivoDestino es opcional. Si no designa un archivo de destino, el mandato ln crea unarchivo en el directorio actual. El archivo nuevo hereda el nombre del archivo designado en el parámetroArchivoOrigen.

Vea los ejemplos siguientes:

• Para crear un enlace con un archivo denominado chap1, escriba lo siguiente:

ln -f chap1 intro

Ello enlaza chap1 con el nuevo nombre, intro. Cuando se utiliza el distintivo -f, se crea el nombre dearchivo intro, si no existe. Si intro existe, el archivo se sustituye por un enlace con chap1. El nombrede archivo chap1 y el nombre de archivo intro harán referencia al mismo archivo.

• Para enlazar un archivo denominado index con el mismo nombre en otro directorio denominadomanual, escriba lo siguiente:

ln index manual

Ello enlaza index con el nuevo nombre, manual/index.• Para enlazar varios archivos con nombres de otro directorio, escriba lo siguiente:

ln chap2 jim/chap3 /home/manual

Esto enlaza chap2 con el nuevo nombre /home/manual/chap2 y jim/chap3 con /home/manual/chap3.

• Para utilizar el mandato ln con caracteres de patrones de coincidencia, escriba lo siguiente:

ln manual/* .

Nota: Debe dejar un espacio en blanco entre el asterisco y el punto.

Esto enlaza todos los archivos del directorio manual en el directorio actual, punto (.),proporcionándoles los mismos nombres que tienen en el directorio manual.

• Para crear un enlace simbólico, escriba lo siguiente:

ln -s /tmp/toc toc

Esto crea el enlace simbólico, toc, en el directorio actual. El archivo toc apunta al archivo /tmp/toc. Siexiste el archivo /tmp/toc, el mandato cat toc lista su contenido.

• Para obtener resultados idénticos sin diseñar el parámetro ArchivoDestino, escriba lo siguiente:

ln -s /tmp/toc

Mandato para eliminar archivos enlazadosEl mandato rm elimina el enlace del nombre de archivo que indique.

206 AIX Versión 7.2: Gestión del sistema operativo

Page 213: AIX Versión 7 - IBM

Cuando se suprime un nombre de archivo de varios nombres de archivos con enlaces fijos, el archivo nose suprime completamente, pues sigue existiendo con otro nombre. Cuando se ha eliminado el últimoenlace con un número de inodo, los datos también se eliminan. El número de inodo está disponible acontinuación para su reutilización en el sistema.

Archivos DOSEl sistema operativo AIX permite trabajar con archivos DOS en el sistema.

Copie en un disquete los archivos DOS con los que desee trabajar. El sistema puede leer estos archivosen un directorio del sistema operativo base en el formato correcto y nuevamente en el disquete enformato de DOS.

Nota: Los caracteres comodín * y ? (asterisco y signo de interrogación) no funcionan correctamente conlos mandatos que se explican en este apartado (aunque sí funcionan correctamente con el shell delsistema operativo base). Si no especifica una extensión de archivo, el nombre de archivo se interpretacomo si hubiera especificado una extensión en blanco.

Copia de archivos DOS en archivos del sistema operativo baseUtilice el mandato dosread para copiar el archivo DOS especificado en el archivo especificado delsistema operativo base.

Nota: Se utilizan los convenios de denominación de archivos DOS con una excepción. Puesto que elcarácter de barra inclinada invertida (\) puede tener un significado especial para el sistema operativobase, utilice un carácter de barra inclinada (/) como delimitador para especificar nombres desubdirectorio en un nombre de vía de acceso DOS.

Vea los ejemplos siguientes:

• Para copiar un archivo de texto denominado chap1.doc de un disquete DOS en el sistema de archivosoperativo base, escriba lo siguiente:

dosread -a chap1.doc chap1

Esto copia el archivo de texto DOS \CHAP1.DOC del dispositivo predeterminado /dev/fd0 en elarchivo del sistema operativo base chap1 del directorio actual.

• Para copiar un archivo binario de un disquete DOS en el sistema de archivos operativo base, escriba losiguiente:

dosread -D/dev/fd0 /survey/test.dta /home/fran/testdata

Esto copia el archivo de datos DOS \SURVEY\TEST.DTA de /dev/fd0 en el archivo del sistemaoperativo base /home/fran/testdata.

Copia de archivos del sistema operativo base en archivos DOSUtilice el mandato doswrite para copiar el archivo especificado del sistema operativo base en el archivoDOS especificado.

Nota: Se utilizan los convenios de denominación de archivos DOS con una excepción. Puesto que elcarácter de barra inclinada invertida (\) puede tener un significado especial para el sistema operativobase, utilice un carácter de barra inclinada (/) como delimitador para especificar nombres desubdirectorio en un nombre de vía de acceso DOS.

Vea los ejemplos siguientes:

• Para copiar un archivo de texto denominado chap1 del sistema de archivos operativo base en undisquete DOS, escriba lo siguiente:

doswrite -a chap1 chap1.doc

Esto copia el archivo del sistema operativo base chap1 en el directorio actual para el archivo de textoDOS \CHAP1.DOC en /dev/fd0.

Gestión del sistema operativo 207

Page 214: AIX Versión 7 - IBM

• Para copiar un archivo binario denominado /survey/test.dta desde el sistema de archivosoperativo base en un disquete DOS, escriba lo siguiente:

doswrite -D/dev/fd0 /home/fran/testdata /survey/test.dta

Esto copia el archivo de datos del sistema operativo base /home/fran/testdata en el archivo DOS\SURVEY\TEST.DTA en /dev/fd0.

Supresión de archivos DOSUtilice el mandato dosdel para suprimir el archivo DOS especificado.

Nota: Se utilizan los convenios de denominación de archivos DOS con una excepción. Puesto que elcarácter de barra inclinada invertida (\) puede tener un significado especial para el sistema operativobase, utilice el carácter de barra inclinada (/) como delimitador para especificar nombres de subdirectorioen un nombre de vía de acceso DOS.

El mandato dosdel convierte los caracteres en minúsculas del nombre del archivo o directorio encaracteres en mayúsculas antes de comprobar el disco. Puesto que se supone que todos los nombres dearchivo son nombres completos (no relativos) de vías de acceso, no es necesario añadir la barra inclinadainicial (/).

Por ejemplo, para suprimir un archivo DOS denominado file.ext del dispositivo predeterminado(/dev/fd0), escriba lo siguiente:

dosdel file.ext

Visualización del contenido de un directorio DOSUtilice el mandato dosdir para visualizar información acerca de los archivos o directorios DOSespecificados.

Nota: Se utilizan los convenios de denominación de archivos DOS con una excepción. Puesto que elcarácter de barra inclinada invertida (\) puede tener un significado especial para el sistema operativobase, utilice el carácter de barra inclinada (/) como delimitador para especificar nombres de subdirectorioen un nombre de vía de acceso DOS.

El mandato dosdir convierte los caracteres en minúsculas del nombre del archivo o directorio encaracteres en mayúsculas antes de comprobar el disco. Puesto que se presupone que todos los nombresde archivos son nombres de vías de acceso completos (no relativos), no es necesario añadir la barrainclinada inicial (/).

Por ejemplo, para leer un directorio de los archivos DOS en /dev/fd0, escriba lo siguiente:

dosdir

El mandato devuelve los nombres de los archivos e información acerca del espacio del disco, de formasimilar a como se muestra a continuación.

PG3-25.TXTPG4-25.TXTPG5-25.TXTPG6-25.TXTEspacio libre: 312320 bytes

Resumen de mandatos para archivosLos siguientes mandatos son para archivos, procedimientos de manejo de archivos y archivos DOS.También existe una lista de mandatos para enlazar archivos y directorios.

Tabla 58. Mandatos para archivos

Elemento Descripción

* Comodín, sustituye a cualquier carácter

208 AIX Versión 7.2: Gestión del sistema operativo

Page 215: AIX Versión 7 - IBM

Tabla 58. Mandatos para archivos (continuación)

Elemento Descripción

? Comodín, sustituye a cualquier carácter individual

[ ] Metacaracteres, sustituye a caracteres delimitados.

Tabla 59. Mandatos para procedimientos de manejo de archivos

Elemento Descripción

cat Concatena o visualiza archivos

cmp Compara dos archivos

colrm Extrae columnas de un archivo

cp Copia archivos

cut Graba los bytes, caracteres o campos seleccionados de cada línea de un archivo

diff Compara archivos de texto

file Determina el tipo de archivo

find Busca archivos que tengan una expresión coincidente

grep Busca un patrón en un archivo

head Visualiza las primeras líneas o bytes de un archivo o archivos

more Visualiza texto continuo, pantalla por pantalla, en una pantalla de visualización

mv Mueve archivos

nl Numera las líneas de un archivo

pg Formatea archivos en la pantalla

rm Elimina (elimina el enlace de) archivos o directorios

paste Fusiona las líneas de varios archivos o las líneas siguientes en un archivo

sort Ordena archivos, fusiona archivos que ya se han ordenado y comprueba los archivospara determinar si se han ordenado

tail Graba un archivo en la salida estándar, empezando por un punto especificado

wc Cuenta el número de líneas, de palabras y de bytes de un archivo

Tabla 60. Mandato para enlazar archivos y directorios

Elemento Descripción

ln Enlaza archivos y directorios

Tabla 61. Mandatos para archivos DOS

Elemento Descripción

dosdel Suprime archivos de DOS

dosdir Lista el directorio de los archivos de DOS

dosread Copia archivos de DOS en archivos del Sistema operativo base

doswrite Copia archivos del Sistema operativo base en archivos de DOS

Gestión del sistema operativo 209

Page 216: AIX Versión 7 - IBM

Shells del sistema operativoLa interfaz con el sistema operativo se denomina shell.

El shell es la capa más externa del sistema operativo. Los shells incorporan un lenguaje de programaciónpara controlar procesos y archivos, además de iniciar y controlar otros programas. El shell gestiona lainteracción entre el usuario y el sistema operativo solicitándole la entrada, interpretando dicha entradapara el sistema operativo y gestionando cualquier resultado de salida procedente del sistema operativo.

Los shells ofrecen un método para comunicarse con el sistema operativo. Esta comunicación tiene lugarde forma interactiva (la entrada desde el teclado se ejecuta inmediatamente) o como un script de shell.Un script de shell es una secuencia de mandatos del shell y del sistema operativo que se almacena en unarchivo.

Cuando se inicie la sesión en el sistema, éste localizará el nombre de un programa de shell a ejecutar.Después de ejecutarse, el shell visualiza un indicador de mandatos. Este indicador suele ser un $ (signode dólar). Cuando escriba un mandato en el indicador y pulse la tecla Intro, el shell evaluará el mandato eintentará ejecutarlo. Según las instrucciones del mandato, el shell grabará la salida del mandato en lapantalla o lo dirigirá a la salida. A continuación, restaura el indicador de mandatos para que escriba otromandato.

Una línea de mandatos es la línea en la que escribe. Contiene el indicador del shell. El formato básico decada línea es el siguiente:

$ Mandato Argumento(s)

El shell considera que la primera palabra de un línea de mandatos (hasta el primer espacio en blanco) esel primer mandato y que todas las palabras posteriores son argumentos.

Nota: Cuando se mueve o cambia el nombre de libc.a, se visualiza el error Matado desde el shellporque no hay ningún archivo libc.a disponible para que el sistema cargue y ejecute los programas deutilidad. El mandato recsh, invoca el shell de recuperación, que proporciona la posibilidad de cambiar elnombre a libc.a si se mueve accidentalmente.

Tareas relacionadasListado de los mandatos entrados anteriormente (mandato history)Utilice el mandato history para listar los mandatos que ha entrado anteriormente.

Conceptos del shellAntes de empezar a trabajar con los diferentes tipos de shells que están disponibles para AIX, debeconocer la terminología y las características básicas.

Shells disponiblesLos siguientes shells se proporcionan con AIX.

• Shell Korn (se inicia con el mandato ksh)• Shell Bourne (se inicia con el mandato bsh)• Shell restringido (una versión limitada del shell Bourne que se inicia con el mandato Rsh)• Shell POSIX (también denominado shell Korn y que se inicia con el mandato psh)• Shell restringido para el shell Korn (ksh y ksh93). Los shells ksh y ksh93 se proporcionan con sus

equivalentes de shell restringido rksh y rksh93.• Shell por omisión (se inicia con el mandato sh)• Shell C (se inicia con el mandato csh )• Shell fiable (una versión limitada del shell Korn que se inicia con el mandato tsh)• Shell remoto (se inicia con el mandato rsh)

El shell de inicio de sesión hace referencia al shell que se carga cuando inicia la sesión del sistema. Elshell de inicio de sesión se establece en el archivo /etc/passwd. El shell Korn es el shell de inicio desesión del sistema operativo estándar y es compatible con las versiones anteriores del shell Bourne.

210 AIX Versión 7.2: Gestión del sistema operativo

Page 217: AIX Versión 7 - IBM

El shell Korn (/usr/bin/ksh) se define como el shell por defecto. El shell por omisión o estándar hacereferencia a los shells que se inician y cuyo enlace se establece con el mandato /usr/bin/sh. El shellBourne (/usr/bin/sh) se puede sustituir como el shell por omisión. El shell POSIX, que se invocamediante el mandato /usr/bin/psh, reside como un enlace con el mandato /usr/bin/sh.

Conceptos relacionadosshell BourneEl shell Bourne es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos.Mandatos del shell Korn o shell POSIXEl shell Korn es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Seajusta a la Interfaz de Sistema Operativo Portable para Entornos del Sistema (POSIX), un estándarinternacional para sistemas operativos.

Terminología acerca de los shellsLos términos y definiciones de esta tabla sirven de ayuda para comprender los shells.

Elemento Descripción

blank Un blanco es uno de los caracteres de la clase de caracteres blancos definidaen la categoría LC_CTYPE. En el shell POSIX, un blanco es una tabulación o unespacio.

mandato incorporado Un mandato que el shell ejecuta sin tener que buscarlo y que crea un procesoseparado.

mandato Una secuencia de caracteres en la sintaxis del lenguaje del shell. El shell leecada uno de los mandatos y lleva a cabo la acción deseada directamente ollamando a programas de utilidad independientes.

comentario Cualquier palabra que empiece por una almohadilla (#). La palabra y todos loscaracteres que le siguen, hasta el siguiente carácter de nueva línea, se pasanpor alto.

identificador Una secuencia de letras, dígitos o subrayados del conjunto de caracteresportables, que comienzan por una letra o subrayado. El primer carácter de unidentificador no debe ser un dígito. Los identificadores se utilizan comonombres para alias, funciones y parámetros especificados.

Gestión del sistema operativo 211

Page 218: AIX Versión 7 - IBM

Elemento Descripción

lista Secuencia de uno o más conductos separados por uno de los símbolossiguientes: punto y coma (;), ampersand (&), doble ampersand (&&) o doblebarra (||). Opcionalmente, la lista puede acabar con uno de los símbolossiguientes: punto y coma (;), ampersand (&) o barra ampersand (|&).;

Procesa secuencialmente el conducto anterior. El shell ejecuta cadamandato por orden y espera a que se complete el último mandato.

&Procesa asíncronamente el conducto anterior. El shell ejecuta cadamandato por orden, procesando el conducto en segundo plano sin esperara que se complete.

|&Procesa asíncronamente el área de interconexión de memoria anterior yestablece un conducto bidireccional con el shell padre. El shell ejecutacada mandato por orden, procesando el conducto en segundo plano sinesperar a que se complete. El shell padre puede leer y grabar en la salidaestándar del mandato creado utilizando los mandatos read -p y print -p.Sólo uno de dichos mandatos puede estar activo al mismo tiempo.

&&Procesa la lista que sigue a este símbolo sólo si el conducto anteriordevuelve un valor de salida cero (0).

||Procesa la lista que sigue a este símbolo solo si el conducto anteriordevuelve un valor de salida distinto de cero.

El punto y coma (;), ampersand (&) y barra ampersand (|&) tienen unaprioridad menor que el doble ampersand (&&) y la doble barra (||). Lossímbolos ;, & y |& tienen igual prioridad entre sí. Los símbolos && y || tienenla misma prioridad. Para delimitar dos mandatos en una lista, pueden utilizarseuno o más caracteres de nueva línea en lugar de un carácter de punto y coma.

Nota: El símbolo |& sólo es válido en el shell Korn.

metacaracteres Cada metacarácter tiene un significado especial para el shell y provoca laterminación de una palabra a no ser que esté limitada. Los metacaracteres son:conducto (|), ampersand (&), punto y coma (;), signo menor que (<), signomayor que (>), paréntesis izquierdo ((), paréntesis derecho ()), signo de dólar($), acento grave (`), barra inclinada invertida (\), comilla simple ('), comillasdobles ("), carácter de nueva línea, carácter de espacio y carácter detabulación. Todos los caracteres delimitados entre comillas simples seconsideran delimitados y el shell los interpreta literalmente. El significadoespecial de los metacaracteres se conserva si no se delimitan. (Losmetacaracteres también se denominan metacaracteres de analizador en elshell C.)

lista de asignación deparámetros

Incluye una o más palabras con el formato Identificador=Valor en el que losespacios que aparecen alrededor del signo de igual (=) deben estarcompensados. Es decir, deben utilizarse blancos iniciales y finales o sinblancos.

Nota: En el shell C, la lista de asignación de parámetros tiene el formatosetIdentificador=Valor. Los espacios alrededor del signo igual (=) sonnecesarios.

212 AIX Versión 7.2: Gestión del sistema operativo

Page 219: AIX Versión 7 - IBM

Elemento Descripción

conducto Secuencia de uno o más mandatos separados por un conducto (|). Cadamandato del conducto, excepto posiblemente el último mandato, se ejecutacomo un proceso independiente. No obstante, la salida estándar de cadamandato que está conectado mediante un conducto pasa a ser la entradaestándar del siguiente mandato de la secuencia. Si se delimita una lista entreparéntesis, se ejecuta como un solo mandato que funciona en un subshellindependiente.

si la palabra reservada ! no precede al conducto, el estado de la salida será elestado de salida del último mandato especificado en el conducto. De locontrario, el estado de salida es el operador lógico NOT del estado de salida delúltimo mandato. Es decir, si el último mandato devuelve cero, el estado desalida será 1. Si el último mandato devuelve un valor superior a cero, el estadode salida será cero.

El formato de un conducto es el siguiente:

[!] mandato1 [ | mandato2 ...]

Nota: En versiones anteriores del shell Bourne se utilizaba el acento circunflejo(^) para indicar un conducto.

variable de shell Un nombre o un parámetro al que se asigna un valor. Asigne una variableescribiendo el nombre de variable, un signo igual que (=) y, a continuación, elvalor. El nombre de la variable se puede sustituir por el valor asignadoprecediendo el nombre de la variable con un signo de dólar ($). Las variablesson especialmente útiles para crear una notación abreviada para un nombre devía de acceso largo, como $HOME para el directorio inicial. Una variablepredefinida es aquella a que el shell asigna su valor. Una variable definida porel usuario es aquella a la que un usuario asigna su valor.

mandato simple Una secuencia de listas y redirecciones de asignaciones de parámetrosopcionales en cualquier orden. Van, opcionalmente, seguidos de mandatos,palabras y redirecciones. Terminan con ;, |, &, ||, &&, |& o un carácter denueva línea. El nombre del mandato se pasa como parámetro 0 (tal comodefine la subrutina exec). El valor de un mandato simple es su estado de salidade cero si termina normalmente o distinto de cero si termina anormalmente.Las subrutinas sigaction, sigvec o signal incluyen una lista de valores delestado de salida de señal.

subshell Un shell que se ejecuta como un hijo del shell de inicio de sesión o shell actual.

carácter comodín También se conoce como carácter de coincidencia de patrón. El shell los asociacon valores asignados. Los comodines básicos son ?, *, [set] y [!set]. Loscaracteres comodín son especialmente útiles cuando se realiza una sustituciónde nombre de archivo.

palabra Una secuencia de caracteres que no contiene blancos. Las palabras estánseparadas por uno o más metacaracteres.

Especificación de un shell para un archivo de scriptCuando ejecuta un script de shell ejecutable en el shell Korn (el shell POSIX) o el shell Bourne, losmandatos del script se ejecutan bajo el control del shell actual (el shell desde el que se inicia el script), amenos que se especifique otro shell. Cuando se ejecuta un script de shell ejecutable en el shell C, losmandatos del script se ejecutan bajo el control del shell Bourne (/usr/bin/bsh), a menos que seespecifique otro shell.

Puede ejecutar un script de shell es un shell específico; para ello, incluya el shell en el script de shell.

Gestión del sistema operativo 213

Page 220: AIX Versión 7 - IBM

Para ejecutar un script de shell ejecutable en un shell específico, escriba #!VíaAcceso en la primeralínea del script de shell y, a continuación, pulse Intro. Los caracteres #! identifican el tipo de archivo. Lavariable VíaAcceso especifica el nombre de vía de acceso del shell desde el que se ejecuta el script deshell.

Por ejemplo, para ejecutar el script bsh en el shell Bourne, escriba lo siguiente:

#!/usr/bin/bsh

Cuando un mandato de shell precede a un nombre de archivo de script de shell, el shell especificado en lalínea de mandatos altera temporalmente a cualquier shell especificado en el propio archivo de script. Porlo tanto, al escribir ksh myfile y pulsar Intro, se ejecuta el archivo denominado myfile bajo el controldel shell Korn, aunque la primera línea de myfile sea #!/usr/bin/csh.

Funciones del shellExisten ventajas de utilizar el shell como interfaz para el sistema.

Las principales ventajas de interactuar con el sistema por medio de un shell son las siguientes:

• Sustitución de comodines en nombres de archivos (coincidencia de patrones)

Ejecuta mandatos en un grupo de archivos especificando un patrón de coincidencia, en lugar deespecificar un nombre de archivo real.

Para obtener más información, consulte:

– “Sustitución de nombre de archivo en el shell Korn o shell POSIX” en la página 237– “Sustitución de nombres de archivo en el shell Bourne” en la página 273– “Sustitución de nombres de archivo en el shell C” en la página 291

• Proceso en segundo plano

Define tareas prolongadas que se ejecutarán en segundo plano, liberando el terminal para el procesointeractivo concurrente.

Para obtener más información, consulte el mandato bg en los apartados siguientes:

– “Control de trabajos en el shell Korn o el shell POSIX” en la página 254– “Mandatos incorporados del shell C” en la página 300

Nota: El shell Bourne no soporta el control de trabajos.• Creación de alias de mandatos

Proporciona un alias a un mandato o frase. Cuando el shell encuentra un seudónimo en la línea demandatos o en un script de shell, sustituye el texto al que se refiere el seudónimo.

Para obtener más información, consulte:

– “Alias de mandatos en el shell Korn o shell POSIX” en la página 268– “Sustitución de alias en el shell C” en la página 289

Nota: El shell Bourne no soporta la creación de alias de mandatos.• Histórico de mandatos

Registra los mandatos que especifica en un archivo histórico. Puede utilizar este archivo para acceder,modificar y volver a emitir fácilmente cualquier mandato listado.

Para obtener más información, consulte el mandato history en los apartados siguientes:

– “Histórico de mandatos del shell Korn o shell POSIX” en la página 268– “Mandatos incorporados del shell C” en la página 300– “Sustitución del histórico en el shell C” en la página 310

Nota: El shell Bourne no soporta el mandato history.• Sustitución de nombres de archivos

214 AIX Versión 7.2: Gestión del sistema operativo

Page 221: AIX Versión 7 - IBM

Genera automáticamente una lista de nombres de archivo en una línea de mandatos utilizandocaracteres coincidentes con un patrón.

Para obtener más información, consulte:

– “Sustitución de nombre de archivo en el shell Korn o shell POSIX” en la página 237– “Sustitución de nombres de archivo en el shell Bourne” en la página 273– “Sustitución de nombres de archivo en el shell C” en la página 291

• Redirección de la entrada y la salida

Redirige la entrada del teclado y redirige la salida a un archivo o dispositivo distinto del terminal. Porejemplo, la entrada para un programa puede obtenerse de un archivo y redirigirse a la impresora o aotro archivo.

Para obtener más información, consulte:

– “Redirección de la entrada y la salida en el shell Korn o POSIX” en la página 238– “Redirección de la entrada y la salida en el shell Bourne” en la página 273– “Redirección de la entrada y la salida en el shell C” en la página 313

• Conductos

Enlaza cualquier número de mandatos para componer un programa complejo. La salida estándar de unprograma pasa a ser la entrada estándar del siguiente.

Para obtener más información, consulte la definición de conducto en el apartado “Terminología acercade los shells” en la página 211 .

• Sustitución de variables de shell

Almacena datos de variables definidas por el usuario y variables de shell predefinidas.

Para obtener más información, consulte:

– “Sustitución de parámetros en el shell Korn o shell POSIX” en la página 235– “Sustitución de variables en el shell Bourne” en la página 283– “Sustitución de variables en el shell C” en la página 290

Conceptos relacionadosMandatosAlgunos mandatos pueden entrarse simplemente escribiendo una palabra. También es posible combinarmandatos de forma que la salida de un mandato se convierta en la entrada para otro mandato.

Clases de caracteresPuede utilizar clases de caracteres para que coincidan con nombres de archivos.

Puede utilizar clases de caracteres para que coincidan con nombres de archivos, de la manera siguiente:

[[:clasecaracteres:]]

Este formato indica al sistema que debe buscar caracteres simples que pertenezcan a la claseespecificada. Las clases definidas corresponden a subrutinas ctype, tal como se indica a continuación:

Clase de carácter Definición

alnum Caracteres alfanuméricos

alpha Letras mayúsculas y minúsculas

blank Espacio o tabulador horizontal

cntrl Caracteres de control

digit Dígitos

graph Caracteres gráficos

Gestión del sistema operativo 215

Page 222: AIX Versión 7 - IBM

Clase de carácter Definición

lower Letras minúsculas

print Caracteres imprimibles

punct Caracteres de puntuación

space Espacio, tabulación horizontal, retorno de carro, nueva línea, tabulaciónvertical o carácter de salto de página

upper Caracteres en mayúsculas

xdigit Dígitos hexadecimales

shell restringidoEl shell restringido se utiliza para definir nombres de inicio de sesión y entornos de ejecución cuyasposibilidades están más controladas que las del shell Bourne.

El mandato Rsh o bsh -r abre el shell restringido. El comportamiento de estos mandatos es idéntico aldel mandato bsh, a excepción de que no están permitidas las acciones siguientes:

• Cambiar de directorio (con el mandato cd)• Establecer el valor de las variables PATH o SHELL• Especificar nombres de vías de acceso o de mandatos que contengan una barra inclinada (/)• Redirigir la salida

Si el shell restringido determina que un mandato a ejecutar es un procedimiento de shell, utiliza el shellBourne para ejecutar el mandato. De este modo, es posible proporcionar a un usuario procedimientosshell que accedan a la plena capacidad del shell Bourne al mismo tiempo que impone un menú limitadode mandatos. En esta situación se supone que el usuario no tiene permisos de grabación y ejecución en elmismo directorio.

Si se especifica el parámetro Archivo [Parámetro] al iniciar el shell Bourne, el shell ejecuta el archivo descript identificado en el parámetro Archivo, incluyendo los parámetros especificados. El archivo de scriptespecificado debe tener permiso de lectura. Los valores setuid y setgid de los archivos de script sepasan por alto. El shell lee a continuación los mandatos. Si utiliza el distintivo -c o -s, no especifique unarchivo de script.

Cuando se inicia con el mandato Rsh, el shell aplica las restricciones después de interpretar losarchivos .profile y /etc/environment. Por lo tanto, la persona encargada de escribir elarchivo .profile tiene control total sobre las acciones del usuario, pues realiza las acciones deconfiguración y sitúa al usuario en un directorio adecuado (probablemente, distinto del directorio de iniciode sesión). Un administrador puede crear un directorio de mandatos en el directorio /usr/rbin que elmandato Rsh puede utilizar cambiando la variable PATH para que contenga el directorio. Si se inicia conel mandato bsh -r, el shell aplica restricciones al interpretar los archivos .profile.

Cuando se llama con el nombre Rsh, el shell restringido lee el archivo .profile del usuario($HOME/.profile). Actúa como un shell Bourne normal mientras realiza esta operación, a excepción deque una interrupción genera una salida inmediata en lugar de un retorno al nivel de los mandatos.

El shell Korn se puede iniciar como un shell restringido con el mandato ksh- r.

Los inodos para ksh y rksh y los inodos para ksh93 y rksh93 son iguales.

Creación y ejecución de script de shellUn script de shell es un archivo que contiene uno o varios mandatos. Gracias a los scripts de shell puedeejecutar fácilmente mandatos aburridos, secuencias de mandatos largas o complicadas y tareas derutina. Al entrar el nombre de un archivo de script de shell, el sistema ejecuta la secuencia de mandatosque contiene el archivo.

Puede crear un script de shell utilizando un editor de texto. El script puede contener mandatos delsistema operativo y mandatos incorporados del shell.

216 AIX Versión 7.2: Gestión del sistema operativo

Page 223: AIX Versión 7 - IBM

Los pasos siguientes son directrices generales para la grabación de scripts de shell:

1. Utilizando un editor de texto, cree y guarde un archivo. Puede incluir cualquier combinación demandatos del sistema operativo y del shell en el archivo de script de shell. Por norma, los scripts deshell que no se han configurado para que los utilicen varios usuarios se almacenan en el directorio$HOME/bin.

Nota: El sistema operativo no da soporte a las subrutinas setuid o setgid en un script de shell.2. Utilice el mandato chmod para permitir que sólo el usuario ejecute el archivo. Por ejemplo, si el archivo

se denomina script1, escriba lo siguiente:

chmod u=rwx script1

3. Escriba el nombre de script en la línea de mandatos para ejecutar el script de shell. Para ejecutar elscript de shell script1, escriba lo siguiente:

script1

Nota: Puede ejecutar el script de shell sin convertirlo en ejecutable si un mandato de shell (ksh, bsh ocsh) precede al nombre de archivo del script de shell en la línea de mandatos. Por ejemplo, paraejecutar un archivo no ejecutable denominado script1 bajo el control del shell Korn, escriba losiguiente:

ksh script1

Conceptos relacionadosMandatosAlgunos mandatos pueden entrarse simplemente escribiendo una palabra. También es posible combinarmandatos de forma que la salida de un mandato se convierta en la entrada para otro mandato.

Shell KornEl shell Korn (mandato ksh) es compatible con las versiones anteriores del shell Bourne (mandato bsh) ycontiene la mayoría de las características del shell Bourne así como algunas de las mejorescaracterísticas del shell C.

Variables establecidas por el shell Korn o shell POSIXEl shell establece las siguientes variables.

Elemento Descripción

subrayado(_) Indica inicialmente el nombre absoluto de vía de acceso del shell o script quese ejecuta a medida que se pasa en el entorno. Consiguientemente, se asigna elúltimo argumento del mandato anterior. Este parámetro no se define paramandatos que son asíncronos. Este parámetro también se utiliza para contenerel nombre del archivo MAIL coincidente cuando se comprueba si existe correo.

ERRNO Especifica un valor que define la subrutina que ha fallado más recientemente.Este valor depende del sistema y está destinado a propósitos de depuración.

LINENO Especifica el número de la línea actual en el script o función que se ejecuta.

OLDPWD Indica el directorio de trabajo anterior que ha establecido el mandato cd.

OPTARG Especifica el valor del último argumento de opción que ha procesado elmandato incorporado normal getopts.

OPTIND Especifica el índice del último argumento de opción que el mandatoincorporado normal getopts ha procesado.

PPID Identifica el número de proceso del shell padre.

PWD Indica el directorio de trabajo actual que ha establecido el mandato cd.

Gestión del sistema operativo 217

Page 224: AIX Versión 7 - IBM

Elemento Descripción

RANDOM Genera un entero aleatorio, uniformemente distribuido entre 0 y 32767. Lasecuencia de números aleatorios puede inicializarse asignando un valornumérico a la variable RANDOM.

REPLY Se establece por la sentencia select y por el mandato incorporado normal readcuando no se proporcionan argumentos.

SECONDS Especifica el número de segundos desde que se devolvió la llamada del shell. Sia esta variable se asigna un valor, el valor que se devuelve cuando se hagareferencia a éste es el valor que se ha asignado más el número de segundostranscurrido desde la asignación.

Variables utilizadas por el shell Korn o shell POSIXEl shell utiliza las siguientes variables.

Elemento Descripción

CDPATH Indica la vía de acceso de búsqueda para el mandato cd (cambiar directorio).

COLUMNS Define la anchura de la ventana de edición para las modalidades de edición del shelly para la impresión de las listas de selección, select.

EDITOR Si el valor de este parámetro finaliza en emacs, gmacs o vi, y no se ha establecido lavariable VISUAL con el mandato incorporado especial set, se activa la opcióncorrespondiente.

ENV Si se define esta variable, la sustitución de parámetros se efectúe sobre el valor quegenera el nombre de vía de acceso del script que se ejecutará cuando se llame a esteshell. Este archivo suele utilizarse para definiciones de alias y funciones. Estavariable se ignora para shell no interactivos.

FCEDIT Especifica el nombre del editor por omisión del mandato incorporado normal fc.

FPATH Especifica la vía de búsqueda para definiciones de funciones. Se buscará en esta víade acceso cuando se haga referencia a una función con el distintivo -u y cuando nose encuentre un mandato. Si se encuentra un archivo ejecutable, se lee y se ejecutaen el entorno actual.

HISTFILE Si esta variable se establece al invocarse el shell, el valor es el nombre de la vía deacceso del archivo que va a utilizarse para almacenar el histórico de mandatos.

El proceso de inicialización para el archivo histórico puede depender de losarchivos de arranque del sistema dado que algunos archivos de arranque puedencontener mandatos que prevalezcan de modo efectivo sobre los valores que elusuario haya especificado para HISTFILE y HISTSIZE. Por ejemplo, los mandatos dedefinición de funciones están registrados en el archivo histórico. Si eladministrador del sistema incluye definiciones de función en un archivo de arranquedel sistema que se llama antes del archivo ENV o antes de establecer las variablesHISTFILE o HISTSIZE, el archivo history se inicializa antes de que el usuario puedainfluir en sus características.

HISTSIZE Si se define esta variable cuando se llame al shell, el número de mandatosespecificados anteriormente a los que este shell puede acceder será mayor o igual aeste número. El valor predeterminado es 128 mandatos para usuarios que no sonroot y 512 mandatos para el usuario root.

218 AIX Versión 7.2: Gestión del sistema operativo

Page 225: AIX Versión 7 - IBM

Elemento Descripción

HOME Indica el nombre del directorio de inicio de sesión, que pasa a ser el directorio actualdespués de que finalice el inicio de sesión. El programa login inicializa estavariable. El mandato cd utiliza el valor del parámetro $HOME como valorpredeterminado. Utilizando esta variable en lugar de un nombre de vía de accesoexplícito en un procedimiento de shell permite que el procedimiento se ejecutedesde un directorio distinto sin alteraciones.

IFS Especifica los IFS (separadores de campos internos), generalmente espacio,tabulación y nueva línea, que se utilizan para separar palabras del mandato queresultan de la sustitución del mandato o del parámetro y para separar palabras conel mandato incorporado normal read. El primer carácter del parámetro IFS se utilizapara separar argumentos para la sustitución $*.

LANG Proporciona un valor predeterminado para las variables LC_*.

LC_ALL Altera temporalmente el valor de las variables LANG y LC_*.

LC_COLLATE Determina el comportamiento de la expresión de rango dentro de la coincidencia depatrón.

LC_CTYPE Define la clasificación de caracteres, conversión de mayúsculas y minúsculas y otrosatributos de caracteres.

LC_MESSAGES Determina el idioma en que están escritos los mensajes.

LINES Determina la longitud de columna para la impresión de listas de selección. Las listasde selección se imprimen verticalmente hasta que se han llenado aproximadamentedos tercios de las líneas que especifica la variable LINES.

MAIL Especifica el nombre de la vía de acceso utilizada por el sistema de correo paradetectar la llegada de correo nuevo. Si esta variable se establece en el nombre de unarchivo de correo y no se ha establecido la variable MAILPATH, el shell informa alusuario acerca de la existencia de correo nuevo en el archivo especificado.

MAILCHECK Especifica la frecuencia (en segundos) con que el shell comprobará si existencambios en la hora de modificación de cualquiera de los archivos que especifican lasvariables MAILPATH o MAIL. El valor predeterminado es 600 segundos. Cuando hayatranscurrido el tiempo, el shell buscará antes de emitir el siguiente indicador.

MAILPATH Especifica una lista de nombres de archivo separados por dos puntos. Si se haestablecido esta variable, el shell informará al usuario de cualquier modificaciónrealizada en los archivos especificados que se haya producido durante el período, ensegundos, tal como especifica la variable MAILCHECK. Cada nombre de archivopuede ir seguido de ? y del mensaje que ha de imprimirse. El mensaje se someterá ala sustitución de variables con la variable $_ definida como el nombre del archivoque ha cambiado. El mensaje por omisión es tiene correo en $_.

NLSPATH Determina la ubicación de los catálogos de mensajes para el proceso deLC_MESSAGES.

PATH Indica la vía de búsqueda para mandatos, que es una lista ordenada de nombres devías de acceso de directorios separadas por dos puntos. El shell busca en dichosdirectorios en el orden especificado cuando busca mandatos. Una serie nula encualquier parte de la lista representa el directorio actual.

PS1 Especifica la serie que se utilizará como indicador principal del sistema. El valor deeste parámetro se expande para la sustitución de parámetros con el fin de definir laserie del indicador principal que, por omisión, es un signo $. El carácter ! de la seriedel indicador principal se sustituye por el número del mandato.

Gestión del sistema operativo 219

Page 226: AIX Versión 7 - IBM

Elemento Descripción

PS2 Especifica el valor de la serie de indicador secundario, que es, de formapredeterminada, un >.

PS3 Especifica el valor de la serie del indicador de selección que se utiliza dentro de unbucle select que, por omisión es #? .

PS4 El valor de esta variable se expande para sustitución de parámetros y preceder acada línea de un rastreo de ejecución. Si se omite, el indicador de rastreo deejecución es un signo +.

SHELL Especifica el nombre de la vía de acceso del shell, que se conserva en el entorno.

SHELL PROMPT Cuando se utiliza interactivamente, el shell solicita el valor del parámetro PS1 antesde leer un mandato. Si en cualquier momento se entra una nueva línea y el shellrequiere más entrada para poder completar un mandato, el shell emite el indicadorsecundario (el valor del parámetro PS2).

TMOUT Especifica el número de segundos que un shell permanece inactivo antes definalizar. Si la variable TMOUT se ha establecido en un valor mayor que cero (0), elshell saldrá si no se entra un mandato dentro del número de segundos indicado trasla emisión del indicador PS1. (Tenga en cuenta que el shell puede compilarse con unlímite máximo que no puede superarse para este valor).

Nota: Una vez transcurrido el periodo de tiempo de espera, se produce una pausa de60 segundos antes de la salida del shell.

VISUAL Si el valor de esta variable termina por emacs, gmacs o vi, se activa la opcióncorrespondiente.

El shell proporciona los valores predeterminados a los parámetros PATH, PS1, PS2, MAILCHECK, TMOUT eIFS, pero el shell no establece los parámetros HOME, SHELL, ENV y MAIL (aunque el mandato loginestablece parámetro HOME).

Sustitución de mandato en el shell Korn o shell POSIXEl shell Korn o el shell POSIX, le permite realizar la sustitución de mandatos. En la sustitución demandatos, el shell ejecuta un mandato especificado en un entorno de subshell y sustituye dicho mandatopor su salida.

Para ejecutar la sustitución de mandatos en el shell Korn o en el shell POSIX, escriba lo siguiente:

$(mandato)

o, para la versión que incluye los acentos graves, escriba lo siguiente:

`mandato`

Nota: Aunque ksh acepta la sintaxis de acentos graves, los estándares de X/Open Portability Guide Issue4 y POSIX la consideran obsoleta. En estos estándares se recomienda que las aplicaciones portátiles,utilicen la sintaxis $(mandato).

El shell expande la sustitución del mandato ejecutando el mandato en un entorno de subshell yreemplazando la sustitución del mandato (el texto del mandato más el delimitador $( ) o los acentosgraves) por la salida estándar del mandato, eliminando las secuencias de uno o más caracteres de nuevalínea al final de la sustitución.

En el ejemplo siguiente, los caracteres $( ) que rodean al mandato indican que la salida del mandatowhoami se sustituye:

echo Mi nombre es: $(whoami)

Puede realizar la misma sustitución de mandatos con:

220 AIX Versión 7.2: Gestión del sistema operativo

Page 227: AIX Versión 7 - IBM

echo Mi nombre es: `whoami`

La salida de ambos ejemplos para el usuario dee es:

Mi nombre es: dee

También puede sustituir expresiones aritméticas especificándolas entre ( ). Por ejemplo, el mandato:

echo Cada hora contiene $((60 * 60)) segundos

produce el resultado siguiente:

Cada hora contiene 3600 segundos

El shell Korn o el shell POSIX elimina todos los caracteres de nueva línea finales al realizar la sustitucióndel mandato. Por ejemplo, si el directorio actual contiene los archivos file1, file2 y file3, elmandato:

echo $(ls)

elimina los caracteres de nueva línea y produce la salida siguiente:

file1 file2 file3

Para conservar los caracteres de nueva línea, inserte el mandato sustituido entre " ":

echo "$(ls)"

Evaluación aritmética en el shell Korn o shell POSIXEl mandato incorporado normal let del shell Korn o del shell POSIX le permite realizar la aritmética deenteros.

Las constantes están en formato [Base]Número. El parámetro Base es un número decimal comprendidoentre el 2 y el 36, inclusive, que representa la base aritmética. El parámetro Número es un número de esabase. Si omite el parámetro Base, el shell utiliza una base de 10.

Las expresiones aritméticas utilizan la misma sintaxis, prioridad y asociación de las expresiones dellenguaje de programación C. Tienen soporte todos los operadores integrales, a excepción del signo másdoble (++), el guión doble (—), el signo de interrogación-dos puntos (?: ) y la coma (,). En la tablasiguiente se indican los operadores válidos del shell Korn o del shell POSIX, ordenados de mayor a menorprioridad:

Operador Definición

- Menos unitario

! Negación lógica

~ Negación bitwise

* Multiplicación

/ División

% Resto

+ Suma

- Resta

<<, >> Desplazamiento a la izquierda, desplazamiento a laderecha

<=,>=, <>, ==, != Comparación

Gestión del sistema operativo 221

Page 228: AIX Versión 7 - IBM

Operador Definición

& AND bitwise

^ OR exclusivo bitwise

| OR bitwise

&& AND lógico

|| OR lógico

= *=, /=, &= +=, -=, <<=, > >=, &=, ^=, |= Asignación

Muchos operadores aritméticos como, por ejemplo, *, &, < y >, tienen un significado especial para el shellKorn o el shell POSIX. Estos caracteres deben estar delimitados. Por ejemplo, para multiplicar el valoractual de y por 5 y reasignar el nuevo valor a y, utilice la expresión:

let "y = y * 5"

La especificación de la expresión entre comillas elimina el significado especial del carácter *.

Puede agrupar operaciones dentro de las expresiones del mandato let para forzar la agrupación. Porejemplo, en la expresión:

let "z = q * (z - 10)"

el mandato multiplica q por el valor reducido de z.

El shell Korn o el shell POSIX incluye un formato alternativo del mandato let si sólo va a evaluarse unaúnica expresión. El shell trata a los mandatos que se especifican entre (( )) como si fueran expresionesespecificadas entre comillas. Por lo tanto, la expresión:

((x = x / 3))

equivale a:

let "x = x / 3"

Se hace referencia a los parámetros designados por nombre en una expresión aritmética sin utilizar lasintaxis de sustitución de parámetros. Cuando se hace referencia a un parámetro definido, su valor seevalúa como si fuera una expresión aritmética.

Especifique una representación de enteros interna de un parámetro nombrado con el distintivo -i delmandato incorporado especial typeset. Con la utilización del distintivo -i, la evaluación aritmética serealiza en el valor de cada asignación para un parámetro nombrado. Si no especifica una base aritmética,la primera asignación al parámetro determina la base aritmética. Esta base se utiliza cuando tiene lugar lasustitución del parámetro.

Conceptos relacionadosMandatos del shell Korn o shell POSIXEl shell Korn es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Seajusta a la Interfaz de Sistema Operativo Portable para Entornos del Sistema (POSIX), un estándarinternacional para sistemas operativos.Parámetros del shell KornA continuación se explican los parámetros del shell Korn

Subdivisión de campos en el shell Korn o shell POSIXTras la realización de la sustitución de mandatos, el shell Korn explora los resultados de las sustitucionesde los caracteres de separación de campos que ha encontrado en la variable IFS (Separador interno decampos). Donde se encuentren dichos caracteres, el shell subdivide las sustituciones en argumentosindependientes.

222 AIX Versión 7.2: Gestión del sistema operativo

Page 229: AIX Versión 7 - IBM

El shell retiene los argumentos nulos explícitos ("" o '') y elimina los argumentos nulos implícitos (queson el resultado de los parámetros que no tienen valores).

• Si el valor de IFS es un carácter de espacio, tabulación o nueva línea, o si aún no se ha establecido, sepasará por alto cualquier secuencia de caracteres de espacio, tabulación o nueva línea que aparezca alprincipio o al final de la entrada y cualquiera de estos caracteres que aparezca dentro de la entradadelimitará un campo. Por ejemplo, la entrada siguiente genera dos campos, school y days:

<newline><space><tab>school<tab><tab>days<space>

• De lo contrario, y si el valor de IFS no es nulo, se aplican las normas siguientes, por orden. El espacio enblanco IFS se utiliza para indicar cualquier secuencia (cero o más instancias) de caracteres de espacioen blanco que están en el valor IFS (por ejemplo, si IFS contiene espacio/coma/tabulación, cualquiersecuencia de caracteres de espacio y tabulación se considera un espacio en blanco IFS).

1. IFS espacio en blanco se pasa por alto al principio y al final de la entrada.2. Cada ocurrencia de un carácter IFS en la entrada que no es un espacio en blanco IFS, junto con

cualquier espacio en blanco IFS, delimita un campo.3. La longitud no cero del espacio en blanco IFS delimita un campo.

Lista de mandatos incorporados especiales del shell Korn o el shell POSIXLos mandatos especiales están incorporados en el shell Korn y el shell POSIX y se ejecutan en el procesode shell.

Elemento Descripción

: (dos puntos) Expande únicamente argumentos.

. (punto) Lee un archivo especificado y, a continuación, ejecuta los mandatos.

break Sale del bucle de delimitación for, while, until o select, si existe uno.

continue Reanuda la siguiente iteración del bucle de delimitación for, while, until o select.

eval Lee los argumentos como entrada al shell y ejecuta el mandato o mandatos resultantes.

exec Ejecuta el mandato que especifica el parámetro Argumento, en lugar de este shell, sincrear un nuevo proceso.

exit Sale del shell cuyo estado de salida especifica el parámetro n.

export Marca nombres para exportación automática al entorno de mandatos ejecutadossucesivamente.

newgrp Equivalente al mandato exec/usr/bin/newgrp [Grupo ...].

readonly Marca los nombres especificados como de sólo lectura.

return Hace que el shell vuelva al script de invocación.

set A menos que se especifiquen opciones o argumentos, graba los nombres y los valoresde todas las variables de shell en el orden de clasificación del entorno local actual.

shift Cambia el nombre de los parámetros posicional.

times Imprime las horas de usuario y del sistema acumuladas correspondientes al shell y a losprocesos que se ejecutan desde el shell.

trap Ejecuta el mandato especificado cuando el shell recibe la señal o señales especificadas.

typeset Define atributos y valores para parámetros de shell.

unset Elimina el establecimiento de los valores y atributos de los parámetros especificados.

Conceptos relacionadosMandatos incorporados del shell Korn o POSIX

Gestión del sistema operativo 223

Page 230: AIX Versión 7 - IBM

Los mandatos especiales se crean en el shell Korn y en el shell POSIX y se ejecutan en el proceso deshell.

Mandatos incorporados normales del shell Korn o el shell POSIXLa lista siguiente muestra los mandatos incorporados normales del shell Korn o el shell POSIX.

Elemento Descripción

alias Imprime una lista de los alias en la salida estándar.

bg Establece los trabajos especificados como trabajos en segundo plano.

cd Cambia el directorio actual por el directorio especificado o sustituye la serie actual por laserie especificada.

echo Graba series de caracteres en salida estándar.

fc Selecciona un rango de mandatos del último mandato de variable HISTSIZE escribiendo enel terminal. Vuelve a ejecutar el mandato especificado tras la realización de la sustituciónantiguo por nuevo.

fg Establece el trabajo especificado como trabajo en primer plano.

getopts Comprueba el parámetro Argumento en busca de opciones legales.

jobs Lista información acerca de cada trabajo especificado.

kill Envía la señal TERM (terminar) a los trabajos o procesos especificados.

let Evalúa expresiones aritméticas especificadas.

print Imprime la salida del shell.

pwd Equivalente al mandato print -r -$PWD.

read Acepta la entrada del shell.

ulimit Establece o visualiza los límites de recursos de proceso del usuario tal como se ha definidoen el archivo /etc/security/limits.

umask Determina los permisos de archivo.

unalias Elimina los parámetros que están en la lista de nombres de la lista de alias.

wait Espera al trabajo especificado y termina.

whence Indica la forma en que se interpretará cada nombre especificado si éste se utiliza como unnombre de mandato.

Para obtener más información, consulte el apartado “Mandatos incorporados del shell Korn o POSIX” enla página 241.

Conceptos relacionadosMandatos incorporados del shell Korn o POSIXLos mandatos especiales se crean en el shell Korn y en el shell POSIX y se ejecutan en el proceso deshell.

Expresiones condicionales para el shell Korn o shell POSIXUna expresión condicional se utiliza con el mandato compuesto [[ para probar los atributos de losarchivos y para comparar series.

La subdivisión de palabras y la sustitución del nombre del archivo no se realizan en las palabras queaparecen entre [[ y ]]. Cada expresión se construye a partir de una o más de las siguientes expresionesunitarias o binarias:

224 AIX Versión 7.2: Gestión del sistema operativo

Page 231: AIX Versión 7 - IBM

Elemento Descripción

-a Archivo Verdadero, si el archivo especificado es un enlace simbólico que señala a otroarchivo que existe.

-b Archivo Verdadero, si existe el archivo especificado y es un archivo especial de bloque.

-c Archivo Verdadero, si el archivo especificado existe y es un archivo especial de caracteres.

-d Archivo Verdadero, si existe el archivo especificado y es un directorio.

-e Archivo Verdadero, si existe el archivo especificado.

-f Archivo Verdadero, si existe el archivo especificado y es un archivo ordinario.

-g Archivo Verdadero, si el archivo especificado existe y se ha establecido su bit setgid.

-h Archivo Verdadero, si existe el archivo especificado y es un enlace simbólico.

-k Archivo Verdadero, si existe el archivo especificado y se ha definido su bit reversible.

-n Serie Verdadero, si la longitud de la serie especificada es distinta de cero.

-o Opción Verdadero, si la opción especificada está activada.

-p Archivo Verdadero, si existe el archivo especificado y es un archivo especial FIFO o unconducto.

-r Archivo Verdadero, si el archivo especificado existe y el proceso actual puede leerlo.

-s Archivo Verdadero, si existe el archivo especificado y su tamaño es mayor que 0.

-tDescriptorArchivo

Verdadero, si está abierto un número de descriptor de archivo especificado y estáasociado con un dispositivo de terminal.

-u Archivo Verdadero, si el archivo especificado existe y se ha establecido su bit setuid.

-w Archivo Verdadero, si existe el archivo especificado y el bit de grabación está activado. Noobstante, no será posible grabar el archivo en un sistema de archivos de sólolectura aunque su prueba indique que es verdadero.

-x Archivo Verdadero, si el archivo especificado existe y el distintivo execute se ha activado.Si el archivo especificado existe y es un directorio, el proceso actual tiene permisopara buscar en el directorio.

-z Serie Verdadero, si la longitud de la serie especificada es 0.

-L Archivo Verdadero, si existe el archivo especificado y es un enlace simbólico.

-O Archivo Verdadero, si existe el archivo especificado y el propietario es el ID de usuariovigente de este proceso.

-G Archivo Verdadero, si existe el archivo especificado y su grupo coincide con el ID de grupovigente de este proceso.

-S Archivo Verdadero, si existe el archivo especificado y es un socket.

Archivo1 -ntArchivo2

Verdadero, si Archivo1 existe y es más reciente que Archivo2.

Archivo1 -otArchivo2

Verdadero, si Archivo1 existe y es más antiguo que Archivo2.

Archivo1 -efArchivo2

Verdadero, si Archivo1 y Archivo2 existen y hacen referencia al mismo archivo.

Serie1 = Serie2 Verdadero, si Serie1 es igual a Serie2.

Serie1 != Serie2 Verdadero, si Serie1 no es igual a Serie2.

Serie = Patrón Verdadero, si la serie especificada coincide con el patrón especificado.

Gestión del sistema operativo 225

Page 232: AIX Versión 7 - IBM

Elemento Descripción

Serie != Patrón Verdadero, si la serie especificada no coincide con el patrón indicado.

Serie1 < Serie2 Verdadero, si Serie1 aparece antes que Serie2 basándose en el valor ASCII de suscaracteres.

Serie1 > Serie2 Verdadero, si Serie1 aparece después de Serie2 basándose en el valor ASCII de suscaracteres.

Expresión1 -eqExpresión2

Verdadero, si Expresión1 es igual a Expresión2.

Expresión1 -neExpresión2

Verdadero, si Expresión1 no es igual a Expresión2.

Expresión1 -ltExpresión2

Verdadero, si Expresión1 es menor que Expresión2.

Expresión1 -gtExpresión2

Verdadero, si Expresión1 es mayor que Expresión2.

Expresión1 -leExpresión2

Verdadero, si Expresión1 es menor que o igual a Expresión2.

Expresión1 -geExpresión2

Verdadero, si Expresión1 es mayor que o igual a Expresión2.

Nota: En cada una de las expresiones anteriores, si la variable Archivo es similar a /dev/fd/n, donde nes un entero, la prueba se aplica al archivo abierto cuyo número de descriptores es n.

Puede crear una expresión compuesta a partir de estas partes primitivas, más pequeñas, utilizandocualquiera de las expresiones siguientes, que se indican en orden de mayor a menor prioridad.

Elemento Descripción

(Expresión) Verdadero, si la expresión especificada es verdadera. Se utiliza para agruparexpresiones.

! Expresión Verdadero, si la expresión especificada es falsa.

Expresión1 &&Expresión2

Verdadero, si Expresión1 y Expresión2 son verdaderas.

Expresión1 || Expresión2 Verdadero, si Expresión1 o bien Expresión2 es verdadera.

Delimitación de caracteres en el shell Korn o el shell POSIXCuando desee que el shell Korn o el shell POSIX lea un carácter como un carácter normal, en lugar dehacerlo con cualquier significado asociado normal, debe delimitarlo.

Cada metacarácter tiene un significado especial para el shell y, a menos que se limite, provoca laterminación de una palabra. El shell Korn o el shell POSIX considera los caracteres siguientes comometacaracteres, los cuales deben especificarse entre delimitadores si van a representarse a sí mismos:

• conducto (|)• ampersand (&)• punto y coma (;)• signo menor que (<) y signo mayor que (>)• paréntesis izquierdo (() y paréntesis derecho ())• signo de dólar ($)• acento grave (`) y comilla simple (')• barra inclinada invertida (\)• comillas dobles (")

226 AIX Versión 7.2: Gestión del sistema operativo

Page 233: AIX Versión 7 - IBM

• carácter de nueva línea• carácter de espacio• carácter de tabulación

Para anular el significado especial de un metacarácter, utilice uno de los mecanismos de delimitación dela lista siguiente.

Elemento Descripción

Barra inclinada invertida Una barra inclinada invertida (\) que no está delimitada conserva elvalor literal del carácter siguiente, excepto cuando se trata de uncarácter de nueva línea. Si a continuación de la barra inclinadainvertida va un carácter de nueva línea, el shell lo interpreta comocontinuación de línea.

Comillas simples La especificación de caracteres entre comillas simples (' ')conserva el valor literal de cada carácter especificado entrecomillas simples. No puede existir ninguna comilla simple dentrode las comillas simples.

Una barra inclinada invertida no se puede utilizar para eludir elsignificado de una comilla simple dentro de una serie delimitadaentre comillas simples. Un carácter delimitador intercalado sepuede crear escribiendo, por ejemplo: 'a'\''b', lo cual producea'b.

Comillas dobles La especificación de los caracteres entre comillas dobles (" ")conserva el valor literal de todos los caracteres delimitados entrecomillas dobles, excepto en el caso de los caracteres del signo dedólar, del acento grave y de la barra inclinada invertida, tal como semuestra a continuación:$

El signo de dólar mantiene su significado especial introduciendoexpansión de parámetros, una forma de sustitución demandatos, y la expansión aritmética.

Los caracteres de entrada de la serie delimitada que también seespecifican entre $( y el correspondiente ) no quedanafectados por las comillas dobles, pero definen al mandato cuyasalida sustituye a $(...) al expandirse la palabra.

Dentro de la serie de caracteres especificados dentro de ${ y lacorrespondiente }, debe existir un número par de comillasdobles o comillas simples no eludidas, si existe alguna. Paraeludir un literal { o }, debe especificarse antes un carácter debarra inclinada invertida.

`El acento grave conserva su significado especial introduciendola otra forma de sustitución de caracteres. La parte de la seriedelimitada, desde el acento grave y los caracteres inicialeshasta el siguiente acento grave no precedido de una barrainclinada invertida, define al mandato cuya salida sustituye a` ... ` al expandirse la palabra.

\La barra inclinada invertida conserva su significado especialcomo carácter de escape sólo cuando va seguida de uno de loscaracteres siguientes: $, `, ", \ o un carácter de nueva línea.

Gestión del sistema operativo 227

Page 234: AIX Versión 7 - IBM

Una comilla doble deben ir precedida de una barra inclinada invertida para que puedan incluirse entrecomillas dobles. Cuando utiliza comillas dobles, si una barra inclinada invertida va inmediatamenteseguida de un carácter que se interpretaría como un carácter con significado especial, la barra inclinadainvertida se suprime y el siguiente carácter se toma literalmente. Si una barra inclinada invertida noprecede a un carácter que tendría un significado especial, se deja en su lugar intacta y el carácter quesigue inmediatamente permanece también intacto. Por ejemplo:

"\$" -> $"\a" -> \a

Las condiciones siguientes se aplican a los metacaracteres y caracteres de delimitación en el shell Korn oshell POSIX:

• El significado del signo de dólar, asterisco ($*) y del signo de dólar, arroba ($@) es el mismo cuando noestán delimitados, cuando se utilizan como un valor de asignación de parámetro o cuando se utilizancomo un nombre de archivo.

• Cuando se utilizan como un argumento de mandato, comillas dobles, signo de dólar, asterisco, comillasdobles ("$*") equivalen a "$1d$2d...", donde d es el primer carácter del parámetro IFS.

• Comillas dobles, arroba, asterisco, comillas ("$@") equivalen a "$1" "$2" ....• Dentro de los acentos graves (``), la barra inclinada invertida delimita los caracteres de la barra

inclinada invertida (\), la comilla simple (') y el signo de dólar ($). Si los acentos graves se especificanentre comillas dobles (" "), la barra inclinada invertida también delimita el carácter de comillas dobles.

• La sustitución de parámetros y mandatos tiene lugar dentro de las comillas dobles (" ").• El significado especial de las palabras reservadas o alias se elimina delimitando cualquiera de los

caracteres de la palabra reservada. No puede especificar delimitadores en los nombres de las funcioneso en los nombres de los mandatos incorporados.

Shell Korn restringidoEl shell Korn restringido se utiliza para definir nombres de inicio de sesión y entornos de ejecución cuyasposibilidades están más controladas que las del shell Korn normal.

El mandato rksh o ksh -r abre el shell Korn restringido. El comportamiento de estos mandatos esidéntico al del mandato ksh, a excepción de que no están permitidas las acciones siguientes:

• Cambiar el directorio de trabajo actual• Establecer el valor de las variables SHELL, ENV o PATH• Especificar el nombre de vía de acceso de un mandato que contiene una / (barra inclinada)• Redirigir la salida de un mandato con > (signo mayor que), >| (signo mayor que, conducto), <> (signo

menor que, signo mayor que) o >> (dos signos mayor que).

Si el shell Korn restringido determina que un mandato que debe ejecutarse es un procedimiento de shell,utiliza el shell Korn para ejecutar el mandato. De este modo, es posible proporcionar a un usuario finalprocedimientos de shell que accedan a la plena capacidad del shell Korn al mismo tiempo que impone unmenú limitado de mandatos. En esta situación se supone que el usuario no tiene permisos de grabación yejecución en el mismo directorio.

Si se especifica el parámetro Archivo [Parámetro] al iniciarse el shell Korn, el shell ejecuta el archivo descript que el parámetro Archivo identifica, incluidos los parámetros especificados. El archivo de scriptespecificado debe tener permiso de lectura. Los valores setuid y setgid de los archivos de script sepasan por alto. El shell lee a continuación los mandatos. Si utiliza el distintivo -c o -s, no especifique unarchivo de script.

Cuando se inicia con el mandato rksh, el shell aplica las restricciones tras interpretar losarchivos .profile y /etc/environment. Por lo tanto, la persona encargada de escribir elarchivo .profile tiene control total sobre las acciones del usuario, pues realiza las acciones deconfiguración y sitúa al usuario en un directorio adecuado (probablemente, distinto del directorio de iniciode sesión). Un administrador puede crear un directorio de mandatos en el /usr/rbin que el mandato

228 AIX Versión 7.2: Gestión del sistema operativo

Page 235: AIX Versión 7 - IBM

rksh puede utilizar cambiando la variable PATH para que contenga el directorio. Si se inicia con elmandato ksh -r, el shell aplica restricciones al interpretar los archivos .profile.

Cuando se llama con el mandato rksh, el shell restringido Korn lee el archivo .profile del usuario($HOME/.profile). Actúa como el shell Korn normal mientras realiza esta operación, salvo en que unainterrupción genera una salida inmediata en lugar de un retorno al nivel de los mandatos.

Palabras reservadas en el shell Korn o el shell POSIXLas siguientes palabras reservadas tienen un significado especial para el shell Korn o el shell POSIX.

! case dodone elif elseesac fi forfunction if inselect then timeuntil while { } [[ ]]

Las palabras reservadas sólo se reconocen cuando aparecen sin delimitadores y cuando la palabra seutiliza como lo siguiente:

• Primera palabra de un mandato• Primera palabra que sigue a una de las palabras reservadas que no sea case, for ni in• Tercera palabra de un mandato case o for (sólo in es válida en este caso)

Shell Korn ampliado (ksh93)Además del shell Korn del sistema predeterminado (/usr/bin/ksh), AIX proporciona una versiónampliada disponible como shell Korn /usr/bin/ksh93. Esta versión ampliada es compatible con laversión predeterminada actual e incluye algunas funciones adicionales que no están disponibles en elshell Korn /usr/bin/ksh.

Es posible que algunos scripts se ejecuten de modo diferente en el shell Korn ksh93 que en el shellpredeterminado porque el manejo de variables es algo distinto en los dos shells.

Nota: Hay disponible una versión restringida del shell Korn ampliado, denominada rksh93.

Las siguientes características no están disponibles en el shell Korn /usr/bin/ksh, pero sí en el shellKorn /usr/bin/ksh93:

Elemento Descripción

Mejorasaritméticas

Puede utilizar las funciones libm (funciones matemáticas que normalmente están enel lenguaje de programación C), en expresiones aritméticas, tales como $ value=$((sqrt(9))). Están disponibles más operadores aritméticos, incluyendo losoperadores unitarios +, ++, -- y la construcción ?: (por ejemplo, "x ? y : z"), asícomo el operador , (coma). Las bases aritméticas se soportan hasta base 64. Laaritmética de coma flotante también está soportada. "typeset -E" (exponencial) sepuede utilizar para especificar el número de dígitos significativos y "typeset -F"(flotante) se puede utilizar para especificar el número de espacios decimales para lavariable aritmética. Ahora la variable SECONDS se redondea a la centésima desegundo, en lugar de al segundo.

Variablescompuestas

Las variables compuestas reciben soporte. Una variable compuesta permite a unusuario especificar varios valores en un solo nombre de variable. Se asigna a cadavariable una variable de subscripción, separada de la variable padre con un punto( .). Por ejemplo:

$ myvar=( x=1 y=2 ) $ print "${myvar.x}" 1

Gestión del sistema operativo 229

Page 236: AIX Versión 7 - IBM

Elemento Descripción

Asignacionescompuestas

Se da soporte a las asignaciones compuestas al inicializar conjuntos, tanto paraconjuntos indexados como para conjuntos asociativos. Los valores de asignación seespecifican entre paréntesis, tal como se muestra en el ejemplo siguiente:

$ numbers=( cero uno dos tres ) $ print ${numbers[0]} ${numbers[3]} cero tres

Conjuntosasociativos

Un conjunto asociativo es un conjunto con una cadena de caracteres como índice.

El mandato typeset utilizado con un distintivo -A permite especificar conjuntosasociativos en ksh93. Por ejemplo:

$ typeset -A teammates $ teammates=( [john]=smith [mary]=jones ) $ print ${teammates[mary]} jones

Referencias denombres devariables

El mandato typeset utilizado con el distintivo -n permite asignar un nombre devariable como referencia a otra. De esta manera, la modificación del valor de unavariable modificará a su vez el valor de la variable a la que hace referencia. Porejemplo:

$ greeting="hola"$ typeset -n welcome=greeting # establece la referencia $ welcome="buenos días" # prevalece sobre el valor anterior $ print $greeting buenos días

Expansiones deparámetros

Las construcciones de expansión de parámetros disponibles son las siguientes:

• ${!varname} es el nombre de la propia variable.• ${!varname[@]} nombra los índices para el conjunto varname.• ${param:offset} es una subserie de param, que empieza en offset.• ${param:offset:num} es una subserie de param , que empieza en offset, para

num número de caracteres.• ${@:offset} indica todos los parámetros posicionales que empiezan en offset.• ${@:offset:num} indica los parámetros posicionales num que empiezan desde

offset.• ${param/pattern/repl} evalúa param, sustituyendo la primera aparición de

pattern con repl.• ${param//pattern/repl} evalúa param, sustituyendo cada aparición de pattern

con repl.• ${param/#pattern/repl} si param empieza por pattern, param se sustituye por

repl.• ${param/%pattern/repl} si param finaliza en pattern, param se sustituye por

repl.

230 AIX Versión 7.2: Gestión del sistema operativo

Page 237: AIX Versión 7 - IBM

Elemento Descripción

Funciones dedisciplina

Una función de disciplina es una función que está asociada con una variableespecífica. Esto permite al usuario definir una función y llamar a la misma cada vezque se hace referencia a dicha variable, se define o deja de estar definida. Estasfunciones adoptan el formato varname.function, donde varname es el nombre de lavariable y function es la función de disciplina. Las funciones de disciplina predefinidasson get, set y unset.

• La función varname.get se invoca cada vez que se hace referencia a varname. Si seestablece la variable especial .sh.value en esta función, el valor de varname secambia por este valor. Un ejemplo sencillo es la hora:

$ function time.get > { > .sh.value=$(date +%r) > } $ print $time 09:15:58 AM $ print $time # cambiará en unos segundos 09:16:04 AM

• La función varname.set se invoca cada vez que se establece varname. Lavariable .sh.value recibe el valor que se le asignó. El valor asignado a varname es elvalor de .sh.value cuando se completa la función. Por ejemplo:

$ function adder.set > { > let .sh.value="$ {.sh.value} + 1" > } $ adder=0 $ echo $adder 1 $ adder=$adder $ echo $adder 2

• La función varname.unset se ejecuta cada vez que se elimina el establecimiento dela variable varname. En realidad, la variable no está sin establecer, a menos que sehaya dejado sin establecer en la propia función; de lo contrario, conserva su valor.

En todas las funciones de disciplina, la variable especial .sh.name se define como elnombre de la variable, mientras que .sh.subscript se define como el valor desubscripción de variables, en caso de que sea aplicable.

Entornos defunción

Las funciones declaradas con el formato function myfunc se ejecutan en unentorno de función separado y soportan variables locales. Las funciones declaradascomo myfunc() se ejecutan en el mismo entorno que el shell padre.

Variables Las variables que empiezan por .sh. están reservadas por el shell y tienen unsignificado especial. Consulte la descripción de Funciones de disciplina, en estamisma tabla, para ver una explicación de .sh.name, .sh.value y .sh.subscript.También está disponible .sh.version, que representa la versión del shell.

Valores deretorno demandatos

Los valores de retorno de los mandatos son los siguientes:

• Si no se encuentra el mandato a ejecutar, el valor de retorno se establece en 127.• Si se encuentra el mandato a ejecutar, pero éste no es ejecutable, el valor de

retorno es 126.• Si se ejecuta el mandato, pero termina con una señal, el valor de retorno es 256 y el

número de señal.

Gestión del sistema operativo 231

Page 238: AIX Versión 7 - IBM

Elemento Descripción

Normas debúsqueda PATH

En primer lugar se buscan los mandatos incorporados, seguidos de todas lasfunciones (incluidas las que están en los directorios FPATH), seguidas de otrosmandatos incorporados.

Histórico delshell

El mandato hist le permite visualizar y editar el histórico de los mandatos de shells.En el shell ksh, se utiliza el mandato fc. El mandato fc es un alias de hist. Lasvariables son HISTCMD, que se incrementa en uno por cada mandato ejecutado en elhistórico actual de shell, y HISTEDIT, que especifica el editor que se debe utilizarcuando se usa el mandato hist.

Mandatosincorporados

El shell Korn ampliado contiene los mandatos incorporados siguientes:

• El mandato builtin lista todos los mandatos incorporados disponibles.• El mandato printf funciona de manera similar a la rutina de biblioteca C printf().

Consulte el mandato printf.• disown bloquea el shell para que no envíe un SIGHUP al mandato especificado.• El mandato getconf funciona igual que el mandato autónomo /usr/bin/getconf . Consulte el mandato getconf.

• El mandato incorporado read tiene los distintivos siguientes:

– read -d {char} permite especificar un delimitador de caracteres en lugar de lanueva línea predeterminada.

– read -t {seconds} permite especificar un límite de tiempo, en segundos,después del cual el mandato read excederá el tiempo de espera. Si read excedeel tiempo de espera, devolverá FALSE.

• El mandato incorporado exec tiene los distintivos siguientes:

– exec -a {name} {cmd} especifica que el argumento 0 de cmd se sustituirá porname.

– exec -c {cmd} indica a exec que borre el entorno antes de ejecutar cmd.• El mandato incorporado kill tiene los distintivos siguientes:

– kill -n {signum} se utiliza para especificar un número de señal que se debeenviar a un proceso, mientras que kill -s {signame} se utiliza para especificarun nombre de señal.

– kill -l, sin argumentos, lista todos los nombres de señal pero no sus números.• El mandato incorporado whence tiene los distintivos siguientes:

– El distintivo -a visualiza todas las coincidencias, no sólo la primera que seencuentra.

– El distintivo -f indica a whence que no busque ninguna función.• Existe una secuencia de caracteres de escape para que la utilicen los mandatosprint y echo. La tecla Esc (Escape) se puede representar mediante la secuencia\E.

• Todos los mandatos incorporados normales reconocen el distintivo -?, que muestrala sintaxis para el mandato especificado.

• El getopts incorporado requiere optstring para contener un + inicial a fin de permitiropciones que comiencen con un símbolo +.

232 AIX Versión 7.2: Gestión del sistema operativo

Page 239: AIX Versión 7 - IBM

Elemento Descripción

Otrasdiferenciasentre el shellKorn y el shellKorn ksh93

Otras diferencias son:

• Con el shell Korn ksh93, no puede exportar funciones utilizando el mandatoincorporado typeset -fx.

• Con el shell Korn ksh93, no puede exportar un alias utilizando el mandatoincorporado alias -x.

• Con el shell Korn ksh93, un signo de dólar seguido de una sola comilla ($') seinterpreta como una serie C ANSI. Debe delimitar el signo de dólar (\"$\"') paraconseguir el comportamiento anterior (ksh).

• Se ha cambiado la lógica de análisis de argumentos para el shell Korn ksh93. Lascombinaciones no documentadas del análisis de argumentos para los mandatosincorporados del shell Korn ksh no funcionan en el shell Korn ksh93. Por ejemplo,typeset -4i funciona de forma similar a typeset -i4 en shell Korn ksh, pero nofunciona en el shell Korn ksh93.

• Con el shell Korn ksh93, la sustitución de mandatos y la expansión aritmética serealiza en las variables de entorno especiales PS1, PS3 y ENV mientras seexpanden. Por lo tanto, debe realizar un escape del símbolo grave (`) y el signo dedólar y los símbolos de abrir paréntesis ($() utilizando una barra inclinada invertida(\) para conservar el comportamiento anterior. Por ejemplo, el shell Korn ksh asignaliteralmente x=$'nombre\toperador' como $nombre\toperador; el shell Kornksh93 expande \t y lo asigna como nombre<\t expanded>operador. Paraconservar el comportamiento del shell Korn ksh, debe delimitar $. Por ejemplo,x="$"'nombre\toperador'.

• La variable ERRNO se ha eliminado del shell Korn ksh93.• En el shell Korn ksh93, los nombres de archivo no se expanden para los shells no

interactivos después del símbolo de redirección.• Con el shell Korn ksh93, debe utilizar la opción -t del mandato alias para visualizar

los alias cuyo seguimiento se realiza. La prestación de alias de seguimiento está endesuso así que los alias que se muestren no se podrán seguir.

• Con el shell Korn ksh93, en modalidad emacs, Control+T intercambia entre elcarácter actual y el anterior. Con ksh, Control+T intercambia entre el carácter actualy el siguiente.

• El shell Korn ksh93 no permite paréntesis sin emparejar en ${nombre operadorvalor}. Por ejemplo, ${nombre-(} necesita un escape como ${nombre-\(}para funcionar en ambas versiones.

• Con el shell Korn ksh93, el mandato kill -l sólo lista los nombres de señal, nosus valores numéricos.

Estado de la salida en el shell Korn o shell POSIXLos errores detectados por el shell, por ejemplo errores de sintaxis, hacen que el shell devuelva unestado de salida distinto a cero. De lo contrario, el shell devuelve el estado de salida del último mandatollevado a cabo.

El shell informa de errores detectados durante la ejecución imprimiendo el nombre del mandato o de lafunción y la condición de error. Si el número de la línea en la que se ha producido el error es mayor que 1,el número de línea también se imprime entre [ ] (corchetes) después del nombre del mandato o de lafunción.

Para un shell no interactivo, el hecho de que un mandato incorporado especial u otro tipo de mandatoencuentre un error dará lugar a que el shell grabe un mensaje de diagnóstico, tal como se muestra en latabla siguiente:

Gestión del sistema operativo 233

Page 240: AIX Versión 7 - IBM

Error Incorporadoespecial

Otros programasde utilidad

Error de sintaxis de lenguaje del shell saldrá saldrá

Error de sintaxis del programa de utilidad (error en opción uoperando)

saldrá no saldrá

Error de redirección saldrá no saldrá

Error de asignación de variable saldrá no saldrá

Error de expansión saldrá saldrá

Mandato no encontrado no se aplica podría salir

Script de punto no encontrado saldrá no se aplica

Si alguno de los errores se muestra como "finalizará (puede finalizar)" se produce en un subshell, elsubshell finalizará (puede finalizar) con un estado distinto a cero, pero el script que contiene el subshellno finalizará a causa del error.

En todos los casos que se muestran en la tabla, un shell interactivo grabará un mensaje de diagnóstico enel error estándar, sin finalizar.

Parámetros del shell KornA continuación se explican los parámetros del shell Korn

Un parámetro se define como lo siguiente:

• Identificador de cualquiera de los caracteres asterisco (*), arroba ( @), almohadilla (#), interrogante (?),guión (-), símbolo de dólar ($) y signo de exclamación (! ). Estos caracteres reciben el nombre deparámetros especiales.

• Argumento que se indica mediante un número (parámetro posicional)• Parámetro que se indica mediante un identificador, con un valor y cero o más atributos (parámetroespecificado/variables).

El mandato incorporado especial typeset asigna valores y atributos a los parámetros con nombre. Losatributos que reciben el soporte del shell Korn se describen con el mandato incorporado especialtypeset. Los parámetros exportados pasan valores y atributos al entorno.

El valor de un parámetro está asignado por:

Nombre=Valor [ Nombre=Valor ] ...

Si se establece el atributo de entero -i para el parámetro Nombre, el parámetro Valor es somete aevaluación aritmética.

El shell soporta un recurso de matrices unidimensionales. Una subserie hace referencia a un elemento deun parámetro de matriz. Un subíndice se indica mediante una expresión aritmética especificada entrecorchetes [ ]. Para asignar valores a una matriz, utilice set -A Nombre Valor ... El valor de todos lossubscripts debe estar en el rango de 0 a 511. No es necesario declarar las matrices. Cualquier referenciaa un parámetro designado por un subscript válido es lícita y se creará una matriz, si es necesario. Hacerreferencia a una matriz sin un subscript es equivalente a hacer referencia al elemento 0.

Se asignan valores a los parámetros posicionales con el mandato especial set. El parámetro $0 seestablece a partir del argumento 0 al invocarse el shell. El carácter $ se utiliza para introducir parámetrosque pueden sustituirse.

Conceptos relacionadosInicio del shellPuede iniciar el shell Korn con el mandato ksh, el mandato psh (shell POSIX) o el mandato exec.Funciones del shell Korn

234 AIX Versión 7.2: Gestión del sistema operativo

Page 241: AIX Versión 7 - IBM

La palabra reservada function define funciones del shell. El shell lee y almacena funciones internamente.Los alias se resuelven cuando se lee la función. El shell ejecuta las funciones de la misma forma que losmandatos, pasando los argumentos como parámetros posicionales.Evaluación aritmética en el shell Korn o shell POSIXEl mandato incorporado normal let del shell Korn o del shell POSIX le permite realizar la aritmética deenteros.Referencia relacionadaMandatos compuestos del shell KornUn mandato compuesto puede ser una lista de mandatos simples, un conducto o puede empezar por unapalabra reservada. Cuando escriba scripts de shell, la mayor parte del tiempo utilizará mandatoscompuestos como, por ejemplo, if, while y for.

Sustitución de parámetros en el shell Korn o shell POSIXEl shell Korn o shell POSIX, le permite realizar sustituciones de parámetros.

A continuación se muestran parámetros sustituibles:

Elemento Descripción

${Parámetro } El shell lee todos los caracteres desde ${ hasta el } de cierre como siformaran parte de la misma palabra, incluso si esa palabra contiene llaveso metacaracteres. Se sustituye el valor, si lo hay, del parámetroespecificado. Las llaves son necesarias cuando el parámetro Parámetro vaseguido de una letra, un dígito o una carácter de subrayado que no va ainterpretarse como parte de su nombre o bien cuando en un subíndice seha incluido un parámetro con nombre.

Si el parámetro especificado contiene uno o más dígitos, es un parámetroposicional. Un parámetro posicional de más de un dígito debe estardelimitado entre llaves. Si el valor de la variable es * o @), se sustituye cadaparámetro posicional, empezando desde $1, (separándolos con uncarácter de separador de campo). Si se utiliza un identificador de matrizcon un subíndice * o @, se sustituye el valor para cada uno de loselementos (separándolos con un carácter de separador de campo).

${#Parámetro } Si el valor del parámetro Parámetro es * o @, se sustituye el número deparámetros posicionales. De lo contrario, se sustituye la longitud queespecifica el parámetro Parámetro.

${#Identificador[*]} Se sustituye el número de elementos de la matriz que especifica elparámetro Identificador.

${Parámetro:-Palabra} Si se ha establecido el parámetro Parámetro y no es nulo, se sustituye suvalor; de lo contrario, se sustituye el valor del parámetro Palabra.

${Parámetro:=Palabra} Si no se ha establecido el parámetro Parámetro o es nulo, se establece enel valor del parámetro Palabra. Los parámetros posicionales no puedenestablecerse de esta forma.

${Parámetro:?Palabra} Si se ha establecido el parámetro Parámetro y no es nulo, sustituya suvalor. De lo contrario, imprima el valor de la variable Palabra y salga delshell. Si se ha omitido la variable Palabra, se imprimirá un mensajeestándar.

${Parámetro:+Palabra} Si se ha establecido el parámetro Parámetro y no es nulo, sustituya el valorde la variable Palabra.

Gestión del sistema operativo 235

Page 242: AIX Versión 7 - IBM

Elemento Descripción

${Parámetro#Patrón } | ${ Parámetro##Patrón }

Si el parámetro de shell Patrón que se ha especificado coincide con elprincipio del valor del parámetro Parámetro, el valor de esta sustitución esel valor del parámetro Parámetro pero suprimiéndose la parte coincidente.De lo contrario, se sustituye el valor del parámetro Parámetro. En el primerformato, se suprime el patrón coincidente más pequeño. En el segundoformato, se suprime el patrón parte coincidente más grande.

${Parámetro%Patrón} | ${ Parámetro%%Patrón}

Si el Patrón de shell especificado coincide con el final del valor de lavariable Parámetro, el valor de esta sustitución es el valor de la variableParámetro, pero suprimiéndose la parte coincidente. De lo contrario, sesustituye el valor de la variable Parámetro. En el primer formato, sesuprime el patrón coincidente más pequeño; en el segundo formato, sesuprime el patrón coincidente más grande.

En las expresiones anteriores, la variable Palabra no se evalúa a menosque vaya a utilizarse como serie sustituida. Por lo tanto, en el ejemplosiguiente, el mandato pwd sólo se ejecuta si el distintivo -d no se haestablecido o es nulo:

echo ${d:-$(pwd)}

Nota: Si se omite : en las expresiones anteriores, el shell sólo comprueba si se ha establecido elparámetro Parámetro.

Conceptos relacionadosTerminales desatendidosTodos los sistemas son vulnerables si se dejan las sesiones iniciadas o desatendidos los terminales. Losproblemas más graves se producen cuando un gestor del sistema deja un terminal desatendido al que sele ha asignado autorización de usuario root. En general, los usuarios deben finalizar la sesión cada vezque abandonan sus terminales.

Parámetros especiales predefinidos en el shell Korn o el shell POSIXEl shell Korn o el shell POSIX establecen algunos parámetros automáticamente.

El shell define automáticamente los siguientes parámetros:

Elemento Descripción

@ Expande los parámetros posicionales, empezando por $1. Cada parámetro está separadopor un espacio.

Si utiliza " para delimitar $@, el shell considera que cada parámetro posicional es unaserie separada. Si no existe ningún parámetro posicional, el shell expande la sentenciapara obtener una serie nula sin comillas.

* Expande los parámetros posicionales, empezando por $1. El shell separa cada parámetrocon el primer carácter del valor del parámetro IFS.

Si utiliza " para delimitar $*, el shell incluye los valores de los parámetros posicionalesentre comillas dobles. Cada valor está separado por el primer carácter del parámetro IFS.

# Especifica el número (en decimales) de parámetros posicionales pasados al shell, sincontar el nombre del propio procedimiento de shell. El parámetro $# produce el númerodel parámetro posicional con la numeración más alta que se ha establecido. Una de lasutilizaciones principales de este parámetro es comprobar la presencia del númeronecesario de argumentos.

- Proporciona distintivos al shell al invocarse o bien con el mandato set.

236 AIX Versión 7.2: Gestión del sistema operativo

Page 243: AIX Versión 7 - IBM

Elemento Descripción

? Especifica el valor de salida del último mandato ejecutado. Su valor es una serie decimal.La mayoría de mandatos devuelve 0 para indicar que se ha finalizado satisfactoriamente.El propio shell devuelve el valor actual de la variable $? como valor de salida.

$ Identifica el número de proceso de este shell. Puesto que los números de proceso sonexclusivos entre todos los procesos existentes, esta serie de un máximo de 5 dígitos sueleutilizarse para generar nombres exclusivos para archivos temporales.

El ejemplo siguiente ilustra la práctica recomendada de crear archivos temporales en undirectorio utilizado solamente para dicho propósito:

temp=$HOME/temp/$$ls >$temp...rm $temp

! Especifica el número de proceso del último mandato de proceso en segundo plano que seha invocado.

zero (0) Expande al nombre del shell o script de shell.

Sustitución de nombre de archivo en el shell Korn o shell POSIXEl shell Korn, o el shell POSIX, realiza la sustitución de un nombre de archivo explorando cada palabra delmandato especificada por la variable Word en busca de determinados caracteres.

Si una palabra del mandato incluye los caracteres *), ? o [ y no se ha establecido el distintivo -f, el shellconsidera que la palabra es un patrón. El shell sustituye la palabra por nombres de archivo, ordenadospor el orden de clasificación en vigor en el escenario local, que coincidan con el patrón. Si el shell noencuentra un nombre de archivo que coincida con el patrón, no cambia la palabra.

Cuando el shell utiliza un patrón para la sustitución de nombre de archivo, los caracteres . y / debencoincidir explícitamente.

Nota: El shell Korn no trata estos caracteres de forma especial en otras instancias de la coincidencia depatrones.

Los siguientes caracteres de patrones de coincidencia indican las sustituciones que se indican acontinuación:

Elemento

Descripción

* Coincide con cualquier serie, incluyendo la serie nula.

? Busca la coincidencia de cualquier carácter individual.

[...] Busca la coincidencia de cualquiera de los caracteres delimitados. Un par de caracteresseparados por un guión (-) coincide con cualquier carácter que se encuentre léxicamentedentro del rango de inclusión de dicho par, de acuerdo con el orden de clasificación en vigor enel entorno local actual. Si el primer carácter que sigue al corchete de apertura [ es !, se buscala coincidencia de cualquier carácter no delimitado. En el conjunto de caracteres puedeincluirse un guión (-) si se coloca en la posición del primer o del último carácter.

También puede utilizar la notación [:charclass:] para buscar la coincidencia de nombres de archivosdentro de una indicación de rango. Este formato indica al sistema que busque la coincidencia decualquier carácter que pertenezca a la clase. La definición de qué caracteres constituyen una clase decaracteres específica se presenta mediante la categoría LC_CTYPE de la subrutina setlocale. Se reconocentodas las clases de caracteres especificadas en el entorno local actual.

A continuación se indican los nombres de algunas de las clases de caracteres:

Gestión del sistema operativo 237

Page 244: AIX Versión 7 - IBM

• alnum• alpha• cntrl• digit• graph• lower• print• punct• space• upper• xdigit

Por ejemplo, [[:upper:]] busca la coincidencia de cualquier letra en mayúsculas.

El shell Korn da soporte a la expansión de nombre de archivo basándose en la clasificación de elementos,de símbolos o clases de equivalencia.

Una ListaPatrones es una lista de uno o más patrones separados por una |. Los patrones compuestos seforman con uno o más de los caracteres siguientes:

Elemento Descripción

?(ListaPatrones) Opcionalmente, busca la coincidencia de cualquiera de los patronesespecificados

*(ListaPatrones ) Busca la coincidencia de cero o más apariciones de los patrones especificados

+(ListaPatrones ) Busca la coincidencia de una o más apariciones de los patrones especificados

@(ListaPatrones ) Busca la coincidencia de exactamente uno de los patrones especificados

!(ListaPatrones) Busca la coincidencia de cualquier elemento, excepto de uno de los patronesespecificados

La coincidencia con patrones tiene algunas restricciones. Si el primer carácter del nombre del archivo espunto (.), éste sólo puede coincidir con un patrón que también empiece por un punto. Por ejemplo, *coincide con los nombres de archivos myfile y yourfile, pero no con los nombres dearchivos .myfile y .yourfile. Para encontrar estos archivos, utilice un patrón como este:

.*file

Si un patrón no coincide con ningún nombre de archivo, se devuelve el propio patrón como resultado de labúsqueda de coincidencia que se ha intentado.

Los nombres de archivo y directorio no deben contener los caracteres *, ?, [ ni ] porque pueden provocaruna repetición infinita (es decir, bucles infinitos) durante los intentos de búsqueda de coincidencia depatrones.

Eliminación de delimitadoresSe eliminarán algunos caracteres si no están delimitados.

Los caracteres delimitadores, la barra inclinada invertida (\), la comilla simple (') y la comilla doble (")incluidos en la palabra original se eliminarán a menos que se hayan especificado entre delimitadores.

Redirección de la entrada y la salida en el shell Korn o POSIXAntes de ejecutar un mandato, el shell Korn explora la línea de mandatos en busca de caracteres deredirección. Estas notaciones especiales indican al shell que redirija la entrada y la salida.

Los caracteres de redirección pueden aparecer en un mandato simple o pueden preceder o seguir a unmandato. No se pasan al mandato llamado.

238 AIX Versión 7.2: Gestión del sistema operativo

Page 245: AIX Versión 7 - IBM

El shell realiza la sustitución del mandato y del parámetro antes de utilizar el parámetro Palabra o Dígito,excepto en los casos indicados. La sustitución del nombre de archivo sólo tiene lugar si el patrón coincidecon un único archivo y no se realiza la interpretación de los blancos.

Elemento Descripción

<Palabra Utiliza el archivo que especifica el parámetro Palabra como entrada estándar(descriptor de archivo 0).

>Palabra Utiliza el archivo que especifica el parámetro Palabra como salida estándar (descriptorde archivo 1). Si el archivo no existe, el shell lo crea. Si el archivo existe y se haespecificado la opción noclobber, se produce un error; de lo contrario, el archivo setrunca en la longitud cero.

Nota: Cuando varios shells tienen establecida la opción noclobber y redirigen la salidaal mismo archivo, podría producirse una condición de carrera, que podría dar comoresultado que uno o más de estos procesos de shell grabasen en el archivo. El shell nodetecta ni impide estas condiciones de carrera.

>|Palabra Igual que el mandato >Palabra, salvo que esta sentencia de redirección sustituye a laopción noclobber.

> >Palabra Utiliza el archivo que especifica el parámetro Palabra como salida estándar. Si elarchivo existe actualmente, el shell añade la salida al mismo (buscando primero elcarácter de fin de archivo). Si el archivo no existe, el shell lo crea.

<>Palabra Abre el archivo que especifica el parámetro Palabra para su lectura y grabación comoentrada estándar.

<<[-]Palabra Lee cada línea de entrada del shell hasta que localiza una línea que sólo contiene elvalor del parámetro Palabra o un carácter de fin de archivo. El shell no efectúasustitución de parámetros, sustitución de mandatos o sustitución de nombres dearchivo en el archivo especificado. El documento resultante, denominado documento deentrada de línea, se convierte en la entrada estándar. Si algún carácter del parámetroPalabra está delimitado, no se realizará ninguna interpretación de los caracteres deldocumento.

El documento de entrada en línea se trata como una única palabra que empieza después del siguientecarácter de nueva línea y que continúa hasta donde existe una línea que sólo contiene el delimitador, sincaracteres en blanco finales. De este modo, comienza, si existe, el siguiente documento de entrada enlínea. El formato es el siguiente:

[n]<<palabra documento de entrada en líneadelimitador

Si algún carácter de la palabra está delimitado, el delimitador se forma eliminando el carácter dedelimitación de la palabra. Las líneas del documento de entrada en línea no se expandirán. De locontrario, el delimitador es la propia palabra. Si ninguno de los caracteres de la palabra está delimitado,todas las líneas del documento de entrada en línea se expandirán para que tenga lugar la expansión delparámetro, la sustitución del mandato y la expansión aritmética.

El shell efectúa sustitución de parámetros para los datos redirigidos. Para evitar que el shell interprete loscaracteres \, $, y de comilla simple (') y el primer carácter del parámetro Palabra, especifique uncarácter \ delante de los caracteres.

Si se añade un guión (-) a <<, el shell eliminará todas las tabulaciones iniciales del parámetro Palabra yde documento.

Elemento Descripción

<&Dígito Duplica la entrada estándar del descriptor de archivo que especifica elparámetro Dígito

Gestión del sistema operativo 239

Page 246: AIX Versión 7 - IBM

Elemento Descripción

>& Dígito Duplica la salida estándar del descriptor de archivo que especifica el parámetroDígito

<&- Cierra la entrada estándar

>&- Cierra la salida estándar

<&p Mueve la entrada desde el coproceso a la entrada estándar

>&p Mueve la salida para el coproceso a la salida estándar

Si una de estas opciones de redirección va precedida de un dígito, el dígito especifica el número dedescriptor de archivo al que se hace referencia (en lugar del valor predeterminado de 0 ó 1). En elsiguiente ejemplo, el shell abre el descriptor de archivo 2 para grabar como duplicado del descriptor dearchivo 1:

... 2>&1

El orden en que se especifica la redirección es importante. El shell evalúa la redirección, de acuerdo conla asociación (DescriptorArchivo, Archivo), en el momento de realizar la evaluación. Por ejemplo, en lasentencia:

... 1>Archivo 2>&1

el descriptor de archivo 1 está asociado al archivo especificado por el parámetro Archivo. El shell asociael descriptor de archivo 2 al archivo que se ha asociado al descriptor de archivo 1 (Archivo). Si se invirtierael orden de las redirecciones, el descriptor de archivo 2 se asociaría al terminal (dando por supuesto queanteriormente hubiera sido el descriptor 1) y el descriptor de archivo 1 se asociaría al archivo queespecifica el parámetro Archivo.

Si un mandato va seguido de un ampersand (&) y el control de trabajos no está activo, la entrada estándarpredeterminada para el mandato es el archivo /dev/null vacío. De lo contrario, el entorno para laejecución de un mandato contiene los descriptores de archivo del shell que efectúa la llamada mediantelas especificaciones de entrada y de salida.

Conceptos relacionadosRedirección de la entrada y la salidaEl sistema operativo AIX permite manipular la entrada y salida (E/S) de datos hacia y desde el sistemautilizando mandatos y símbolos de E/S específicos.Tareas relacionadasRedirección de la salida en documentos de entrada en línea (here)Puede redirigir la salida a documentos de entrada en línea (here).

Recurso de coprocesoEl shell Korn o el shell POSIX le permiten ejecutar uno o varios mandatos como procesos en segundoplano. Estos mandatos, que se ejecutan desde un script de shell, se denominan coprocesos.

Designe un coproceso colocando el operador |& después de un mandato. Tanto la entrada como la salidaestándar del mandato se interconectan con el script.

Un coproceso debe cumplir las restricciones siguientes:

• Incluir un carácter de nueva línea al final de cada mensaje• Enviar cada mensaje de salida a salida estándar• Borrar la salida estándar después de cada mensaje

En el ejemplo siguiente se muestra el modo en que se pasa y devuelve la entrada de un coproceso:

echo "Initial process"./FileB.sh |&read -p a b c d

240 AIX Versión 7.2: Gestión del sistema operativo

Page 247: AIX Versión 7 - IBM

echo "Read from coprocess: $a $b $c $d"print -p "Passed to the coprocess"read -p a b c decho "Passed back from coprocess: $a $b $c $d"

FileB.sh echo "The coprocess is running" read a b c d echo $a $b $c $d

La salida estándar resultante es la siguiente:

Initial processRead from coprocess: The coprocess is runningPassed back from coprocess: Passed to the coprocess

Utilice el mandato print -p para la grabación del coproceso. Utilice el mandato read -p para lalectura del coproceso.

Conceptos relacionadosMandatos del shell Korn o shell POSIXEl shell Korn es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Seajusta a la Interfaz de Sistema Operativo Portable para Entornos del Sistema (POSIX), un estándarinternacional para sistemas operativos.

Redirección de la entrada y salida de coprocesoLa entrada y salida estándar de un coproceso se reasigna a un descriptor de archivo numerado utilizandola redirección de E/S.

Por ejemplo, el mandato:

exec 5>&p

mueve la entrada del coproceso al descriptor de archivo 5.

Tras haberse completado este coproceso, puede utilizar la sintaxis de redirección estándar para redirigirla salida del mandato al coproceso. También puede iniciar otro coproceso. La salida de amboscoprocesos se asocia al mismo conducto y se lee con el mandato read -p. Para detener el coproceso,escriba lo siguiente:

read -u5

Mandatos incorporados del shell Korn o POSIXLos mandatos especiales se crean en el shell Korn y en el shell POSIX y se ejecutan en el proceso deshell.

A menos que se indique algo distinto, la salida se graba en el descriptor de archivo 1 y el estado de lasalida es cero (0) si el mandato no contiene ningún error de sintaxis. Se permite la redirección de entraday de salida. Existen dos tipos de mandatos incorporados: los mandatos incorporados especiales y losmandatos incorporados normales.

Los mandatos especiales incorporados se diferencian de los mandatos normales incorporados de estemodo:

• Un error de sintaxis en un mandato incorporado especial podría dar lugar a la finalización del shell queejecuta el mandato. Esto no ocurre si se produce un error de sintaxis en un mandato normalincorporado. Si un error de sintaxis en un mandato incorporado especial no finaliza el programa deshell, el valor de salida es distinto de cero.

• Las asignaciones de variables especificadas con mandatos especiales incorporados permanecenvigentes después de que se complete el mandato.

• Las redirecciones de E/S se procesan después de las asignaciones de parámetros.

Además, las palabras con el formato de asignación de parámetros que se encuentran después de losmandatos especiales export, readonly y typeset, se expanden con las mismas normas que la

Gestión del sistema operativo 241

Page 248: AIX Versión 7 - IBM

asignación de parámetros. La sustitución de la tilde se realiza después del carácter = y la división depalabras y la sustitución del nombre no se realizan.

Conceptos relacionadosMandatos del shell Korn o shell POSIXEl shell Korn es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Seajusta a la Interfaz de Sistema Operativo Portable para Entornos del Sistema (POSIX), un estándarinternacional para sistemas operativos.Funciones del shell KornLa palabra reservada function define funciones del shell. El shell lee y almacena funciones internamente.Los alias se resuelven cuando se lee la función. El shell ejecuta las funciones de la misma forma que losmandatos, pasando los argumentos como parámetros posicionales.Referencia relacionadaLista de mandatos incorporados especiales del shell Korn o el shell POSIXLos mandatos especiales están incorporados en el shell Korn y el shell POSIX y se ejecutan en el procesode shell.Mandatos incorporados normales del shell Korn o el shell POSIXLa lista siguiente muestra los mandatos incorporados normales del shell Korn o el shell POSIX.

Descripciones de mandatos incorporados especiales para el shell Korn o el shell POSIXLos mandatos especiales están incorporados en el shell Korn y el shell POSIX y se ejecutan en el procesode shell.

A continuación se describen los mandatos incorporados especiales del shell Korn:

: eval newgrp shift . exec readonly times break exit return trap continue export set typeset unset

Elemento Descripción

: [Argumento ...] Expande únicamente argumentos. Se utiliza cuando es necesario un mandato, comoen la condición then de un mandato if, pero el mandato no ha de realizar ningunaacción.

. Archivo[Argumento ...]

Lee el archivo completo especificado y a continuación ejecuta los mandatos. Losmandatos se ejecutan en el entorno de shell actual. La vía de búsqueda queespecifica la variable PATH se utiliza para buscar el directorio que contiene elarchivo especificado. Si se especifican argumentos, pasan a ser los parámetrosposicionales. De lo contrario, los parámetros posicionales permanecen intactos. Elestado de salida es el estado de salida del último mandato que se ha ejecutado.Consulte el apartado “Sustitución de parámetros en el shell Korn o shell POSIX” enla página 235 para obtener más información sobre los parámetros posicionales.

Nota: El mandato .Archivo [Argumento ...] lee todo el archivo antes de que seejecuten los mandatos. Por lo tanto, los mandatos alias y unalias del archivo nose aplican a las funciones que se definen en el archivo.

break [n] Sale del bucle de delimitación for, while, until o select, si existe uno. Si especifica elparámetro n, el mandato realizará interrupciones basándose en el número de nivelesque se especifica mediante el parámetro n. El valor de n puede ser cualquier enteroigual o mayor que 1.

continue [ n ] Reanuda la siguiente iteración del bucle de delimitación for, while, until o select. Siespecifica el parámetro n, el mandato se reanuda en el nésimo bucle delimitador. Elvalor de n puede ser cualquier entero igual o mayor que 1.

242 AIX Versión 7.2: Gestión del sistema operativo

Page 249: AIX Versión 7 - IBM

Elemento Descripción

eval[Argumento ...]

Lee los argumentos especificados como entrada al shell y ejecuta el mandato omandatos resultantes.

exec[Argumento ...]

Ejecuta un mandato especificado por el argumento en lugar de este shell (sin crearun proceso nuevo). Los argumentos de entrada y salida pueden aparecer y afectar alproceso actual. Si no especifica un argumento, el mandato exec modificará losdescriptores de archivos de conformidad con la lista de redirección de la entrada y lasalida. En este caso, cuando haya más de dos descriptores de archivo que se abrencon este mecanismo se cierra cuando se llama a otro programa.

exit [n] Sale del shell con el estado de salida que especifica el parámetro n. El parámetro ndebe ser un entero decimal sin signo entre el 0 y el 255. Si omite el parámetro n, elestado de salida es el del último mandato que se ha ejecutado. Un carácter de fin dearchivo también provoca la salida del shell a menos que se haya activado la opciónignoreeof del mandato especial set.

export -p[Nombre[=Valor]] ...

Marca los nombres especificados para su exportación automática al entorno de losmandatos que se ejecutarán posteriormente.

-p graba en salida estándar los nombres y valores de todas las variables exportadas,en el formato siguiente:

"export %s= %s\n", <nombre> <valor>

newgrp [Grupo] Equivalente al mandato exec/usr/bin/newgrp [Grupo].

Nota: Este mandato no devuelve salida.

readonly -p[Nombre[=Valor]] ...

Marca los nombres que especifica el parámetro Nombre como de sólo lectura.Ninguna asignación posterior puede cambiar estos nombres.

-p graba en salida estándar los nombres y valores de todas las variables exportadas,en el formato siguiente:

"export %s= %s\n", <nombre> <valor>

return [n] Hace que la función de un shell vuelva al script de llamada. El estado de retorno seespecifica mediante el parámetro n. Si omite el parámetro n, el estado de retorno esel del último mandato que se ha ejecutado. Si invoca el mandato return fuera deuna función o script, es igual a un mandato exit.

Gestión del sistema operativo 243

Page 250: AIX Versión 7 - IBM

Elemento Descripción

set [+ |-abCefhkmnostuvx ] [+ |-oOpción]... [+ |-ANombre][Argumento ...]

Si no se especifica ninguna opción o argumento, el mandato set graba los nombres ylos valores de todas las variables de shell en el orden de clasificación del entornolocal actual. Cuando se especifican opciones, éstas establecen o eliminan elestablecimiento de los atributos del shell, que se describen a continuación:-A

Asignación de matriz. Elimina el establecimiento del parámetro Nombre y asignavalores secuencialmente a partir de la lista del parámetro Argumento que se haespecificado. Si se utiliza el distintivo +A, no se elimina el establecimiento delparámetro Nombre en primer lugar.

-aExporta automáticamente todos los parámetros posteriores que se definan.

-bNotifica al usuario las finalizaciones de trabajos asíncronos o en segundo plano.

-CEquivalente a set -o noclobber.

-eEjecuta la ruptura ERR, si se ha establecido, y sale si un mandato tiene un estadode salida que no es cero a menos que el mandato simple:

+ esté contenido en una lista && o ||+ sea el mandato inmediatamente después de if, while o until+ esté contenido en el conducto después de !

Esta modalidad está inhabilitada mientras se leen perfiles.-f

Inhabilita la sustitución de nombres de archivo.-h

Designa cada mandato como un seudónimo con seguimiento la primera vez quese encuentra.

-kColoca todos los argumentos de asignación de parámetros en el entorno de unmandato, no sólo los argumentos que preceden al nombre del mandato.

-mEjecuta trabajos en segundo plano en un proceso independiente e imprime unalínea cuando se finaliza. Se informa del estado de salida de trabajos en segundoplano en un mensaje de finalización. En los sistemas que disponen de control detrabajos, este distintivo se activa automáticamente para los shells interactivos.Para obtener más información, consulte el apartado “Control de trabajos en elshell Korn o el shell POSIX” en la página 254.

-nLee mandatos y comprueba si existen errores de sintaxis, pero no los ejecuta.Este distintivo se ignora para shells interactivos.

244 AIX Versión 7.2: Gestión del sistema operativo

Page 251: AIX Versión 7 - IBM

Elemento Descripción

-o OpciónImprime los valores actuales de la opción y un mensaje de error si no especificaun argumento. Puede establecer más de una opción en una única línea demandatos ksh. Si se utiliza el distintivo +o, se elimina el establecimiento de laopción especificada. Cuando se especifican argumentos, éstos dan lugar alestablecimiento o a la eliminación del establecimiento de los parámetrosposicionales. Los argumentos, como especifica la variable Opción, pueden seruno de los siguientes:allexport

Igual que el distintivo -a.bgnice

Ejecuta todos los trabajos en segundo plano a una prioridad inferior. Se tratade la modalidad por omisión.

emacsEntra en un editor en línea de estilo emacs para la entrada de mandatos.

errexitIgual que el distintivo -e.

gmacsEntra en un editor en línea estilo gmacs para entrada de mandatos.

ignoreeofNo sale del shell cuando encuentra un carácter de fin de archivo. Para salirdel shell, debe utilizar el mandato exit o pulsar la secuencia de teclasControl-D más de 11 veces.

keywordEs igual al distintivo -k.

Nota: Este distintivo sirve para la compatibilidad con versiones anterioresdel shell Bourne. Se desaconseja su uso.

markdirsAñade una barra inclinada invertida / a todos los nombres de directorio queson el resultado de una sustitución de nombre de archivo.

monitorIgual que el distintivo -m.

noclobberImpide que la redirección trunque archivos existentes. Cuando se especificaesta opción, una barra vertical debe seguir al símbolo de redirección (>|)para truncar un archivo.

noexecIgual que el distintivo -n.

noglobIgual que el distintivo -f.

nologEvita que las definiciones de los archivos .profile y $ENV se guarden en elarchivo histórico.

nounsetIgual que el distintivo -u.

privilegedIgual que el distintivo -p.

Gestión del sistema operativo 245

Page 252: AIX Versión 7 - IBM

Elemento Descripción

trackall

Igual que el distintivo -h.verbose

Igual que el distintivo -v.vi

Especifica la modalidad de inserción de un editor en línea de estilo vi para laentrada de mandatos. Si entra el carácter de escape 033, situará el editor enmodalidad de movimiento. Si pulsa la tecla Intro, enviará una línea.

virawProcesa cada carácter que se escribe en modalidad vi.

xtraceIgual que el distintivo -x.

-pInhabilita el proceso del archivo $HOME/.profile y utiliza el archivo /etc/suid_profile en lugar del archivo ENV. Esta modalidad se habilita siempreque el ID de usuario vigente (UID) o ID de grupo (GID) no sea igual que el UID oGID real. Desactivar esta opción define el UID o GID vigente en el UID y GUI real.

Nota: El sistema no soporta la opción -p porque el sistema operativo no soportalos scripts de shell setuid.

-sOrdena los parámetros posicionales lexicográficamente.

-tSale después de leer y ejecutar un mandato.

Nota: Este distintivo sirve para la compatibilidad con versiones anteriores delshell Bourne. Se desaconseja su uso.

-u Cuando se sustituyan parámetros a los que se ha eliminado la definición, losinterpreta como errores.

-vImprime las líneas de entrada del shell a medida que se leen.

-xImprime mandatos y sus argumentos a medida que se ejecutan.

-Desactiva los distintivos -x y -v y detiene el examen de argumentos paradistintivos.

—Impide que se modifique ningún distintivo. Esta opción es útil para establecer elparámetro $1 en un valor que empiece por -. Si no hay ningún argumento quesiga a este distintivo, no se definen los parámetros posicionales.

Si delante de cualquier distintivo del mandato set se especifica un signo + en lugarde un signo -, el distintivo quedará desactivado. Puede utilizar estos distintivoscuando llame al shell. Cuando se invoca 'set +o' sin ningún argumento, sevisualizan los valores de la opción actual en un formato adecuado para volverlos aentrar en el shell como mandatos que obtienen el mismo valor de la opción. Elconjunto actual de distintivos se encuentra en el parámetro $-. A menos queespecifique el distintivo -A, los argumentos restantes son parámetros posicionales yse les asigna, por orden, $1, $2, ..., etc. Si no se proporciona ningún argumento,los nombres y los valores de todos los parámetros con nombre se imprimirán en lasalida estándar.

246 AIX Versión 7.2: Gestión del sistema operativo

Page 253: AIX Versión 7 - IBM

Elemento Descripción

shift [n] Renombra los parámetros posicionales, comenzando por $n+1 ... hasta $1 ... El valorpredeterminado del parámetro n es 1. El parámetro n es una expresión aritméticaque se evalúa en un número no negativo menor o igual al parámetro $#.

times Imprime las horas de usuario y del sistema totales para el shell y para procesos quese ejecutan desde el shell.

trap [Mandato][Señal] ...

Ejecuta el mandato especificado cuando el shell recibe la señal o señalesespecificadas. El parámetro Mandato se lee una vez cuando se establece la ruptura yuna vez cuando se toma la ruptura. El parámetro Señal puede especificarse como unnúmero o como el nombre de la señal. Los mandatos de ruptura se ejecutan enorden de número de señal. Cualquier intento de definir una ruptura o una señal quese ignoró en la entrada al shell actual no es efectivo.

Si el mandato es -, todas las rupturas se restablecerán en sus valores originales. Siomite el mandato y la primera señal es un número de señal numérica, el mandatoksh restablece el valor del parámetro o parámetros Señal en los valores originales.

Nota: Si omite el mandato y la primera señal es un nombre simbólico, la señal seinterpreta como un mandato.

Si el valor del parámetro Señal es la señal ERR, el mandato especificado se ejecutacuando un mandato tiene un estado de salida que no es cero. Si la señal es DEBUG,el mandato especificado se ejecutará después de cada mandato. Si el valor deparámetro Señal es la señal 0 o EXIT y se ejecuta el mandato trap dentro delcuerpo de una función, el mandato especificado se ejecuta cuando se completa lafunción. Si el parámetro Señal es 0 o EXIT para un mandato trap establecido fuerade cualquier función, el mandato especificado se ejecuta a la salida del shell.

Nota: Si un script recibe una señal SIGINT dentro de una función, no se podrácapturar la señal EXIT cuando se haya salido del shell.

El mandato trap, sin argumentos, imprime una lista de los mandatos que se asociana cada número de señal. Si el mandato especificado es NULL, indicado como ""(comillas vacías), el mandato ksh ignorará la señal. Para obtener más informaciónacerca de cómo el shell Korn o el shell POSIX leen un carácter como carácterregular, consulte “Delimitación de caracteres en el shell Korn o el shell POSIX” en lapágina 226.

Para obtener una lista completa de los valores del parámetro Señal utilizados en elmandato trap sin el prefijo SIG, consulte la subrutin sigaction, sigvec osignal.

Gestión del sistema operativo 247

Page 254: AIX Versión 7 - IBM

Elemento Descripción

typeset[+HLRZfilrtux [n]][Nombre[=Valor]]...

Define atributos y valores para parámetros de shell. Cuando se invoca dentro de unafunción, se crea una nueva instancia del parámetro Nombre. El valor y el tipo delparámetro se restauran cuando se completa la función. Puede especificar lossiguientes distintivos con el mandato typeset:-H

Proporciona correlación AIX a archivo del sistema principal en máquinas que noson AIX.

-LJustifica el texto por la izquierda y elimina los blancos iniciales del parámetroValor. Si el parámetro n tiene un valor que no es cero, define la anchura delcampo; de lo contrario, se determina utilizando la anchura del valor de suprimera asignación. Cuando se asigna el parámetro, se rellena por la derechacon blancos o se trunca, si es necesario, para que encaje en el campo. Los cerosiniciales se eliminan si también se ha establecido el distintivo -Z. El distintivo -Rse desactiva.

-RJustifica por la derecha y rellena con blancos iniciales. Si el parámetro n tiene unvalor que no es cero, define la anchura del campo; de lo contrario, se determinautilizando la anchura del valor de su primera asignación. El campo permanecerellenado con blancos o se trunca desde el final si se reasigna el parámetro. Eldistintivo L se desactiva.

-ZJustifica el texto por la derecha y lo rellena con ceros iniciales si el primercarácter que no es un blanco es un dígito y no se ha establecido el distintivo -L.Si el parámetro n tiene un valor que no es cero, define la anchura del campo; delo contrario, se determina utilizando la anchura del valor de su primeraasignación.

-fIndica que los nombres hacen referencia a los nombres de funciones, en lugarde nombres de parámetros. No pueden realizarse asignaciones y los otrosdistintivos válidos son -t, -u y -x. El distintivo -t activa el rastreo de ejecuciónpara esta función. El distintivo -u hace que esta función se marque como nodefinida. La definición de función se busca en la variable FPATH cuando se hacereferencia a la función. El distintivo -x permite dejar en vigor la definición de lafunción entre scripts de shell que no son una invocación independiente delmandato ksh-

-iIdentifica el parámetro como un entero, con una aritmética más rápida. Si elparámetro n tiene un valor que no es cero, define la base aritmética de salida; delo contrario, la primera asignación determina la base de salida.

-lConvierte todos los caracteres mayúsculas en minúsculas. El distintivo deconversión en mayúsculas -u está desactivado.

-rMarca los nombres que especifica el parámetro Nombre como de sólo lectura.Ninguna asignación posterior puede cambiar estos nombres.

248 AIX Versión 7.2: Gestión del sistema operativo

Page 255: AIX Versión 7 - IBM

Elemento Descripción

-tIdentifica los parámetros designados. El usuario puede definir los y no tieneningún significado especial para el shell.

-uConvierte todos los caracteres en minúsculas a caracteres mayúsculas. Eldistintivo de minúsculas -l está desactivado.

-xMarca el nombre que especifica el parámetro Nombre para su exportaciónautomática al entorno de los mandatos que se ejecutarán posteriormente.

La utilización de un signo + en lugar de un signo - desactiva los distintivos delmandato typeset. Si no especifica parámetros Nombre pero sí especificadistintivos, se imprimirá una lista de los nombres (y, opcionalmente, de losvalores) de los parámetros en los que se han establecido esos distintivos. (Lautilización de un signo + en lugar de un signo - impide que se impriman losvalores.) Si no especifica nombres ni distintivos, se imprimen los nombres yatributos de todos los parámetros.

unset [-fv ]Nombre ...

Elimina la definición de los valores y atributos de los parámetros proporcionados porla lista de nombres. Si se especifica -v, Nombre hace referencia a un nombre devariable, y el shell eliminará su establecimiento y la eliminará del entorno. No puedeeliminarse la definición de las variables de sólo lectura. La eliminación delestablecimiento de las variables ERRNO, LINENO, MAILCHECK, OPTARG, OPTIND,RANDOM, SECONDS, TMOUT y subrayado ( _) eliminará sus significados especiales,aunque se asignen posteriormente.

Si se establece el distintivo -f, Nombre hace referencia a un nombre de función y elshell eliminará la definición de la función.

Descripciones de mandatos incorporados normales para el shell Korn o el shell POSIXLos mandatos incorporados para los shells Korn o POSIX se describen a continuación.

El shell Korn proporciona los siguientes mandatos incorporados normales:

alias fg print ulimit bg getopts pwd umask cd jobs read unalias command kill setgroups wait echo let setsenv test whence fc

Elemento Descripción

alias [-t ] [-x ][NombreAlias[=Serie]] ...

Crea o redefine las definiciones de alias o graba definiciones de alias existentes enla salida estándar.

Para obtener información, consulte el mandato alias.

bg [IDTrabajo...] Sitúa el trabajo especificado en segundo plano. El trabajo actual se establece comotrabajo en segundo plano si el parámetro IDTrabajo no se ha especificado. Consulteel apartado “Control de trabajos en el shell Korn o el shell POSIX” en la página 254para obtener más información sobre el control de trabajos.

Para obtener más información acerca de la ejecución de trabajos en el fondo,consulte el mandato bg.

Gestión del sistema operativo 249

Page 256: AIX Versión 7 - IBM

Elemento Descripción

cd [Argumento]

cd Viejo Nuevo Este mandato puede estar en uno de los dos formatos. En el primer formato,cambia del directorio actual al directorio que especifica el parámetro Argumento. Siel valor del parámetro Argumento es un guión (-), se cambia el directorio por elanterior. La variable de shell HOME es el valor predeterminado del parámetroArgumento. La variable PWD se establece en el valor del directorio actual.

La variable de shell CDPATH define la vía de acceso de búsqueda para el directorioque contiene el valor del parámetro Argumento. Los nombres de directorioalternativos se separan mediante dos puntos (:). La vía de acceso por omisión esnula, especificando el directorio actual. El directorio actual está especificado por unnombre de vía de acceso nulo, que aparece inmediatamente después del signo deigual o entre los delimitadores de dos puntos en cualquier parte de la lista de víasde acceso. Si el argumento especificado empieza por una barra inclinada (/), no seutiliza la vía de búsqueda. De lo contrario, se busca en todos los directorios de lavía de acceso.

El segundo formato del mandato cd sustituye la serie especificada por la variableNuevo para la serie especificada por la variable Viejo del nombre de directorioactual, PWD, e intenta cambiar a este nuevo directorio.

command [-p ]NombreMandato[Argumento ...]

command [-v | -V ]NombreMandato

Hace que el shell trate al mandato y a los argumentos especificados como si fueranun mandato simple, suprimiendo la búsqueda de la función de shell.

Para obtener más información, consulte el mandato command.

echo [Serie ...] Graba series de caracteres en salida estándar. Consulte el mandato echo paraobtener información sobre su utilización y conocer su descripción. El distintivo -nno está soportado.

fc [-r ] [-e Editor][Primero [Último]]

fc -l [-n ] [-r ][Primero [Último]]

fc -s [Viejo=Nuevo] [Primero]

Visualiza el contenido del archivo histórico de mandatos o llama a un editor paramodificar y volver a ejecutar mandatos entrados previamente en shell.

Para obtener más información, consulte el mandato fc.

fg [IDTrabajo] Sitúa cada trabajo especificado en el primer plano. Si no especifica ningún trabajo,el mandato sitúa el trabajo actual en el primer plano.

Para obtener más información acerca de la ejecución de trabajos en primer plano,consulte el mandato fg.

getoptsSerieOpciónNombre[Argumento ...]

Comprueba el parámetro Argumento en busca de opciones legales.

Para obtener más información consulte el mandato getopts.

250 AIX Versión 7.2: Gestión del sistema operativo

Page 257: AIX Versión 7 - IBM

Elemento Descripción

jobs [-l | -n | -p ][IDTrabajo ...]

Muestra el estado de trabajos iniciados en el entorno de shell actual. Si no seespecifica ningún trabajo específico en el parámetro IDTrabajo, se visualizará lainformación de estado para todos los trabajos activos. Si se informa de lafinalización de un trabajo, el shell elimina el ID del proceso de dicho trabajo de lalista de los que conoce el entorno de shell actual.

Para obtener más información, consulte el mandato jobs.

kill [ -s{ NombreSeñal |NúmeroSeñal } ]IDProceso...

Envía una señal (por omisión, la señal SIGTERM) a un proceso en ejecución. Estaacción por omisión normalmente detiene los procesos. Si desea detener unproceso, especifique el ID del proceso (PID) en la variable IDProceso. El shellinforma al PID de cada proceso que está ejecutándose en segundo plano (a menosque inicie más de un proceso en un conducto, en cuyo caso el shell informa delnúmero del último proceso). También puede utilizar el mandato ps para localizar elnúmero de ID de proceso de mandatos.

kill [ -NombreSeñal | -NúmeroSeñal ]IDProceso...

kill -l[ EstadoSalida ]

Lista nombres de señales.

Para obtener más información, consulte el mandato kill.

let Expresión ... Evalúa expresiones aritméticas especificadas. El estado de salida es 0 si el valor dela última expresión es distinto de cero y 1 si sucede lo contrario. Consulte elapartado “Evaluación aritmética en el shell Korn o shell POSIX” en la página 221para obtener más información.

print [-Rnprsu[n]] [Argumento ...]

Imprime la salida del shell. Si no especifica ningún distintivo o si especifica losdistintivos de guión (-) o doble guión (—), los argumentos se imprimen en la salidaestándar tal como describe el mandato echo. Los distintivos hacen lo siguiente:-R

Imprime en modalidad bruta (los convenios de escape del mandato echo sepasan por alto). El distintivo -R imprime todos los argumentos y distintivossubsiguientes distintos de -n.

-nImpide que se añada un carácter de nueva línea a la salida.

-pGraba los argumentos en el conducto del proceso ejecutado con |& en lugar deen la salida estándar.

-rImprime en modalidad bruta. Los convenios de escape del mandato echo sepasan por alto.

-sGraba los argumentos en el archivo histórico en lugar de en la salida estándar.

-uEspecifica un número de unidad de descriptor de archivo de un dígito, n, en elque se coloca la salida. El valor predeterminado es 1.

pwd Equivale a print -r - $PWD.

Nota: El mandato interno pwd del shell Korn no soporta los enlacessimbólicos.

read [-prsu [n ]][Indicador?Nombre][Nombre...]

Acepta la entrada del shell. Se lee una línea y ésta se divide en campos, utilizandolos caracteres de la variable IFS como separadores.

Para obtener más información, consulte el mandato read.

Gestión del sistema operativo 251

Page 258: AIX Versión 7 - IBM

Elemento Descripción

setgroups Ejecuta el mandato /usr/bin/setgroups, el cual se ejecuta como un shell separado.Consulte el mandato setgroups para obtener información acerca de estemandato. No obstante, existe una diferencia. El mandato incorporado setgroupsinvoca un subshell, pero el mandato setgroups sustituye el shell que estáejecutándose actualmente. Puesto que el mandato incorporado sólo recibe soportepor razones de compatibilidad, se recomienda que los scripts utilicen el nombreabsoluto de vía de acceso /usr/bin/setgroups en lugar del mandatoincorporado del shell.

setsenv Ejecuta el mandato /usr/bin/setsenv, que sustituye al shell actualmente enejecución. Consulte el manual setsenv para obtener información acerca de estemandato.

test Es igual a [expresión]. Consulte el apartado “Expresiones condicionales para elshell Korn o shell POSIX” en la página 224 para obtener información acerca de suutilización y conocer su descripción.

252 AIX Versión 7.2: Gestión del sistema operativo

Page 259: AIX Versión 7 - IBM

Elemento Descripción

ulimit [-HSacdfmst ][Límite]

Establece o visualiza los límites de recursos de procesos del usuario, tal como sedefinen en el archivo /etc/security/limits. Este archivo contiene los límitespor omisión siguientes:

fsize = 2097151core = 2048cpu = 3600data = 131072rss = 65536stack = 8192threads = -1

Estos valores se utilizan como valores predeterminados cuando se añade unusuario al sistema. Los valores se establecen con el mandato mkuser cuando elusuario se añade al sistema o se cambia con el mandato chuser.

Las categorías de los límites pueden ser dinámicas o fijas. Los usuarios puedencambiar sus límites flexibles, hasta el valor máximo establecido por los límites fijos,utilizando el mandato ulimit. Debe tener autorización de usuario root paracambiar los límites fijos de recursos.

Muchos sistemas no contienen uno o más de dichos límites. El límite de un recursoespecificado se establece cuando se especifica el parámetro Límite. El valor delparámetro Límite puede ser un número de la unidad especificada con cada recursoo el valor unlimited. Puede especificar los distintivos del mandato ulimitsiguientes:

-HEspecifica que se define el límite fijo del recurso proporcionado. Si tieneautorización de usuario root, puede aumentar el límite fijo. Cualquier usuariopuede reducirlo.

-SEspecifica que se define el límite dinámico para el recurso proporcionado. Unlímite limitado puede aumentarse hasta el valor del límite fijo. Si no seespecifica la opción -H ni -S, el límite se aplica a ambos.

-aLista todos los límites de recursos actuales.

-cEspecifica el número de bloques de 512 bytes en el tamaño de vuelcos deimagen de memoria.

-dEspecifica el tamaño, en KB, del área de datos.

-fEspecifica el número de bloques de 512 bytes para archivos grabados por losprocesos hijo (pueden leerse archivos de cualquier tamaño).

-mEspecifica el número de KB para el tamaño de la memoria física.

-nEspecifica el límite en el número de descriptores de archivos que un procesopodría haber abierto.

-rEspecifica el límite en el número de hebras por proceso.

-sEspecifica el número de KB para el tamaño del área de pila.

-tEspecifica el número de segundos que se utilizará en cada proceso.

Gestión del sistema operativo 253

Page 260: AIX Versión 7 - IBM

Elemento Descripción

El límite del recurso actual se imprime cuando se omite la variable Límite. El límiteflexible se imprime, a menos que especifique el distintivo -H. Cuando especifiquemás de un recurso, el nombre y unidad del límite se imprimen antes del valor. Si nose proporciona ninguna opción, se supone el distintivo -f. Cuando cambie el valor,establezca los límites fijos y flexibles para Límite a menos que especifique -H o -S.

Para obtener más información sobre los límites de recursos del usuario y delsistema, consulte la subrutina getrlimit, setrlimit o vlimit.

umask [-S ][Máscara]

Determina los permisos de archivo. Este valor, junto con los permisos del procesode creación, determina los permisos de un archivo cuando se crea el archivo. Elvalor predeterminado es 022. Si no se especifica el parámetro Máscara, el mandatoumask visualiza, en salida estándar, la máscara de creación de modalidad dearchivo del entorno de shell actual.

Para obtener más información acerca de los permisos de archivos, consulte elmandato umask.

unalias { -a |NombreAlias... }

Elimina la definición de cada nombre de alias que se ha especificado o bien eliminatodas las definiciones de alias si se utiliza el distintivo -a. Se eliminan lasdefiniciones de alias del entorno de shell actual.

Para obtener más información, consulte el mandato unalias.

wait [IDProceso...] Espera al trabajo especificado y termina. Si no especifica un trabajo, el mandatoespera a los procesos hijo activos actualmente. El estado de salida de estemandato es el del proceso al que espera.

Para obtener más información, consulte el mandato wait.

whence [-pv ]Nombre ...

Indica, para cada nombre especificado, cómo se interpretaría si se utilizara comoun nombre de mandato. Cuando se utilice sin ninguno de los distintivos, whencevisualizará el nombre absoluto de vía de acceso, si existe, que corresponde a cadanombre.-p

Realiza una búsqueda de vía de acceso para el nombre o nombresespecificados, aunque estos sean alias, funciones o palabras reservadas.

-vProduce un informe más detallado que especifica el tipo de cada nombre.

Control de trabajos en el shell Korn o el shell POSIXEl shell Korn, o el shell POSIX, proporciona un recurso para controlar secuencias de mandatos o trabajos.

Cuando ejecuta el mandato especial set -m, el shell Korn asocia un trabajo a cada conducto. Mantieneuna tabla de los trabajos actuales, que se imprimen mediante el mandato jobs, y les asigna númerosenteros pequeños.

Cuando se inicia un trabajo como proceso en segundo plano con un ampersand (&), el shell imprime unalínea similar a la siguiente:

[1] 1234

Esta salida indica que el trabajo, que se ha iniciado como proceso en segundo plano, era el trabajonúmero 1. También muestra que el trabajo tenía un proceso (de nivel superior) cuyo ID de proceso era1234.

Si va a ejecutar un trabajo y desea efectuar alguna otra operación, utilice la secuencia de teclas Control-Z.Esta secuencia de teclas envía una señal STOP al trabajo actual. Por lo general, el shell indica que el

254 AIX Versión 7.2: Gestión del sistema operativo

Page 261: AIX Versión 7 - IBM

trabajo se ha detenido y, a continuación, visualiza un indicador de shell. Seguidamente, puede manipularel estado de ese trabajo (estableciéndolo como proceso en segundo plano con el mandato bg), ejecutarotros mandatos y, finalmente, volver a establecer el trabajo como proceso en primer plano con elmandato fg. La secuencia de teclas Control-Z se aplica inmediatamente y es como una interrupción entanto que, cuando se escribe la secuencia, el shell descarta la salida pendiente y la entrada no leída.

Un trabajo que se ejecuta en segundo plano se detiene e intenta leer desde el terminal. Normalmente, sepermite a los trabajos en segundo plano generar salida. Puede inhabilitar esta opción emitiendo elmandato stty tostop. Si establece esta opción del terminal, los trabajos en segundo plano se detendráncuando intenten producir la salida o leer la entrada.

Puede hacer referencia a los trabajos del shell Korn de varios modos. A un trabajo se hace referencia pormedio del ID de proceso de cualquiera de sus procesos o bien de una de las formas siguientes:

Elemento Descripción

%Número Especifica el trabajo que tiene el número especificado.

%Serie Especifica cualquier trabajo cuya línea de mandatos empieza por la variable Serie.

%?Serie Especifica cualquier trabajo cuya línea de mandato contiene la variable Serie.

%% Especifica el trabajo actual.

%+ Equivale a %%.

%- Especifica el trabajo anterior.

Este shell reconoce inmediatamente si el estado del proceso ha cambiado. Normalmente, le informasiempre que un trabajo queda bloqueado de forma que no es posible continuar. El shell realiza estaacción justo antes de imprimir una indicación, por lo tanto, no vuelve a interrumpir el trabajo del usuario.

Cuando la modalidad de supervisión está habilitada, cada trabajo en segundo plano que se completadesencadena las rupturas que se han establecido para la señal CHLD.

Si intenta abandonar el shell (escribiendo exit o utilizando la secuencia de teclas Control-D) mientrashay trabajos detenidos o en ejecución, el sistema avisa con el mensaje Hay trabajos detenidos (enejecución). Utilice el mandato jobs para ver qué trabajos están afectados. Si, inmediatamente, vuelvea intentar salir, el shell finalizará los trabajos detenidos y en ejecución sin avisarle.

Manejo de señalesLas señales SIGINT y SIGQUIT para un mandato invocado se pasan por alto si el mandato va seguido deun ampersand (&) y la opción monitor del trabajo no está activa. De lo contrario, las señales tienen losvalores que el shell hereda de su padre.

Cuando una señal para la que se ha definido una ruptura se recibe mientras el shell está esperando a quefinalice un mandato en primer plano, la ruptura asociada con dicha señal no se ejecutará hasta que hayafinalizado el mandato en primer plano. Por lo tanto, no se realiza una ruptura en una señal CHILD hastaque finaliza el trabajo en primer plano.

Edición en línea en el shell Korn o shell POSIXNormalmente, el usuario escribe cada línea de mandatos desde un dispositivo de terminal y utiliza al finalde cada línea un carácter de nueva línea (RETURN o LINE FEED). Cuando se activa la opción de ediciónemacs, gmacs o vi, se puede editar la línea de mandatos.

Los siguientes mandatos entran en las modalidades de edición:

Elemento Descripción

set -o emacs Entra en la modalidad de edición emacs e inicia un editor en línea de estilo emacs.

set -o gmacs Entra en la modalidad de edición emacs e inicia un editor en línea de estilo gmacs.

set -o vi Entra en la modalidad de edición vi e inicia un editor en línea de estilo vi.

Gestión del sistema operativo 255

Page 262: AIX Versión 7 - IBM

Cada vez que a la variable VISUAL o EDITOR se le asigna un valor que finaliza por cualquiera de estosnombres de opciones, se selecciona automáticamente una opción de edición.

Nota: Para utilizar las funciones de edición, el terminal debe aceptar RETURN como retorno de carro sinsalto de línea. Un espacio debe sobregrabar el carácter actual de la pantalla.

Cada modalidad de edición abre una ventana en la línea actual. La anchura de la ventana es el valor de lavariable COLUMNS, si se ha definido; de lo contrario, la anchura equivale a 80 espacios de carácter. Si lalínea es superior a la anchura de la ventana menos dos, el sistema notifica que está viendo un marco alfinal de la ventana. A medida que se mueve el cursor y llega a los límites de la ventana, la ventana secentra alrededor del cursor. A continuación se indican las marcas que se visualizan:

Elemento

Descripción

> Indica que la línea continúa por el lado derecho de la ventana.

< Indica que la línea se amplía en el lado izquierdo de la ventana.

* Indica que la línea se amplía en ambos lados de la ventana.

Los mandatos de búsqueda en cada modalidad de edición proporcionan acceso al archivo histórico delshell Korn. Sólo se coincide con series. Si el carácter inicial de la serie es un acento circunflejo (^), lacoincidencia debe empezar en el primer carácter de la línea.

Conceptos relacionadosMandatos del shell Korn o shell POSIXEl shell Korn es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Seajusta a la Interfaz de Sistema Operativo Portable para Entornos del Sistema (POSIX), un estándarinternacional para sistemas operativos.

Modalidad de edición emacsEn la modalidad de edición emacs se entra cuando se habilita la opción emacs o la opción gmacs. Laúnica diferencia entre estas dos modalidades es el modo en que cada una de ellas maneja el mandato deedición Control-T.

Para editar, mueva el cursor hasta el punto que necesita corrección e inserte o suprima caracteres opalabras, según se requiera. Todos los mandatos de edición son caracteres de control o secuencias deescape.

Los mandatos de edición funcionan desde cualquier punto de una línea (no sólo cuando se especifican alprincipio). No pulse la tecla Intro o el salto de línea (flecha abajo) después de mandatos de edición,excepto como se indique.

Elemento Descripción

Control-F Mueve el cursor hacia adelante (derecha) un carácter.

Esc-F Mueve el cursor hacia adelante una palabra (una serie de caracteres que consta desólo letras, dígitos y subrayados).

Control-B Mueve el cursor hacia atrás (izquierda) un carácter.

Esc-B Mueve el cursor hacia atrás una palabra.

Control-A Mueve el cursor al principio de la línea.

Control-E Mueve el cursor al final de la línea.

Control-] c Hace avanzar el cursor por la línea actual hasta el carácter indicado.

Esc-Control-] c Hace retroceder el cursor por la línea actual hasta el carácter indicado.

Control-X Control-X

Intercambia el cursor y la marca.

256 AIX Versión 7.2: Gestión del sistema operativo

Page 263: AIX Versión 7 - IBM

Elemento Descripción

ERASE Suprime el carácter anterior. (Carácter de supresión definido por el usuario talcomo define el mandato stty, normalmente la secuencia de teclas Control-H.)

Control-D Suprime el carácter actual.

Esc-D Suprime la palabra actual.

Esc-Retroceso Suprime la palabra anterior.

Esc-H Suprime la palabra anterior.

Esc-Supr Suprime la palabra anterior. Si el carácter de interrupción es la tecla Supr, estemandato no funciona.

Control-T Cambia el carácter actual por el siguiente carácter en modalidad emacs.Transpone los dos caracteres anteriores en modalidad gmacs.

Control-C Convierte a mayúsculas el carácter actual.

Esc-C Convierte a mayúsculas la palabra actual.

Esc-L Convierte la palabra actual a minúsculas.

Control-K Suprime desde el cursor hasta el final de la línea. Si va precedido de un parámetronumérico cuyo valor es menor que el de la posición actual del cursor, estemandato de edición suprime desde la posición especificada hasta donde seencuentra el cursor. Si va precedido de un parámetro numérico cuyo valor esmayor que el de la posición actual del cursor, este mandato de edición suprimedesde donde se encuentra el cursor hasta la posición del cursor que se haespecificado.

Control-W Suprime desde el cursor hasta la marca.

Esc-P Sitúa la región desde el cursor hasta la marca en la pila.

KILL Carácter para matar definido por el usuario que se define en el mandato stty yque, generalmente, corresponde a la secuencia de teclas Control-G o a @. Matatoda la línea actual. Si se entran dos caracteres de matar en sucesión, todos loscaracteres de matar posteriores provocan un salto de línea (útil cuando se utilizanterminales de papel).

Control-Y Restaura el último elemento eliminado de la línea. (Devuelve el elemento a lalínea).

Control-L Avanza una línea e imprime la línea actual.

Control-@ (Carácter nulo) Define una marca.

Esc-espacio Define una marca.

Control-J (Nueva línea) Ejecuta la línea actual.

Control-M (Retorno) Ejecuta la línea actual.

EOF Procesa el carácter de fin de archivo, normalmente la secuencia de teclas Control-D, como fina de archivo sólo si la línea actual es nulo.

Control-P Busca el mandato anterior. Cada vez que se entra la secuencia de teclas Control-P,se accede al mandato anterior cada vez. Retrocede una línea cuando no está en laprimera línea de un mandato de múltiples líneas.

Esc-< Busca la línea de histórico menos reciente (más antigua).

Esc-> Busca la línea de histórico más reciente (más nueva).

Gestión del sistema operativo 257

Page 264: AIX Versión 7 - IBM

Elemento Descripción

Control-N Busca la siguiente línea de mandatos. Cada vez que se pulsa la secuencia de teclasControl-N, se accede a la siguiente línea sucesiva.

Control-R Serie Invierte el histórico de búsqueda de una línea de mandatos anterior que contienela serie que especifica el parámetro Serie. Si se proporciona un valor de 0, labúsqueda es hacia adelante. La serie especificada termina con Intro o un carácterde nueva línea. Si la serie va precedida de un acento circunflejo (^), la línea de lacoincidencia debe empezar por el parámetro Serie. Si se omite el parámetro Serie,se accede a la siguiente línea de mandatos que contiene el parámetro Serie másreciente. En este caso, un valor de 0 invierte la dirección de la búsqueda.

Control-O (Operar) Ejecuta la línea actual y busca la línea relativa a la línea actual del archivohistórico.

Esc Dígitos (Escape) Define el parámetro numérico. Los dígitos se toman como un parámetropara el siguiente mandato. Los mandatos que aceptan un parámetro son Control-F, Control-B, ERASE, Control-C, Control-D, Control-K, Control-R, Control-P,Control-N, Control-], Esc-., Esc-Control-], Esc-_, Esc-B, Esc-C, Esc-D, Esc-F,Esc-H , Esc-L y Esc-Control-H.

Esc Letras (Tecla de software) Busca en la lista de alias un alias denominado _Letra. Si sedefine un alias con este nombre, su valor se sitúa en la cola de entrada. Elparámetro Letra no debe especificar una de las funciones de escape.

Esc-[ Letras (Tecla de software) Busca en la lista de alias un alias cuyo nombre es subrayadodoble Letra (__Letra). Si se define un alias con este nombre, su valor se sitúa en lacola de entrada. Este mandato puede utilizarse para teclas de función de programaen muchos terminales.

Esc-. Inserta en la línea la última palabra del mandato anterior. Si va precedido de unparámetro numérico, el valor de este parámetro determina qué palabra insertar enlugar de la última palabra.

Esc-_ Igual que la secuencia de teclas Esc- anterior.

Esc-* Intenta realizar la sustitución de nombre de archivo en la palabra actual. Se añadeun asterisco (*) si la palabra no coincide con ningún archivo o contiene caracteresde patrón especiales.

Esc-Esc Finalización de nombre de archivo. Sustituye la palabra actual por el prefijo máslargo común de todos los nombres de archivo que coinciden con la palabra actualcon un asterisco añadido. Si la coincidencia es exclusiva, se añade una barrainclinada (/) si el archivo es un directorio y se añade un espacio si el archivo no esun directorio.

Esc-= Lista los archivos que coinciden con el patrón de palabras actual si se ha añadidoun asterisco (*).

Control-U Multiplica el parámetro del mandato siguiente por 4.

\ Ignora el siguiente carácter. Los caracteres de edición y los caracteres ERASE,KILL y INTERRUPT (normalmente la tecla Supr) se pueden especificar en unalínea de mandatos o en una serie de búsqueda y van precedidos por una barrainclinada invertida (\). La barra inclinada invertida elimina las funciones de edicióndel siguiente carácter, si existe alguno.

Control-V Muestra la versión del shell.

Esc-# Inserta una almohadilla (#) al principio de la línea y, a continuación, ejecuta lalínea. Esto hace que se inserte un comentario en el archivo histórico.

258 AIX Versión 7.2: Gestión del sistema operativo

Page 265: AIX Versión 7 - IBM

Modalidad de edición viLa modalidad de edición vi dispone de dos modalidades de escritura.

Las modalidades son:

• Modalidad de entrada. Cuando entra un mandato, el editor vi está en modalidad de entrada.• Modalidad de control. Pulse la tecla Esc para utilizar la modalidad de control.

La mayoría de los mandatos de control aceptan un parámetro Cuenta (o número total) de repeticiónopcional delante del mandato. Cuando se está en modalidad vi en la mayoría de sistemas, se habilitainicialmente el proceso canónico. Se hará un eco del mandato si se da una o más de las condicionessiguientes:

• La velocidad es de 1200 baudios o superior.• El mandato contiene caracteres de control.• Ha transcurrido menos de un segundo desde que se imprimió el indicador.

El carácter Esc termina el proceso canónico para el resto del mandato y puede entonces modificar la líneade mandatos. Este esquema tiene las ventajas del proceso canónico con el eco de escritura anticipado dela modalidad bruta. Si también se ha establecido la opción viraw, el proceso canónico siempre estáinhabilitado. Esta modalidad es implícita en los sistemas que no dan soporte a dos delimitadores de fin delínea alternativos y podría ser útil para determinados terminales.

Los mandatos de edición vi disponibles están agrupados por categorías. Las categorías son las siguientes:

Mandatos de edición de entradaA continuación se describen los mandatos de edición de entrada para el shell Korn.

Nota: De forma predeterminada, el editor está en modalidad de entrada.

Elemento

Descripción

ERASE Suprime el carácter anterior. (Carácter para borrar definido por el usuario, definido en elmandato stty y que, generalmente, es Control-H o #.)

Control-W

Suprime la palabra separada por blancos anterior.

Control-D

Finaliza el shell.

Control-V

Ignora el siguiente carácter. Los caracteres de edición, como por ejemplo ERASE o KILL,pueden entrarse en una línea de mandatos o en una serie de búsqueda si van precedidos deuna secuencia de teclas Control-V. La secuencia de teclas Control-V elimina las funciones deedición del siguiente carácter (si existe).

\ Ignora el siguiente carácter ERASE o KILL.

Mandatos de edición de movimientoA continuación se describen los mandatos de edición de movimiento para el shell Korn.

Los mandatos de edición de movimiento mueven el cursor, tal como se indica a continuación:

Elemento Descripción

[Cuenta]l Mueve el cursor hacia adelante (derecha) un carácter.

[Cuenta]w Mueve el cursor hacia adelante una palabra alfanumérica.

[Cuenta]W Mueve el cursor al principio de la siguiente palabra que sigue a un blanco.

[Cuenta]e Mueve el cursor al final de la palabra actual.

[Cuenta]E Mueve el cursor al final de la palabra separada por un blanco actual.

Gestión del sistema operativo 259

Page 266: AIX Versión 7 - IBM

Elemento Descripción

[Cuenta]h Mueve el cursor hacia atrás (izquierda) un carácter.

[Cuenta]b Mueve el cursor hacia atrás una palabra.

[Cuenta]B Mueve el cursor a la palabra separada por blancos anterior.

[Cuenta]| Mueve el cursor a la columna que especifica el parámetro Cuenta.

[Cuenta]fc Busca el siguiente carácter c en la línea actual.

[Cuenta]Fc Busca el carácter c anterior en la línea actual.

[Cuenta]tc Equivale a f seguido de h.

[Cuenta]Tc Equivale a F seguido de l.

[Cuenta]; Repite el número de veces que especifica el parámetro Cuenta el último mandato debúsqueda de un solo carácter: f, F, t o T.

[Cuenta], Invierte el último mandato de búsqueda de un solo carácter el número de veces queespecifica el parámetro Cuenta.

0 Mueve el cursor al principio de una línea.

^ Mueve el cursor al primer carácter no blanco de una línea.

$ Mueve el cursor al final de una línea.

Mandatos de edición de búsquedaLos mandatos de edición de búsqueda acceden al histórico de mandatos tal como se indica acontinuación:

Elemento Descripción

[Cuenta]k Busca el mandato anterior.

[Cuenta]- Equivale al mandato k.

[Cuenta]j Busca el siguiente mandato. Cada vez que se entra el mandato j, se accede al siguientemandato.

[Cuenta]+ Equivale al mandato j.

[Cuenta]G Busca el mandato cuyo número especifica el parámetro Cuenta. El valor predeterminadoes el mandato histórico menos reciente.

/Serie Busca hacia atrás en el histórico un mandato anterior que incluye la serie especificada. Laserie termina con un RETURN o un carácter de nueva línea. Si la serie especificada vaprecedida de un acento circunflejo (^), la línea de la coincidencia debe empezar por elparámetro Serie. Si el valor del parámetro Serie es nulo, se utiliza la serie anterior.

?Serie Igual que /Serie a excepción de que la búsqueda se efectúa hacia adelante.

n Busca la siguiente coincidencia del último patrón para /Serie o ? .

N Busca la siguiente coincidencia del último patrón para /Serie o ? , pero en la direcciónopuesta. Busca en el histórico la serie que se ha especificado en el mandato /Serieanterior.

Mandatos de edición de modificación de textoLos mandatos de edición de modificación de texto modifican la línea, tal como se indica a continuación:

Elemento Descripción

a Entra en modalidad de entrada y entra texto detrás del carácter actual.

260 AIX Versión 7.2: Gestión del sistema operativo

Page 267: AIX Versión 7 - IBM

Elemento Descripción

A Añade texto al final de la línea. Equivale al mandato $a.

[Cuenta]cMovimiento

c[Cuenta]Movimiento Suprime desde el carácter actual hasta el carácter al que el parámetroMovimiento especifica que se debe mover el cursos y entra en modalidad deentrada. Si el valor del parámetro Movimiento es c, se suprime toda la líneay se entra en modalidad de entrada.

C Suprime desde el carácter actual hasta el final de la línea y entra enmodalidad de entrada. Equivale al mandato c$.

S Equivale al mandato cc.

D Suprime desde el carácter actual hasta el final de la línea. Equivalente almandato d$.

Elemento Descripción

[Cuenta]dMovimiento

d[Cuenta]Movimiento

Suprime el carácter actual hasta, e inclusive, el carácter que especifica elparámetro Movimiento. Si Movimiento es d, se suprime toda la línea.

i Entra en modalidad de entrada e inserta texto delante del carácter actual.

I Inserta texto antes del principio de la línea. Equivalente al mandato 0i.

[Cuenta]P Sitúa la modificación de texto anterior antes del cursor.

[Cuenta]p Sitúa la modificación de texto anterior después del cursor.

R Entra en modalidad de entrada y escribe sobre los caracteres de la pantalla.

[Cuenta]rc Sustituye el número de caracteres que especifica el parámetro Cuenta,empezando desde la posición actual del cursor, por el carácter queespecifica el parámetro c. Este mandato también avanza el cursor despuésde sustituir los caracteres.

[Cuenta]x Suprime el carácter actual.

[Cuenta]X Suprime el carácter anterior.

[Cuenta]. Repite el mandato de modificación de texto anterior.

[Cuenta]~ Invierte las mayúsculas y las minúsculas del número de caracteresespecificado por el parámetro Cuenta, empezando en la posición actual delcursor y hace avanzar el cursor.

[Cuenta]_ Añade la palabra que especifica el parámetro Cuenta del mandato anterior yentra en modalidad de entrada. Si se ha omitido el parámetro Cuenta, seutilizará la última palabra.

* Añade un asterisco (*) a la palabra actual e intenta realizar una sustituciónde nombre de archivo. Si no se encuentra ninguna coincidencia, suena eltimbre. De lo contrario, la palabra se sustituye por el patrón coincidente y seentra en modalidad de entrada.

\ Finalización de nombre de archivo. Sustituye la palabra actual por el prefijocomún más largo de todos los nombres de archivo que coinciden con lapalabra actual con un asterisco (*) añadido. Si la coincidencia es exclusiva,se añade una barra inclinada / si el archivo es un directorio. Si el archivo noes un directorio, se añadirá un espacio.

Gestión del sistema operativo 261

Page 268: AIX Versión 7 - IBM

Mandatos de edición variosSe utilizan comúnmente los siguientes mandatos editables.

Elemento Descripción

[Cuenta]yMovimiento

y[Cuenta]Movimiento Extrae el carácter actual hasta, e inclusive, el carácter que marca la posicióndel cursor que especifica el parámetro Movimiento y coloca todos esoscaracteres en el almacenamiento intermedio de supresión. El texto y el cursorpermanecen intactos.

Y Mueve desde la posición actual hasta el final de la línea. Equivalente almandato y$.

u Revierte el último mandato de modificación de texto.

U Revierte todos los mandatos de modificación de texto efectuados en la línea.

[Cuenta]v Devuelve el mandato fc -e ${VISUAL:-${EDITOR:-vi}} Cuenta delalmacenamiento intermedio de entrada. Si se ha omitido el parámetro Cuenta,se utilizará la línea actual.

Control-L Avanza una línea e imprime la línea actual. Este mandato sólo es vigente enmodalidad de control.

Control-J (Nueva línea) Ejecuta la línea actual independientemente de la modalidad.

Control-M (Retorno) Ejecuta la línea actual independientemente de la modalidad.

# Envía la línea tras la inserción de una almohadilla (#) al principio de la línea. Útilsi desea insertar la línea actual en el histórico sin ejecutarla.

Si la línea de mandatos contiene un carácter de conducto, un carácter de puntoy coma o un carácter de nueva línea, se insertan almohadillas adicionales (#) alprincipio de cada uno de estos símbolos. Para suprimir todas las almohadillas,recupere la línea de mandatos del histórico y entre otra almohadilla (#).

= Lista los nombres de archivo que coinciden con la palabra actual si se hubieraañadido un asterisco.

@Letra Busca en la lista de alias un alias denominado _Letra. Si se ha definido un aliascon este nombre, su valor se sitúa en la cola de entrada para proceso.

Mandatos del shell Korn o shell POSIXEl shell Korn es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Seajusta a la Interfaz de Sistema Operativo Portable para Entornos del Sistema (POSIX), un estándarinternacional para sistemas operativos.

POSIX no es un sistema operativo, sino que es un estándar cuya finalidad es facilitar la portabilidad de lasaplicaciones, en el nivel del fuente, entre muchos sistemas. Las funciones de POSIX se crean al principiodel shell Korn. El shell Korn (también conocido como el shell POSIX) ofrece muchas de las mismasfunciones de los shells Bourne y C, por ejemplo posibilidades de redirección E/S, sustitución de variablesy sustitución de nombres de archivo. También incluye algunas funciones de mandatos y de programaciónadicionales:

Nota: Está disponible una versión restringida del shell Korn, denominada rksh. Para obtener másdetalles, consulte el mandato rksh.

262 AIX Versión 7.2: Gestión del sistema operativo

Page 269: AIX Versión 7 - IBM

Elemento Descripción

Evaluaciónaritmética

El shell Korn, o shell POSIX, puede efectuar aritmética de enteros utilizando elmandato let incorporado, utilizando cualquier base de 2 a 36.

Para habilitar el reconocimiento de números empezando por 0 (Octal) y 0x(Hexadecimal) en el shell Korn, ejecute los mandatos siguientes:

export XPG_SUS_ENV=ONLa exportación de la variable XPG_SUS_ENV hace que los mandatos que seejecutan y las bibliotecas que utilizan se ajusten totalmente a POSIX.

Nota: Puesto que todo el sistema de bibliotecas se ajusta a POSIX, uncomportamiento predeterminado esperado de un mandato predeterminadopuede cambiar.

export OCTAL_CONST=ONLa exportación de esta variable hace que la interpretación de constantesdeclaradas en el shell Korn se ajusten a POSIX en cuanto a lo que se refiere alreconocimiento de constantes octales y hexadecimales.

Histórico demandatos

El shell Korn o shell POSIX almacena un archivo que registra todos los mandatosque entre. Puede utilizar un editor de texto para alterar un mandato en estearchivo histórico y volver a emitir el mandato.

Recurso decoproceso

Le permite ejecutar programas como procesos en segundo plano y enviar y recibirinformación para esos procesos en segundo plano.

Edición El shell Korn o shell POSIX ofrece opciones de edición en línea que le permiteneditar la línea de mandatos. Están disponibles editores similares a emacs, gmacs yvi.

Un mandato de shell Korn es uno de los siguientes:

• Mandato simple• Conducto• Lista• Mandato compuesto• Función

Cuando emite un mandato en el shell Korn o en el shell POSIX, el shell evalúa el mandato y realiza losiguiente:

• Realiza todas las sustituciones indicadas.• Determines si el mandato contiene una barra inclinada (/). Si es así, el shell ejecuta el programa

indicado por el nombre de vía de acceso especificado.

Si el mandato no contiene una barra inclinada (/), el shell Korn o el shell POSIX continúa con las accionessiguientes:

• Determina si el mandato es un mandato incorporado especial. Si es así, el shell ejecuta el mandatodentro del proceso de shell actual.

• Compara el mandato con las funciones definidas por el usuario. Si el mandato coincide con una funcióndefinida por el usuario, los parámetros posicionales se guardan y, a continuación, vuelven aestablecerse en los argumentos de la llamada function. Cuando la función se completa o bien emite unretorno, la lista de parámetros posicionales se restaura y se ejecuta cualquier ruptura que se hayaestablecido en EXIT dentro de la función. El valor de una función es el valor del último mandatoejecutado. Una función se lleva a cabo en el proceso de shell actual.

• Si el nombre de mandato coincide con el nombre de un mandato incorporado normal, se invocará estemandato incorporado normal.

Gestión del sistema operativo 263

Page 270: AIX Versión 7 - IBM

• Crea un proceso e intenta ejecutar el mandato utilizando el mandato exec (si no se trata de un mandatoincorporado ni una función definida por el usuario).

El shell Korn, o shell POSIX, busca una vía de acceso de un archivo ejecutable en todos los directorios. Lavariable de shell PATH define la vía de búsqueda del directorio que contiene el mandato. Los nombres dedirectorio alternativos se separan mediante dos puntos (:). La vía de acceso por omisión es /usr/bin:(que especifica el directorio /usr/bin y el directorio actual, en este orden). El directorio actual seespecifica mediante dos o más signos de dos puntos o mediante un signo de dos puntos al principio o alfinal de la lista de vías de acceso.

Si el archivo tiene permiso de ejecución pero no es un directorio o un archivo a.out, el shell da porsupuesto que contiene mandatos de shell. El proceso de shell actual crea un subshell para leer el archivo.Todos los alias, funciones y parámetros designados no exportados se eliminan del archivo. Si el archivode mandatos de shell tiene permiso de lectura, o si los bits setuid o setgid se han establecido en elarchivo, el shell ejecuta un agente que configura los permisos y ejecuta el archivo de mandatos de shellpasados como un archivo abierto. Un mandato entre paréntesis se ejecuta en un subshell sin eliminar lascantidades no exportadas.

Conceptos relacionadosShells disponiblesLos siguientes shells se proporcionan con AIX.Recurso de coprocesoEl shell Korn o el shell POSIX le permiten ejecutar uno o varios mandatos como procesos en segundoplano. Estos mandatos, que se ejecutan desde un script de shell, se denominan coprocesos.Edición en línea en el shell Korn o shell POSIXNormalmente, el usuario escribe cada línea de mandatos desde un dispositivo de terminal y utiliza al finalde cada línea un carácter de nueva línea (RETURN o LINE FEED). Cuando se activa la opción de ediciónemacs, gmacs o vi, se puede editar la línea de mandatos.Evaluación aritmética en el shell Korn o shell POSIXEl mandato incorporado normal let del shell Korn o del shell POSIX le permite realizar la aritmética deenteros.Mandatos incorporados del shell Korn o POSIXLos mandatos especiales se crean en el shell Korn y en el shell POSIX y se ejecutan en el proceso deshell.

Mandatos compuestos del shell KornUn mandato compuesto puede ser una lista de mandatos simples, un conducto o puede empezar por unapalabra reservada. Cuando escriba scripts de shell, la mayor parte del tiempo utilizará mandatoscompuestos como, por ejemplo, if, while y for.

La siguiente lista muestra los mandatos de shell Korn o shell POSIX:

Sintaxis del mandato Descripción

for Identificador [inPalabra ...] ;do Lista ;done

Cada vez que se ejecuta un mandato for, el parámetro Identificador seestablece en la siguiente palabra de la lista in Palabra ... Si se omite elmandato in Palabra ..., el mandato for ejecuta el mandato do Lista una vezpara cada parámetro posicional que se ha establecido. La ejecución finalizacuando no hay más palabras en la lista.

264 AIX Versión 7.2: Gestión del sistema operativo

Page 271: AIX Versión 7 - IBM

Sintaxis del mandato Descripción

select Identificador [inPalabra ...] ;do Lista ;done

Un mandato select imprime en el error estándar (descriptor de archivo 2)el conjunto especificado de palabras, cada una de las cuales va precedidade un número. Si se omite el mandato in Palabra ..., en su lugar se utilizanlos parámetros posicionales. Se imprime el indicador PS3 y se lee una líneade la entrada estándar. Si esta línea se compone del número de una de laspalabras de la lista, el valor del parámetro Identificador se establece en lapalabra que corresponde a ese número.

Si la línea leída de la entrada estándar está vacía, vuelve a imprimirse lalista de selección. De lo contrario, el valor del parámetro Identificador seestablece en nulo. El contenido de la línea leída de la entrada estándar seguarda en el parámetro REPLY. El parámetro Lista se ejecuta para cadaselección hasta que se encuentra un carácter de interrupción o de fin dearchivo.

case Palabra in [[ ( ]Patrón [ | Patrón] ... )Lista ;;] ... esac

Un mandato case ejecuta el parámetro Lista asociado al primer parámetroPatrón que coincide con el parámetro Palabra. El formato de los patrones esel mismo que se utiliza para la sustitución de nombre de archivo.

if Lista ;then Lista [elifLista ;then Lista] ... [;elseLista] ;fi

El parámetro Lista especifica una lista de los mandatos que han deejecutarse. El shell ejecuta primero el mandato if Lista. Si se devuelve unestado de salida cero, ejecuta el mandato then Lista. De lo contrario, seejecutan los mandatos especificados por el parámetro Lista que sigue almandato elif.

Si el valor devuelto por el último mandato del mandato elif Lista es cero,se ejecuta el mandato then Lista. Si el valor que el último mandato devuelveen el mandato then Lista es cero, se ejecuta el mandato else Lista. Si ningúnmandato especificado por los parámetros Lista se ejecutan para el mandatoelse o then, el mandato if devuelve un estado de salida cero.

while Lista ;doLista ;done until Lista ;doLista ;done

El parámetro Lista especifica una lista de los mandatos que han deejecutarse. El mandato while ejecuta repetidamente los mandatosespecificados por el parámetro Lista. Si el estado de salida del últimomandato del mandato while Lista es cero, se ejecuta el mandato do Lista. Siel estado de salida del último mandato del mandato while Lista no es cero,el bucle finaliza. Si no se ejecuta ningún mandato de do Lista, el mandatowhile devuelve un estado de salida cero. El mandato until puede utilizarseen lugar del mandato while para anular la prueba de terminación del bucle.

( Lista ) El parámetro Lista especifica una lista de los mandatos que han deejecutarse. El shell ejecuta el parámetro Lista en un entorno separado.

Nota: Si se necesitan dos paréntesis de apertura adyacentes para elanidamiento, debe insertar un espacio entre ellos para diferenciar entre elmandato y la evaluación aritmética.

{ Lista; } El parámetro Lista especifica una lista de los mandatos que han deejecutarse. El parámetro Lista simplemente se ejecuta.

Nota: A diferencia de los metacaracteres ( ), { } indican palabrasreservadas (utilizadas para fines especiales, no como identificadoresdeclarados por el usuario). Para que puedan reconocerse, estas palabrasreservadas deben aparecer al principio de una línea o después de un puntoy coma (;).

[[Expresión]] Evalúa el parámetro Expresión. Si la expresión es cierta, el mandatodevuelve un estado de salida de cero.

Gestión del sistema operativo 265

Page 272: AIX Versión 7 - IBM

Sintaxis del mandato Descripción

function Identificador{ Lista ;} o functionIdentificador () {Lista ;}

Define una función a la que se hace referencia mediante el parámetroIdentificador. El cuerpo de la función es la lista especificada de mandatosdelimitados por { }. Los ( ) consisten en dos operadores, por lo que estápermitido mezclar caracteres en blanco con el identificador, ( y ), pero nonecesario.

time Conducto Ejecuta el parámetro Conducto. El tiempo transcurrido, la hora del usuario yla hora del sistema se imprimen en error estándar.

Conceptos relacionadosParámetros del shell KornA continuación se explican los parámetros del shell Korn

Inicio del shellPuede iniciar el shell Korn con el mandato ksh, el mandato psh (shell POSIX) o el mandato exec.

Si el mandato exec inicia el shell y el primer carácter del argumento cero ($0) es un guión (-), se suponeque el shell es un shell de inicio de sesión. El shell primero lee los mandatos del archivo /etc/profiley, después, del archivo .profile del directorio actual o del archivo $HOME/.profile, si existe uno deestos archivos. A continuación, el shell lee los mandatos del archivo especificado realizando la sustituciónde parámetros en el valor de la variable de entorno ENV, si el archivo existe.

Si especifica el parámetro Archivo [Parámetro] al invocar al shell Korn o al shell POSIX, el shell ejecuta elarchivo de script que el parámetro Archivo identifica, incluido cualquier parámetro que se hayaespecificado. El archivo de script especificado debe tener permiso de lectura; los valores setuid y setgidse pasan por alto. El shell lee a continuación los mandatos.

Nota: No especifique un archivo de script con los distintivos -c o -s cuando invoque al shellKorn o al shell POSIX.

Para obtener más información acerca de los parámetros posicionales, consulte el apartado “Parámetrosdel shell Korn” en la página 234 .

Conceptos relacionadosParámetros del shell KornA continuación se explican los parámetros del shell Korn

Entorno de shell KornTodas las variables (y los valores que se asocian a éstas) que un mandato puede reconocer al inicio de suejecución constituyen su entorno.

Este entorno incluye variables que un mandato hereda de sus variables y proceso padre especificadoscomo palabras clave en la línea de mandatos que llama al mandato. El shell interactúa con el entorno devarios modos. Cuando se inicia, el shell explora el entorno y crea un parámetro para cada nombreencontrado, proporcionando al parámetro el valor correspondiente y marcándolo para exportación. Losmandatos ejecutados heredan el entorno.

Si modifica los valores de los parámetros del shell o crea nuevos valores utilizando los mandatos exporto typeset -x, los parámetros formarán parte del entorno. Por lo tanto, desde el punto de vista decualquier mandato ejecutado, el entorno se compone de pares nombre-valor originalmente heredadospor el shell, cuyos valores podría modificar el shell actual, además de cualquier adición que resulte de lautilización de los mandatos export o typeset -x. El mandato ejecutado (subshell) reconocerácualquier modificación que éste realice en las variables de entorno que ha heredado pero, para que susshells o procesos hijo puedan reconocer los valores modificados, el subshell debe exportar esasvariables.

El entorno para cualquier mandato o función simple se modifica prefijando con una o más asignacionesde parámetros. Un argumento de asignación de parámetros es una palabra con el formatoIdentificador=Valor. Así pues, las dos expresiones siguientes son equivalentes (en lo que respecta a laejecución del mandato).

266 AIX Versión 7.2: Gestión del sistema operativo

Page 273: AIX Versión 7 - IBM

TERM=450 Mandato argumentos

(export TERM; TERM=450; Mandato argumentos)

Funciones del shell KornLa palabra reservada function define funciones del shell. El shell lee y almacena funciones internamente.Los alias se resuelven cuando se lee la función. El shell ejecuta las funciones de la misma forma que losmandatos, pasando los argumentos como parámetros posicionales.

El shell Korn o shell POSIX ejecuta funciones en el entorno desde el que se llama a las funciones. Lafunción y el script de invocación comparten todos los elementos siguientes; ello da lugar a que puedanproducirse efectos secundarios:

• Valores y atributos de variables (a menos que utilice el mandato typeset dentro de la función paradeclarar una variable local)

• Directorio de trabajo• Alias, definiciones de funciones y atributos• Parámetro especial $• Archivos abiertos

La función y el script de llamada no comparten los siguientes elementos y no hay efectos laterales:

• Parámetros posicionales• Parámetro especial #• Variables de una lista de asignación de variables cuando se invoca una función• Variables que se han declarado utilizando el mandato typeset dentro de la función• Opciones• Rupturas. No obstante, la función también ignorará las señales ignoradas por el script de llamada.

Nota: En versiones anteriores del shell Korn, la función compartía las rupturas EXIT y ERR, así como elscript de invocación.

Si se ejecuta la ruptura de 0 o EXIT dentro del cuerpo de una función, la acción se ejecuta trascompletarse la función, en el entorno que ha llamado a la función. Si la ruptura se ejecuta fuera delcuerpo de una función, la acción se ejecuta después de salir del shell Korn. En versiones anteriores delshell Korn, no se ejecutaba ninguna ruptura 0 o EXIT fuera del cuerpo de una función después de salir dela función.

Cuando se ejecuta una función, ésta tiene las mismas propiedades de error de sintaxis y de asignación devariables que las que se describen en los mandatos incorporados del shell Korn o del shell POSIX.

El mandato compuesto se ejecuta siempre que se especifique el nombre de la función como nombre demandato simple. Los operandos del mandato pasarán a ser temporalmente los parámetros posicionalesdurante la ejecución del mandato compuesto. El parámetro especial # también cambiará para reflejar elnúmero de operandos. El parámetro especial 0 no cambiará.

El mandato especial return se utiliza para volver de las llamadas a una función. Los errores en funcionesdevuelven el control al llamador.

Los identificadores de función se listan con la opción -f o +f del mandato especial typeset. La opción -ftambién lista el texto de las funciones. La definición de las funciones se elimina con la opción -f delmandato especial unset.

Normalmente, se elimina la definición de las funciones cuando un shell ejecuta un script de shell. Laopción -xf del mandato especial typeset permite exportar una función a los scripts que se ejecutan sinuna invocación separada del shell. Las funciones que se deben definir en invocaciones separadas delshell se deben especificar en el archivo ENV con la opción -xf del mandato especial typeset.

Gestión del sistema operativo 267

Page 274: AIX Versión 7 - IBM

El estado de salida de la definición de una función es cero si la función se ha declaradosatisfactoriamente. De lo contrario, será mayor de cero. El estado de salida de una invocación de funciónes el estado de salida del último mandato que ha ejecutado la función.

Conceptos relacionadosParámetros del shell KornA continuación se explican los parámetros del shell KornMandatos incorporados del shell Korn o POSIXLos mandatos especiales se crean en el shell Korn y en el shell POSIX y se ejecutan en el proceso deshell.

Histórico de mandatos del shell Korn o shell POSIXEl shell Korn o POSIX guarda los mandatos entrados desde el dispositivo de terminal en un archivohistórico.

Si se ha establecido, el valor de la variable HISTFILE es el nombre del archivo histórico. Si la variableHISTFILE no está establecida o no se puede grabar, el archivo histórico utilizado es$HOME/.sh_history. Si el archivo histórico no existe y el shell Korn no puede crearlo o si no existe y elshell Korn no tiene permiso para añadirlo, el shell Korn utiliza un archivo temporal como archivo histórico.El shell accede a los mandatos de todos los shells interactivos utilizando el archivo histórico indicado conpermisos apropiados.

Por omisión, el shell Korn o el shell POSIX guarda el texto de los 128 últimos mandatos para usuarios queno son root y de los 512 últimos mandatos para el usuario root. El tamaño del archivo histórico (que seespecifica mediante la variable HISTSIZE) no tiene limitaciones, aunque un archivo histórico muy grandepuede dar lugar a que el inicio del shell Korn sea lento.

Sustitución del histórico de mandatosUtilice el mandato incorporado fc para listar o editar partes del archivo histórico. Para seleccionar unaparte del archivo a editar o listar, especifique el número del primer carácter o caracteres del mandato.

Puede especificar un solo mandato o un rango de mandatos.

Si no especifica un programa editor como argumento para el mandato incorporado normal fc, se utiliza eleditor especificado por la variable FCEDIT. Si no se ha definido la variable FCEDIT, se utiliza elarchivo /usr/bin/ed. El mandato o mandatos editados se imprimen y ejecutan cuando sale del editor.

El guión del nombre del editor (-) se utiliza para saltar la fase de edición y volver a ejecutar el mandato.En este caso, puede utilizarse un parámetro de sustitución con el formato Antiguo=Nuevo paramodificar el mandato antes de que se ejecute. Por ejemplo, si r tiene el alias fc -e -, si escribe rbad=good c se ejecuta el mandato más reciente que empieza por la letra c y sustituye a la primeraocurrencia de la serie bad por la serie good.

Tareas relacionadasListado de los mandatos entrados anteriormente (mandato history)Utilice el mandato history para listar los mandatos que ha entrado anteriormente.

Alias de mandatos en el shell Korn o shell POSIXEl shell Korn o el shell POSIX le permiten crear alias para personalizar mandatos.

El mandato alias define una palabra que tiene el formato Nombre=Serie como alias. Cuando utiliza unalias como primera palabra de una línea de mandatos, el shell Korn comprueba si ya está procesando unalias con el mismo nombre. Si es así, el shell Korn no sustituye el nombre del alias. Si todavía no estáprocesándose un alias con el mismo nombre, el shell Korn sustituye el nombre del alias por el valor delalias.

El primer carácter de un nombre de alias puede ser cualquier carácter imprimible, a excepción de losmetacaracteres. Los caracteres restantes deben ser los mismos que los de un identificador válido. Laserie de sustitución puede contener cualquier texto de shell válido, incluidos los metacaracteres.

Si el último carácter del valor de alias es un blanco, el shell también comprobará la palabra que sigue alalias para la sustitución de alias. Puede utilizar alias para redefinir mandatos incorporados especiales,

268 AIX Versión 7.2: Gestión del sistema operativo

Page 275: AIX Versión 7 - IBM

pero no para redefinir palabras reservadas. Las definiciones de alias no se heredan entre invocaciones deksh. Sin embargo, si especifica alias -x, el alias sigue en vigor para los scripts que se invocan pornombre y que no invocan un shell por separado. Para exportar una definición de alias y hacer que losprocesos hijo tengan acceso a éstos, debe especificar alias -x y la definición del alias en el archivo deentorno.

Utilice el mandato alias para crear, listar y exportar alias.

Utilice el mandato unalias para eliminar alias.

El formato para crear un alias es el siguiente:

alias Nombre=Serie

donde el parámetro Nombre especifica el nombre del alias y el parámetro Serie especifica el valor delalias.

Los siguientes alias exportados están predefinidos por el shell Korn, pero puede eliminarse su definicióno redefinirse. No se recomienda cambiarlos, pues ello podría confundir posteriormente a cualquierusuario que espere que el alias funcione como ha definido previamente el shell Korn.

autoload='typeset -fu'false='let 0'functions='typeset -f'hash='alias -t'history='fc -l'integer='typeset -i'nohup='nohup 'r='fc -e -'true=':'type='whence -v'

Los alias no están soportados en invocaciones no interactivas del shell Korn (ksh); por ejemplo, en unscript de shell, o con la opción -c de ksh, como el caso siguiente:

ksh -c alias

Tareas relacionadasCreación de un alias de mandato (mandatos de shell alias)Un alias le permite crear un nombre abreviado para un mandato, un nombre de archivo o cualquier textodel shell. Utilizando alias, puede ahorrarse tiempo cuando efectúa tareas de proceso frecuente. Puedecrear un alias de mandato.

Alias de seguimiento de víaFrecuentemente, los alias se utilizan como atajos para nombres completos de vías de acceso. Un recursode definición de alias le permite establecer automáticamente el valor de un alias al nombre completo deuna vía de acceso de un mandato correspondiente. Este tipo especial de alias es un alias con seguimiento.

Los alias de seguimiento de vía aceleran la ejecución, pues eliminan la necesidad de que el shell tengaque buscar en la variable PATH un nombre completo de vía de acceso.

El mandato set -h activa el seguimiento de mandatos por lo que cada vez que se hace referencia a unmandato, el shell define el valor de un alias de seguimiento. La definición de este valor se elimina cadavez que vuelve a establecerse la variable PATH.

El seguimiento de estos alias permanece, de forma que la siguiente referencia redefinirá el valor. Algunosalias de seguimiento de vía se compilan en el shell.

Sustitución de la tildeDespués de que el shell ha realizado la sustitución de alias, éste comprueba cada palabra paracomprobar si empieza por una tilde sin comillas (~). Si es así, el shell comprueba la palabra, hasta laprimera barra inclinada (/), para verificar si coincide con un nombre de usuario del archivo /etc/passwd. Si el shell encuentra una coincidencia, sustituye el carácter ~ y el nombre por el directorio deinicio de sesión del usuario que coincide. Este proceso se denomina sustitución de la tilde.

Gestión del sistema operativo 269

Page 276: AIX Versión 7 - IBM

El shell no cambia el texto original si no encuentra una coincidencia. El shell Korn también realizasustituciones especiales si el carácter ~ es el único carácter de la palabra o si va seguido de un signo más(+) o de un guión (-):

Elemento Descripción

~ Se sustituye por el valor de la variable HOME

~+ Se sustituye por la variable $PWD (el nombre completo de la vía de acceso del directorioactual)

~- Se sustituye por la variable $OLDPWD (el nombre completo de la vía de acceso deldirectorio anterior)

Asimismo, el shell intenta realizar la sustitución de la tilde cuando el valor de un parámetro de asignaciónde variable empieza por un carácter de tilde ~.

shell BourneEl shell Bourne es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos.

El mandato bsh ejecuta el shell Bourne.

El shell Bourne puede ejecutarse como un shell de inicio de sesión o como un subshell bajo el shell deinicio de sesión. Sólo el mandato login puede llamar al shell Bourne como shell de inicio de sesión. Paraello, utiliza un formato especial del nombre de mandato bsh: -bsh. Cuando se llama con un guión inicial(-), el shell lee y ejecuta en primer lugar los mandatos que se encuentran en el archivo /etc/profiledel sistema y en $HOME/.profile, si existe uno. El archivo /etc/profile establece las variables quenecesitan todos los usuarios. Finalmente, el shell está preparado para leer los mandatos de la entradaestándar.

Si se especifica el parámetro Archivo [Parámetro] al iniciar el shell Bourne, el shell ejecuta el archivo descript identificado en el parámetro Archivo, incluyendo los parámetros especificados. El archivo de scriptespecificado debe tener permiso de lectura; los valores setuid y setgid se pasan por alto. El shell lee acontinuación los mandatos. Si se utiliza el distintivo -c o el distintivo -s, no especifique un script.

Conceptos relacionadosShells disponiblesLos siguientes shells se proporcionan con AIX.

Entorno de shell BourneTodas las variables (y los valores que se asocian a éstas) que un mandato puede reconocer al inicio de suejecución constituyen su entorno. Este entorno incluye variables que un mandato hereda de sus variablesy proceso padre especificados como palabras clave en la línea de mandatos que llama al mandato.

El shell pasa a sus procesos hijo las variables con nombre como argumentos para el mandato exportincorporado. Este mandato coloca las variables con nombre en los entornos del shell y de sus futurosprocesos hijo.

Los parámetros de palabra clave son pares variable-valor que aparecen en forma de asignaciones, por logeneral antes del nombre del procedimiento en una línea de mandatos (pero véase también el distintivodel mandato set). Estas variables se colocan en el entorno del procedimiento al que se llama.

Vea los ejemplos siguientes:

• Considere el procedimiento siguiente, que visualiza los valores de dos variables (guardadas en unarchivo de mandatos llamado key_command):

# key_commandecho $a $b

Las líneas de mandatos siguientes generan la salida que se muestra a continuación:

Entrada Salidaa=key1 b=key2 key_command key1 key2a=tom b=john key_command tom john

270 AIX Versión 7.2: Gestión del sistema operativo

Page 277: AIX Versión 7 - IBM

Los parámetros de palabra clave de un procedimiento no se incluyen en el número total de parámetrosque se almacena en $#.

Un procedimiento puede acceder a los valores de las variables de su entorno. No obstante, si cambiaalguno de estos valores, los cambios no se reflejan en el entorno de shell. Los cambios son localesrespecto al procedimiento en cuestión. Para colocar los cambios en el entorno que el procedimiento pasaa sus procesos hijo, deberá exportar los nuevos valores que están dentro de ese procedimiento.

Vea los ejemplos siguientes:

• Para obtener una lista de las variables que pueden exportarse desde el shell actual, escriba losiguiente:

export

• Para obtener una lista de las variables de sólo lectura del shell actual, escriba lo siguiente:

readonly

• Para obtener una lista de los pares variable-valor del entorno actual, escriba lo siguiente:

env

Para obtener más información sobre los entornos de usuario, consulte el apartado “Archivo /etc/environment” en la página 334.

Sustitución condicional en el shell BourneNormalmente, el shell sustituye la expresión $Variable por el valor de la serie asignada a la variableVariable, si existe una. Sin embargo, existe una notación especial que permite la sustitución condicional,en función de si la variable se ha establecido o no es nula, o ambas cosas.

Por definición, una variable está definida si siempre se le ha asignado un valor. El valor de una variablepuede ser la serie nula, que puede asignarse a una variable de una de las formas siguientes:

Elemento Descripción

A=

bcd=""

Efg='' Asigna la serie nula a A, bcd y Efg.

set '' "" Define el primer y segundo parámetro posicional en la serie nula y elimina la definiciónde todos los demás parámetros posicionales.

A continuación se muestra una lista de las expresiones disponibles que puede utilizar para efectuarsustituciones condicionales:

Elemento Descripción

${Variable-Serie} Si se ha establecido la variable, sustituya el valor Variable en lugar deesta expresión. De lo contrario, sustituya esta expresión por el valor deSerie.

${ Variable:-Serie } Si la variable se ha establecido y no es nula, sustituya esta expresiónpor el valor de Variable. De lo contrario, sustituya esta expresión por elvalor de Serie.

${ Variable=Serie } Si se ha establecido la variable, sustituya el valor Variable en lugar deesta expresión. De lo contrario, establezca el valor Variable en el valorSerie y, a continuación, sustituya el valor Variable en lugar de estaexpresión. No puede asignar valores a parámetros posicionales deeste modo.

Gestión del sistema operativo 271

Page 278: AIX Versión 7 - IBM

Elemento Descripción

${ Variable:=Serie } Si la variable se ha establecido y no es nula, sustituya esta expresiónpor el valor de Variable. De lo contrario, establezca el valor Variable enel valor Serie y, a continuación, sustituya el valor Variable en lugar deesta expresión. No puede asignar valores a parámetros posicionalesde este modo.

${ Variable?Serie } Si se ha establecido la variable, sustituya el valor Variable en lugar deesta expresión. De lo contrario, se visualiza un mensaje con el formatosiguiente:

Variable: Serie

y sale del shell actual (a no ser que sea el shell de inicio de sesión). Sino especifica un valor para la variable Serie, el shell muestra elsiguiente mensaje:

Variable: parámetro nulo o no establecido

${ Variable:?Serie } Si la variable se ha establecido y no es nula, sustituya esta expresiónpor el valor de Variable. De lo contrario, se visualiza un mensaje con elformato siguiente:

Variable: Serie

y sale del shell actual (a no ser que sea el shell de inicio de sesión). Sino especifica el valor Serie, se visualizará el mensaje siguiente:

Variable: parámetro nulo o no establecido

${ Variable+Serie } Si se ha establecido la variable, sustituya la expresión por el valor deSerie. De lo contrario, sustituya la serie nula.

${ Variable:+Serie } Si se ha establecido la variable y no es nula, sustituya esta expresiónpor el valor de Serie. De lo contrario, sustituya la serie nula.

En la sustitución condicional, el shell no evalúa la variable Serie hasta que éste utiliza esta variable comoserie sustituida. Por lo tanto, en el ejemplo siguiente, el shell sólo ejecuta el mandato pwd si no se haestablecido d o es nulo:

echo ${d:-`pwd`}

Conceptos relacionadosVariables definidas por el usuario en el shell BourneEl shell Bourne reconoce variables alfanuméricas a las que se pueden asignar valores de series.

Parámetros posicionales del shell BourneCuando se ejecuta un procedimiento de shell, el shell crea implícitamente parámetros posicionales quehacen referencia a cada palabra de la línea de mandatos por su respectiva posición.

La palabra que ocupa la posición 0 (el nombre del procedimiento) se denomina $0, la siguiente palabra(el primer parámetro) se denomina $1 y así sucesivamente, hasta $9. Para consultar los parámetros de lalínea de mandatos con números mayores de 9, utilice el mandato incorporado shift.

Puede restablecer los valores de los parámetros posicionales explícitamente utilizando el mandatoincorporado set.

Nota: Cuando no se especifica un argumento para una posición, su parámetro posicional se establece ennulo. Los parámetros posicionales son globales y pueden pasarse a procedimientos de shell anidados.

272 AIX Versión 7.2: Gestión del sistema operativo

Page 279: AIX Versión 7 - IBM

Conceptos relacionadosVariables definidas por el usuario en el shell BourneEl shell Bourne reconoce variables alfanuméricas a las que se pueden asignar valores de series.Referencia relacionadaVariables especiales predefinidas en el shell BourneVarias variables tienen significados especiales. Las variables siguientes sólo se establecen por el shellBourne:

Sustitución de nombres de archivo en el shell BourneEl shell Bourne permite realizar las sustituciones de nombres de archivo.

Los parámetros de mandatos son a menudo nombres de archivo. Puede generar automáticamente unalista de nombres de archivo como parámetros en una línea de mandatos. Para hacerlo, especifique uncarácter que el shell reconozca como un carácter que coincide con un patrón. Cuando un mandato incluyadicho carácter, el shell lo sustituirá por los nombres de archivo de un directorio.

Nota: El shell Bourne no soporta la expansión de nombres de archivos basada en la clasificación deequivalencia de los caracteres.

La mayoría de caracteres de un patrón coinciden, pero también puede utilizar algunos caracterescoincidentes con patrón especiales en su patrón. A continuación se indican estos caracteres especiales:

Elemento Descripción

* Busca la coincidencia con cualquier serie, incluida la serie nula

? Busca la coincidencia con cualquier carácter individual

[ . . . ] Busca la coincidencia con cualquier carácter que se haya especificado entre corchetes

[! . . . ] Busca la coincidencia con cualquier carácter que se haya especificado entre corchetesque no sea uno de los caracteres que siguen al signo de admiración

Dentro de los corchetes, un par de caracteres separados mediante un guión (-) especifica el conjunto detodos los caracteres que lexicográficamente están dentro del rango de inclusión de dicho par, de acuerdocon la clasificación binaria de los valores de los caracteres.

La coincidencia con patrones tiene algunas restricciones. Si el primer carácter del nombre del archivo espunto (.), éste sólo puede coincidir con un patrón que también empiece por un punto. Por ejemplo, *coincide con los nombres de archivos myfile y yourfile, pero no con los nombres de archivos .myfiley .yourfile. Para encontrar estos archivos, utilice un patrón como este:

.*file

Si un patrón no coincide con ningún nombre de archivo, se devuelve el propio patrón como resultado de labúsqueda de coincidencia que se ha intentado.

Los nombres de archivo y directorio no deben contener los caracteres *, ?, [ ni ] porque pueden provocaruna repetición infinita (es decir, bucles infinitos) durante los intentos de búsqueda de coincidencia depatrones.

Redirección de la entrada y la salida en el shell BourneExisten opciones de redirección que se pueden utilizar en mandatos.

En general, la mayoría de los mandatos no reconocen si su entrada o su salida está asociada al teclado, ala pantalla de visualización o a un archivo. De este modo, puede utilizarse un mandato convenientementeen el teclado o en un conducto.

Las siguientes opciones de redirección pueden aparecer en cualquier parte de un mandato simple.También pueden preceder o seguir a un mandato, pero no se pasan al mandato.

Gestión del sistema operativo 273

Page 280: AIX Versión 7 - IBM

Elemento Descripción

<Archivo Utiliza el archivo especificado como entrada estándar.

>Archivo Utiliza el archivo especificado como salida estándar. Crea el archivo si no existe; delo contrario, lo trunca a longitud cero.

> >Archivo Utiliza el archivo especificado como salida estándar. Crea el archivo si no existe; delo contrario, añade la salida al final del archivo.

<<[-]eofstr Lee como entrada estándar todas las líneas desde la variable eofstr hasta una líneaque sólo contiene eofstr o bien hasta un carácter de fin de archivo. Si algún carácterde la variable eofstr tiene delimitadores, el shell no expandirá ni interpretaráninguno de los caracteres de las líneas de entrada. De lo contrario, realizará lasustitución de la variable y del mandato e ignorará el carácter de nueva líneadelimitado (\nuevalínea). Utilice una barra inclinada invertida (\) para delimitar loscaracteres que están dentro de la variable eofstr o dentro de las líneas de entrada.

Si añade un guión (-) a la opción de redirección <<, se quitan todas las tabulacionesiniciales de la variable eofstr y de las líneas de entrada.

<&Dígito Asocia la entrada estándar al descriptor de archivo que especifica la variable Dígito.

>&Dígito Asocia la salida estándar al descriptor de archivo que especifica la variable Dígito.

<&- Cierra la entrada estándar.

>&- Cierra la salida estándar.

Nota: El shell restringido no permite la redirección de la salida.

Para obtener más información acerca de la redirección, consulte el “Redirección de la entrada y la salida”en la página 365.

Lista de mandatos incorporados del shell BourneLa lista siguiente indica los mandatos incorporados del shell Bourne.

Elemento Descripción

: Devuelve un valor de salida cero.

. Lee y ejecuta mandatos de un parámetro de archivo y a continuación los procesa.

break Sale de los bucles delimitadores del mandato for, while o until, si existe alguno.

cd Cambia el directorio actual por el directorio especificado.

continue Reanuda la siguiente iteración de los bucles delimitadores del mandato for , while o until.

echo Graba series de caracteres en salida estándar.

eval Lee los argumentos como entrada al shell y ejecuta el mandato o mandatos resultantes.

exec Ejecuta el mandato que especifica el parámetro Argumento, en lugar de este shell, sincrear un nuevo proceso.

exit Sale del shell cuyo estado de salida especifica el parámetro n.

export Marca nombres para exportación automática al entorno de mandatos ejecutadossucesivamente.

hash Localiza y recuerda la posición de la vía de búsqueda o mandatos especificados.

pwd Muestra el directorio actual.

read Lee una línea de la entrada estándar.

readonly Marca el nombre que especifica el parámetro Nombre como de sólo lectura.

274 AIX Versión 7.2: Gestión del sistema operativo

Page 281: AIX Versión 7 - IBM

Elemento Descripción

return Hace que una función salga con un valor de retorno especificado.

set Controla la visualización de varios parámetros para salida estándar.

shift Desplaza argumentos de línea de mandatos a la izquierda.

test Evalúa expresiones condicionales.

times Muestra las horas de usuario y del sistema totales para procesos que se ejecutan desde elshell.

trap Ejecuta el mandato especificado cuando el shell recibe la señal o señales especificadas.

type Interpreta cómo interpretaría el shell un nombre especificado como un nombre demandato.

ulimit Muestra o ajusta recursos del shell asignados.

umask Determina los permisos de archivo.

unset Elimina la variable o función correspondiente a un nombre especificado.

wait Espera a que finalice el proceso hijo especificado e informa de su estado de terminación.

Referencia relacionadaMandatos incorporados del shell BourneLos mandatos especiales se incorporan en el shell Bourne y se ejecutan en el proceso del shell.

Mandatos del shell BournePuede emitir mandatos en el shell Bourne.

Cuando emite un mandato en el shell Bourne, primero éste evalúa el mandato y efectúa todas lassustituciones indicadas. A continuación, éste ejecuta el mandato, siempre que:

• El nombre de mandato es un mandato incorporado especial del shell Bourne.

O bien• El nombre de mandato coincide con el nombre de una función definida. Si es así, el shell establece los

parámetros posicionales en los parámetros de la función.

Si el nombre del mandato no coincide ni con un mandato incorporado ni con el nombre de una funcióndefinida y el mandato especifica el nombre de un archivo ejecutable que es un programa compilado(binario), el shell (como padre) crea un nuevo proceso (hijo) que ejecuta inmediatamente el programa. Siel archivo está marcado como ejecutable, pero no es un programa compilado, el shell presupone que esun procedimiento de shell. En este caso, el shell crea otra instancia de sí mismo (un subshell), para leer elarchivo y ejecutar los mandatos que éste incluye. El shell también ejecuta un mandato entre paréntesisen un subshell. Para el usuario, se ejecuta un programa compilado exactamente del mismo modo que unprocedimiento de shell. El shell normalmente busca mandatos en directorios del sistema de archivos, eneste orden:

1. /usr/bin2. /etc3. /usr/sbin4. /usr/ucb5. $HOME/bin6. /usr/bin/X117. /sbin8. Directorio actual

El shell busca en cada directorio, por orden, continuando con el siguiente directorio si no puede encontrarel mandato.

Gestión del sistema operativo 275

Page 282: AIX Versión 7 - IBM

Nota: La variable PATH determina el orden en el que el shell busca en los directorios. Puede cambiar lasecuencia particular de los directorios en los que ha de buscarse estableciendo nuevamente la variablePATH.

Si proporciona un nombre de vía de acceso específico al ejecutar un mandato (por ejemplo, /usr/bin/sort), el shell no buscará en ningún directorio que no sea el especificado. Si el nombre del mandatocontiene una barra inclinada (/), el shell no utilizará la vía de búsqueda.

Puede especificar un nombre completo de vía de acceso que empiece por el directorio raíz(como /usr/bin/sort). También puede especificar un nombre de vía de acceso relativo al directorioactual. Por ejemplo, si especifica

bin/myfile

el shell buscará en el directorio actual un directorio denominado bin y en el directorio del archivomyfile.

Nota: El shell restringido no ejecuta mandatos que contienen una barra inclinada (/).

El shell recuerda la ubicación de la vía de búsqueda de cada mandato ejecutado (para evitar posterioresmandatos exec innecesarios). Si encuentra el mandato en un directorio relativo (cuyo nombre noempieza por /), el shell debe volver a determinar la ubicación del mandato cuando cambie el directorioactual. El shell olvida todas las ubicaciones recordadas cada vez que cambia la variable PATH o se ejecutael mandato hash -r.

Carácter de comillasMuchos caracteres tienen un significado especial para el shell. Algunas veces deseará conocer dichosignificado. Las comillas simples (') y las comillas dobles (") que delimitan una serie o una barrainclinada (\) antes de un único carácter le permiten adivinar el significado del carácter.

Todos los caracteres (excepto las comillas simples delimitadoras) se interpretan literalmente,eliminándose cualquier significado especial. De este modo, el mandato:

stuff='echo $? $*; ls * | wc'

asigna la serie literal echo $? $*; ls * | wc a la variable stuff. El shell no ejecuta los mandatosecho, ls y wc ni expande las variables $? y $* y el carácter especial de asterisco (*).

Dentro de las comillas dobles, el significado especial de los caracteres de signo de dólar ($), de acentograve (`) y de comillas dobles (") siguen estando en vigor, mientras que todos los demás caracteres setoman literalmente. De este modo, dentro de comillas dobles, se efectúa la sustitución de mandatos yvariables. Además, los delimitadores no afectan a los mandatos de una sustitución de mandatos que esparte de la serie delimitada, de forma que los caracteres conservan su significado especial.

Considere la siguiente secuencia:

ls *file1 file2 file3message="Este directorio contiene `ls * ` " echo $messageEste directorio contiene file1 file2 file3

Esto muestra que se ha expandido el carácter especial de asterisco (*) dentro de la sustitución demandatos.

Para ocultar el significado especial de los caracteres de signo de dólar ($), de acento grave (`) y decomillas dobles (") dentro de las comillas dobles, preceda estos caracteres con una barra inclinadainvertida (\). Cuando no utilice delimitadores, preceder un carácter con una barra inclinada invertida esequivalente a situarlo entre delimitadores. Por lo tanto, una barra inclinada invertida justo delante de uncarácter de nueva línea (es decir, una barra inclinada invertida al final de la línea) oculta el carácter denueva línea y le permite poder continuar la línea de mandatos en la siguiente línea física.

276 AIX Versión 7.2: Gestión del sistema operativo

Page 283: AIX Versión 7 - IBM

Manejo de señalesEl shell ignora las señales INTERRUPT y QUIT para un mandato invocado si el mandato finaliza con unampersand (&); es decir, si se ejecuta como proceso en segundo plano. De lo contrario, las señales tienenlos valores heredados del shell por su padre, con la excepción de la señal SEGMENTATION VIOLATION.

Para obtener más información, consulte el mandato incorporado del shell Bourne trap.

Mandatos compuestos del shell BourneUn mandato compuesto es uno de los siguientes.

• Un conducto (uno o más mandatos simples separados por el símbolo de conducto (|))• Una lista de mandatos simples• Un mandato que comienza por una palabra reservada• Un mandato que comienza por el paréntesis izquierdo (() del operador de control

A menos que se indique lo contrario, el valor devuelto por un mandato compuesto es el del últimomandato simple ejecutado.

Palabras reservadasLas siguientes palabras reservadas para el shell Bourne sólo se reconocen cuando aparecen sin lascomillas como la primera palabra de un mandato.

for do done

case esacif then fielif elsewhile until{ }( )

Elemento Descripción

forIdentificador[inPalabra. . .] doListadone

Establece el parámetro Identificador en la palabra o palabras que elparámetro Palabra especifica (de una en una) y ejecuta los mandatos quese especifican en el parámetro Lista. Si omite in Palabra. . ., el mandatofor ejecuta el parámetro Lista de cada parámetro posicional establecido yel proceso finaliza una vez utilizados todos los parámetros posicionales.

case Palabra in Patrón [|Patrón] . . . ) Lista;; [Patrón[|Patrón] . . . )Lista;;] . . .esac

Ejecuta los mandatos que se han especificado en el parámetro Lista que seasocian al primer parámetro Patrón que coincide con el valor del parámetroPalabra. Utiliza la misma notación coincidente de caracteres en patronesque se utiliza para sustitución de nombres de archivo, excepto que unabarra inclinada (/), un punto inicial (.)o un punto que sigue inmediatamentea una barra inclinada (/.) no debe coincidir explícitamente.

if Lista then Lista [elifLista thenLista] . . . [else Lista] fi

Ejecuta los mandatos especificados en el parámetro Lista que sigue almandato if. Si el mandato devuelve un valor de salida cero, el shell ejecutael parámetro Lista que sigue al primer mandato then. De lo contrario,ejecuta el parámetro Lista que sigue al mandato elif (si existe). Si estevalor de salida es cero, el shell ejecuta el parámetro Lista que sigue alsiguiente mandato then. Si el mandato devuelve un valor de salidadiferente a cero, el shell ejecuta el parámetro Lista que sigue al mandatoelse (si existe). Si no se realiza ningún else Lista o then Lista, el mandatoif devuelve el valor de salida cero.

while Lista do Listadone

Ejecuta los mandatos especificados en el parámetro Lista que sigue almandato while. Si el valor de salida del último mandato de while Lista escero, el shell ejecuta el parámetro Lista que sigue al mandato do. Continúala ejecución en bucle por las listas hasta que el valor de salida del últimomandato de while Lista no es cero. Si no se ejecuta ningún mandato de doLista, el mandato while devuelve el valor de salida cero.

Gestión del sistema operativo 277

Page 284: AIX Versión 7 - IBM

Elemento Descripción

until Lista do Listadone

Ejecuta los mandatos especificados en el parámetro Lista que sigue almandato until. Si el valor de salida del último mandato de until Lista noes cero, ejecuta la Lista que sigue al mandato do. Continúa la repetición enbucle por las listas hasta que el valor de salida del último mandato deuntil Lista es cero. Si no se ejecuta ningún mandato de do Lista, elmandato until devuelve el valor de salida cero.

( Lista ) Ejecuta los mandatos del parámetro Lista en un subshell.

{ Lista; } Ejecuta los mandatos del parámetro Lista en el proceso de shell actual y noinicia un subshell.

Nombre () { Lista } Define una función a la que el parámetro Nombre hace referencia. El cuerpode la función es la lista de mandatos entre las llaves especificadas por elparámetro Lista.

Mandatos incorporados del shell BourneLos mandatos especiales se incorporan en el shell Bourne y se ejecutan en el proceso del shell.

A menos que se indique algo distinto, la salida se graba en el descriptor de archivo 1 (salida estándar), yel estado de la salida es 0 (cero) si el mandato no contiene ningún error de sintaxis. Se permite laredirección de entrada y de salida.

Los siguientes mandatos especiales se tratan de forma algo distinta a otros mandatos especialesincorporados:

: (dos puntos) exec shift . (punto) exit timesbreak export trapcontinue readonly waiteval return

El shell Bourne procesa estos mandatos de este modo:

• Las listas de asignaciones de parámetros de palabra clave que preceden el mandato permanecen envigor cuando se completa el mandato.

• Las redirecciones de E/S se procesan después de las asignaciones de parámetros.• Los errores de un script de shell hacen que el script detenga el proceso.

Referencia relacionadaLista de mandatos incorporados del shell BourneLa lista siguiente indica los mandatos incorporados del shell Bourne.

Descripciones de mandatos especialesEl shell Bourne proporciona los siguientes mandatos incorporados especiales.

Elemento Descripción

: Devuelve un valor de salida de cero.

. Archivo Lee y ejecuta mandatos del parámetro Archivo y vuelve. No inicia un subshell. Elshell utiliza la vía de búsqueda especificada por la variable PATH para localizar eldirectorio que contiene el archivo especificado.

break [ n ] Sale de los bucles delimitadores del mandato for, while o until, si existe alguno. Siespecifica la variable n, el mandato break interrumpe el número de nivelesespecificados por la variable n.

continue [ n ] Reanuda la siguiente iteración de los bucles delimitadores del mandato for , whileo until. Si especifica la variable n, el mandato se reanuda en el nésimo bucledelimitador.

278 AIX Versión 7.2: Gestión del sistema operativo

Page 285: AIX Versión 7 - IBM

Elemento Descripción

cd Directorio ] Cambia del directorio actual a Directorio. Si no especifica Directorio, se utiliza elvalor de la variable de shell HOME. La variable de shell CDPATH define la vía debúsqueda de Directorio. CDPATH es una lista de nombres de directorios alternativosseparados mediante signos de dos puntos. Un nombre de vía de acceso nuloespecifica el directorio actual (que es la vía de acceso por omisión). Este nombre devía de acceso nulo aparece inmediatamente después del signo igual en laasignación o entre los delimitadores de dos puntos en cualquier parte de la lista devías de acceso. Si Directorio empieza por una barra inclinada (/), el shell no utilizala vía de búsqueda. De lo contrario, el shell busca en cada directorio de la variablede shell CDPATH.

Nota: El shell restringido no puede ejecutar el mandato de shell cd.

echo String . . . ] Graba series de caracteres en salida estándar. Consulte el mandato echo paraobtener información sobre su utilización y los parámetros. El distintivo -n no estásoportado.

eval [ Argumento . . . ]

Lee los argumentos como entrada al shell y ejecuta el mandato o mandatosresultantes.

exec [ Argumento . . . ]

Ejecuta el mandato que especifica el parámetro Argumento en lugar de este shellsin crear un nuevo proceso. Pueden aparecer argumentos de entrada y de salida y,si no aparece ningún otro argumento, da lugar a la modificación de la entrada osalida del shell. Esto no se recomienda para el shell de inicio de sesión.

exit [ n ] Da lugar a que un shell salga con el valor de salida que el parámetro n especifica. Siomite este parámetro, el valor de salida será el del último mandato ejecutado (lasecuencia de teclas Control-D también provoca la finalización del shell). El valor delparámetro n puede estar comprendido entre el 0 y el 255, inclusive.

export [ Nombre . . . ]

Marca los nombres especificados para su exportación automática a los entornos delos mandatos que se ejecutarán posteriormente. Si no especifica el parámetroNombre, el mandato export visualiza una lista de todos los nombres exportadosde este shell. No puede exportar nombres de función.

hash [ -r ][ Mandato . . . ]

Busca y recuerda la ubicación en la vía de búsqueda de cada Mandato especificado.El distintivo -r hace que el shell olvide todas las ubicaciones. Si no especifica eldistintivo o ningún mandato, el shell mostrará información acerca de los mandatosrecordados en el siguiente formato:

Hits Cost Command

Hits indica el número de veces que el proceso del shell ha ejecutado un mandato.Cost es una medida del trabajo necesario para localizar un mandato en la vía debúsqueda. Command muestra los nombres de las vías de acceso de cada mandatoespecificado. Ciertas situaciones requieren que se vuelva a calcular la ubicación deun mandato; por ejemplo, la ubicación de un nombre de vía de acceso relativacuando cambia el directorio actual. Los mandatos para los que podría realizarse seindican mediante un asterisco (*) junto a la información de Hits. Cost aumentacuando se efectúa el nuevo cálculo.

pwd Muestra el directorio actual. Consulte el mandato pwd para ver una explicación delas opciones del mandato.

read [ Nombre . . . ]

Lee una línea de la entrada estándar. Asigna la primera palabra de la línea al primerparámetro Nombre, la segunda palabra al segundo parámetro Nombre, y asísucesivamente, asignando las palabras restantes al último parámetro Nombre. Estemandato devuelve un valor de 0 a no ser que encuentre un carácter de fin dearchivo.

Gestión del sistema operativo 279

Page 286: AIX Versión 7 - IBM

Elemento Descripción

readonly[Nombre . . . ]

Marca el nombre que especifica el parámetro Nombre como de sólo lectura. El valordel nombre no puede restablecerse. Si no especifica ningún Nombre, el mandatoreadonly visualiza una lista de todos los nombres de sólo lectura.

return [ n ] Da lugar a que una función salga con un valor de retorno n. Si no especifica lavariable n, la función devuelve el estado del último mandato ejecutado en esafunción. Este mandato sólo es válido cuando se ejecuta en una función de shell.

set[ Distintivo [ Argumento ] . . . ]

Define uno o más de los siguientes distintivos:-a

Marca para exportación todas las variables a las que se efectúa una asignación.Si la asignación precede al nombre de un mandato, el atributo de exportaciónsólo es vigente para el entorno de ejecución de dicho mandato, excepto cuandola asignación precede a uno de los mandatos especiales incorporados. En estecaso, el atributo de exportación persiste después de que se ha completado elmandato incorporado. Si la asignación no precede a un nombre de mandato, osi la asignación es el resultado de la operación de los mandatos getopts oread, el atributo de exportación persiste hasta que se elimina la definición dela variable.

-eSale inmediatamente si existen todas las siguientes condiciones para unmandato:

• Sale con un valor de retorno mayor que 0 (cero).• No forma parte de la lista compuesta de un mandato while, until o if.• No se prueba utilizando listas AND u OR.• No es un conducto precedido de la palabra reservada ! (signo de admiración).

-fInhabilita la sustitución de nombres de archivo.

-hLocaliza y recuerda los mandatos llamados en funciones a medida que sedefinen las funciones. (Normalmente, estos mandatos se localizan cuando seefectúa la función; vea el mandato hash.)

-kSitúa todos los parámetros de palabra clave en el entorno de un mandato, nosólo aquellos que preceden el nombre de mandato.

-nLee mandatos, pero no los ejecuta. Para comprobar si existen errores desintaxis en el script del shell, utilice el distintivo -n.

-tSale después de leer y ejecutar un mandato.

-uTrata una variable sin definir como un error y sale inmediatamente cuandoefectúa la sustitución de variables. Un shell interactivo no sale.

-vMuestra las líneas de entrada del shell a medida que se leen.

-xMuestra los mandatos y sus argumentos antes de que se ejecuten.

—No cambia ninguno de los distintivos. Es útil para establecer el parámetroposicional $1 en una serie que empieza por un guión (-).

280 AIX Versión 7.2: Gestión del sistema operativo

Page 287: AIX Versión 7 - IBM

Elemento Descripción

La utilización de un signo más (+) en lugar de un guión (-) elimina elestablecimiento de los distintivos. También puede especificar estos distintivos enla línea de mandatos del shell. La variable especial $- contiene el conjunto actualde distintivos.

Cualquier Argumento para el mandato set pasa a ser un parámetro posicional y seasigna, por orden, a $1, $2, ..., etcétera. Si no especifica un distintivo ni unArgumento, el mandato set visualiza todos los nombres y los valores de lasvariables actuales de shell.

shift [n] Desplaza argumentos de línea de mandatos a la izquierda; es decir, reasigna elvalor de los parámetros posicionales desechando el valor actual de $1 y asignandoel valor de $2 a $1, de $3 a $2, etc. Si hay más de 9 argumentos de línea demandatos, el 10o se asigna a $9 y los que queden no estarán asignados (hastadespués de otro shift). Si existen 9 argumentos o menos, el mandato shifteliminará el establecimiento del parámetro posicional con la numeración más altaque tenga un valor.

El parámetro posicional $0 nunca se desplaza. El mandato shift n es una notaciónabreviada que especifica el número n de desplazamientos consecutivos. El valorpredeterminado del parámetro n es 1.

test Expresión |[ Expresión ]

Evalúa expresiones condicionales. Consulte el mandato test para obtenerinformación sobre los distintivos y los parámetros del mandato. El distintivo -h noestá soportado por el mandato test incorporado en bsh.

times Muestra las horas de usuario y del sistema totales para procesos que se ejecutandesde el shell.

trap [ Mandato ][ n ] . . .

Ejecuta el mandato que especifica el parámetro Mandato cuando el shell recibe laseñal o señales que se especifican mediante el parámetro n. Los mandatos trap seejecutan por orden de número de señal. Cualquier intento de definir una ruptura ouna señal que se ignoró en la entrada al shell actual no es efectivo.

Nota: El shell explora el parámetro Mandato una vez cuando se establece laruptura y de nuevo cuando se acepta la ruptura.

Si no especifica un mandato, todas las rupturas que especifica el parámetro nvolverán a establecerse en sus valores actuales. Si especifica una serie nula, elshell y los mandatos que llama ignoran esta señal. Si el parámetro n es cero (0), elmandato especificado se ejecutará cuando salga del shell. Si no especifica unmandato o señal, el mandato trap muestra una lista de mandatos asociados concada número de señal.

type [Nombre . . . ]

Indica cómo interpretaría el shell cada Nombre especificado como un nombre demandato.

Gestión del sistema operativo 281

Page 288: AIX Versión 7 - IBM

Elemento Descripción

ulimit [-HS] [ -c |-d | -f | -m | -r | -s |-t |-u] [límite]

Muestra o ajusta recursos del shell asignados. Los valores de los recursos del shellpueden visualizarse individualmente o en forma de grupo. La modalidad poromisión es visualizar recursos definidos en el valor limitado o el límite inferior comoun grupo.

El valor de recursos de shell depende del ID de usuario vigente del shell actual. Elnivel fijo de un recurso sólo puede definirse si el ID de usuario vigente del shellactual es raíz. Recibirá un error si no es el usuario root e intenta establecer el nivelfijo de un recurso. Por omisión, el usuario root define los límites fijos y limitados deun recurso particular. Por lo tanto, el usuario root debe tener cuidado al utilizar losvalores de la utilización de límites del distintivo -S, -H o del distintivo por omisión.A menos que sea un usuario root, sólo podrá establecer el límite flexible de unrecurso. Cuando un usuario que no es el usuario root ha reducido un límite, éste nopuede aumentarse, ni tan siquiera para volverlo a establecer en el límite originaldel sistema.

Para definir un límite de recurso, seleccione el distintivo apropiado y el valor límitedel nuevo recurso, que debe ser un entero. Sólo podrá establecer un límite derecurso cada vez. Si se especifica más de un distintivo de recurso, recibiráresultados indefinidos. Por omisión, ulimit con sólo un nuevo valor en la línea demandatos establece el tamaño de archivo del shell. La utilización del distintivo -f esopcional.

Puede especificar los distintivos del mandato ulimit siguientes:

-cDefine o muestra segmentos de imagen de memoria para el shell.

-dDefine o muestra segmentos de datos para el shell.

-fDefine o muestra el tamaño de archivos para el shell.

-HDefine o visualiza el límite fijo de recursos (sólo usuario root).

-mDefine o muestra memoria para el shell.

-rDefine o muestra el número máximo de hebras por proceso.

-sDefine o muestra segmentos de pila para el shell.

-SDefine o muestra el límite flexible de recursos.

-tDefine o muestra el máximo de tiempo CPU para el shell.

-uDefine o muestra el número máximo de procesos por usuario.

umask [nnn] Determina los permisos de archivo. Este valor, junto con los permisos del procesode creación, determina los permisos de un archivo cuando se crea el archivo. Elvalor predeterminado es 022. Cuando no se especifica ningún valor, umaskvisualiza el valor actual.

unset [Nombre . . .]

Elimina la variable o función correspondiente para cada nombre que especifique elparámetro Nombre. No puede eliminarse la definición de las variables de shellPATH, PS1, PS2, MAILCHECK e IFS.

282 AIX Versión 7.2: Gestión del sistema operativo

Page 289: AIX Versión 7 - IBM

Elemento Descripción

wait [n] Espera a que el proceso hijo cuyo número de proceso especifica el parámetro nsalga y, a continuación, devuelve el estado de salida de ese proceso. Si noespecifica el parámetro n, el shell espera a todos los procesos hijo activosactualmente, y el valor de retorno es 0.

Sustitución de mandatos en el shell BourneLa sustitución de mandatos le permite capturar la salida de cualquier mandato como un argumento paraotro mandato.

Cuando especifica una línea de mandatos dentro de acentos graves (``), el shell ejecuta en primer lugarel mandato o mandatos y, a continuación, sustituye la expresión completa, incluidos los acentos graves,por la salida. Esta función suele utilizarse para proporcionar valores a las variables de shell. Por ejemplo,la sentencia:

today=`date`

asigna una serie de caracteres que representa la fecha actual para la variable today. La siguienteasignación guarda, en la variable files, el número de archivos del directorio actual:

files=`ls | wc -l`

Puede efectuar sustitución de mandatos en cualquier mandato que grabe a salida estándar.

Para anidar sustituciones de mandatos, preceda con una barra inclinada invertida (\) cada uno de losacentos graves anidados, tal como se muestra a continuación:

logmsg=`echo El directorio de inicio de sesión es \`pwd\``

También puede especificar valores para las variables del shell de forma indirecta, utilizando el mandatoespecial read. Este mandato toma una línea de la entrada estándar (usualmente el teclado) y asignapalabras consecutivas en dicha línea a cualquier variable designada. Por ejemplo:

read first init last

toma una línea de entrada en el formato:

J. Q. Public

y tiene el mismo efecto que si hubiera escrito:

first=J. init=Q. last=Public

El mandato especial read asigna las palabras de exceso a la última variable.

Sustitución de variables en el shell BourneEl shell Bourne permite realizar sustituciones de variables.

El shell Bourne dispone de varios mecanismos para crear variables (asignar el valor de una serie a unnombre). Existen determinadas variables, parámetros posicionales y parámetros de palabra clave que,normalmente, sólo se establecen en una línea de mandatos. Otras variables son simplemente nombres alos que el usuario o el shell puede asignar valores de serie.

Conceptos relacionadosTerminales desatendidosTodos los sistemas son vulnerables si se dejan las sesiones iniciadas o desatendidos los terminales. Losproblemas más graves se producen cuando un gestor del sistema deja un terminal desatendido al que sele ha asignado autorización de usuario root. En general, los usuarios deben finalizar la sesión cada vezque abandonan sus terminales.

Gestión del sistema operativo 283

Page 290: AIX Versión 7 - IBM

Variables definidas por el usuario en el shell BourneEl shell Bourne reconoce variables alfanuméricas a las que se pueden asignar valores de series.

Para asignar un valor de serie a un nombre, escriba la siguiente:

Nombre=Serie

Un nombre es una secuencia de letras, dígitos y subrayados que comienza por un subrayado o una letra.Para utilizar el valor que ha asignado a una variable, añada un signo de dólar ($) al principio de su nombre.De esta forma, la variable $Nombre produce el valor especificado por la variable Serie. Tenga en cuentaque no existen espacios alrededor del signo de igual (=) en una sentencia de asignación. (No puedenaparecer parámetros posicionales en una sentencia de asignación. Puede situar más de una asignaciónen una línea de mandatos, pero recuerde que el shell efectúa las asignaciones de derecha a izquierda.

Si delimita la variable Serie entre comillas dobles o simples (" o '), el shell no tratará los blancos,tabulaciones, caracteres de punto y coma y de nueva línea como delimitadores de palabra, sino que losintercalará literalmente en la serie.

Si delimita la variable Serie entre comillas dobles ("), el shell seguirá reconociendo los nombres devariables de la serie y realizará la sustitución de variables; es decir, sustituirá las referencias a losparámetros posicionales y otros nombres de variables precedidos por el signo de dólar ($) por sus valorescorrespondientes, si existen. El shell también efectúa sustitución de mandatos en series que estándelimitadas por comillas.

Si delimita la variable Serie entre comillas simples ('), el shell no sustituirá las variables o mandatos queestán dentro de la serie. En la secuencia siguiente se muestra un ejemplo de esta diferencia:

You: num=875 number1="Añadir $num" number2='Añadir $num' echo $number1System: Add 875You: echo $number2System: Add $num

El shell no reinterpreta los blancos de las asignaciones después de la sustitución de variables. De estemodo, las siguientes asignaciones dan como resultado que $first y $second tengan el mismo valor:

first='una serie con blancos intercalados'second=$first

Cuando hace referencia a una variable, puede delimitar el nombre de variable (o la designación digital deun parámetro posicional) entre llaves { } para delimitar el nombre de la variable de cualquier serie quele siga. En particular, si el carácter que sigue inmediatamente al nombre es una letra, un dígito o unsubrayado y la variable no es un parámetro posicional, es necesario utilizar llaves:

Usuario: a='Esto es un' echo "${a}a prueba"Sistema: Esto es una pruebaUsuario: echo "$a ejemplo"Sistema: Esto es un ejemplo

Conceptos relacionadosParámetros posicionales del shell BourneCuando se ejecuta un procedimiento de shell, el shell crea implícitamente parámetros posicionales quehacen referencia a cada palabra de la línea de mandatos por su respectiva posición.Referencia relacionadaSustitución condicional en el shell BourneNormalmente, el shell sustituye la expresión $Variable por el valor de la serie asignada a la variableVariable, si existe una. Sin embargo, existe una notación especial que permite la sustitución condicional,en función de si la variable se ha establecido o no es nula, o ambas cosas.

284 AIX Versión 7.2: Gestión del sistema operativo

Page 291: AIX Versión 7 - IBM

Variables utilizadas por el shell BourneEl shell utiliza las siguientes variables. Aunque el shell establece algunas de ellas, puede establecer orestablecer todas ellas.

Elemento Descripción

CDPATH Especifica la vía de búsqueda para el mandato cd (cambiar directorio).

HOME Indica el nombre del directorio de inicio de sesión, que es el directorio que seconvierte en el directorio actual al completarse un inicio de sesión. El programalogin inicializa esta variable. El mandato cd utiliza el valor de la variable $HOMEcomo valor predeterminado. Utilizando esta variable en lugar de un nombre de vía deacceso explícito en un procedimiento de shell permite que el procedimiento seejecute desde un directorio distinto sin alteraciones.

IFS Caracteres que son IFS (separadores de campos internos), que son los caracteresque el shell utiliza durante la interpretación de los blancos. Inicialmente, el shellestablece la variable IFS para que incluya los blancos, las tabulaciones y loscaracteres de nueva línea.

LANG Determina el entorno local que se debe utilizar para las categorías de entorno localcuando la variable LC_ALL y la variable de entorno correspondiente (que empieza porLC_) no especifican un entorno local.

LC_ALL Determina el entorno local que se debe utilizar para alterar temporalmente losvalores para las categorías de entorno local especificadas por los valores de lavariable de entorno LANG o cualquier variable de entorno que empiece por LC_.

LC_COLLATE Define el orden de clasificación a utilizar cuando se ordenen nombres y cuando seproduzcan rangos de caracteres en patrones.

LC_CTYPE Determina el entorno local para la interpretación de secuencias de bytes de datos detexto como caracteres (es decir, caracteres de un solo byte frente a caracteres devarios bytes en argumentos y archivos de entrada), qué caracteres se han definidocomo letras (clase de caracteres alpha) y el comportamiento de clases de caracteresdentro de la coincidencia de patrones.

LC_MESSAGES Determina el idioma en que deben escribirse los mensajes.

LIBPATH Especifica la vía de búsqueda para bibliotecas compartidas.

LOGNAME Especifica el nombre de inicio de sesión, marcado como readonly en elarchivo /etc/profile.

MAIL Indica el nombre de la vía de acceso del archivo utilizado por el sistema de correopara detectar la llegada de correo nuevo. Si se establece esta variable, el shellcomprueba periódicamente la hora de modificación de este archivo y visualiza elvalor de $MAILMSG si la hora cambia y la longitud del archivo es mayor que 0.Establezca la variable MAIL en el archivo .profile. Normalmente, el valor que leasignan los usuarios del mandato mail es /usr/spool/mail/$LOGNAME.

MAILCHECK Número de segundos que el shell espera antes de volver a comprobar la llegada decorreo en los archivos que especifican las variables MAILPATH o MAIL. El valorpredeterminado es 600 segundos (10 minutos). Si define la variable MAILCHECK a 0,el shell efectúa la comprobación antes de cada solicitud.

MAILMSG El mensaje de notificación de correo. Si establece explícitamente la variableMAILMSG en una serie nula (MAILMSG=""), no se visualizará ningún mensaje.

Gestión del sistema operativo 285

Page 292: AIX Versión 7 - IBM

Elemento Descripción

MAILPATH Una lista de nombres de archivo separada por signos de dos puntos. Si define estavariable, el shell le informará de la llegada de correo en cualquier de los archivosespecificados en la lista. Tras el nombre de cada archivo puede especificar uncarácter % y el mensaje que ha de visualizarse cuando llegue correo. De lo contrario,el shell utiliza el valor de la variable MAILMSG o, de forma predeterminada, elmensaje [TIENE CORREO NUEVO].

Nota: Cuando se establece la variable MAILPATH, se comprueban estos archivos enlugar del archivo establecido por la variable MAIL. Para comprobar los archivosestablecidos por la variable MAILPATH y el archivo establecido por la variable MAIL,especifique el archivo MAIL en la lista de archivos MAILPATH.

PATH La vía de búsqueda para mandatos, que es una lista ordenada de nombres de vías deacceso de directorios separadas por dos puntos. El shell busca en dichos directoriosen el orden especificado cuando busca mandatos. Una serie nula en cualquier partede la lista representa el directorio actual.

Normalmente, la variable PATH se inicializa en el archivo /etc/environment, porlo general, en /usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin.Puede redefinir esta variable para que se ajuste a sus requisitos. La variable PATHproporcionada en el archivo .profile también incluye $HOME/bin y el directorioactual.

Si tiene un directorio de mandatos específico de un proyecto, por ejemplo, /project/bin, en el que desea que se busque antes que en los directorios estándardel sistema, establezca la variable PATH de la manera siguiente:

PATH=/project/bin:$PATH

El mejor lugar para establecer la variable PATH en un valor distinto del valorpredeterminado es en el archivo $HOME/.profile. No puede redefinir la variablePATH si va a ejecutar mandato bajo el shell restringido.

PS1 La serie que se utilizará como indicador principal del sistema. Un shell interactivomuestra la serie de este indicador cuando espera entrada. El valor predeterminadode la variable PS1 es $ seguido de un espacio en blanco para usuarios que no sonroot.

PS2 El valor de la serie de indicador secundario. Si el shell espera más entrada cuandoencuentra un carácter de nueva línea en su entrada, solicita el valor de la variablePS2. El valor predeterminado de la variable PS2 es > seguido de un espacio enblanco.

SHACCT El nombre de un archivo que posee. Si se define esta variable, el shell graba unregistro estadístico en el archivo para cada script de shell que se ejecuta. Puedeutilizar programas de contabilidad como acctcom y acctcms para analizar los datosrecopilados.

SHELL El nombre de la vía de acceso del shell, que se conserva en el entorno. Esta variabledebe establecerla y exportarla el archivo $HOME/.profile de cada inicio de sesiónrestringido.

TIMEOUT El número de minutos que un shell permanece inactivo antes de que finalice. Si estavariable se establece en un valor mayor que cero (0), el shell sale si no se entra unmandato dentro del número de segundos indicado tras la emisión del indicador PS1.(Tenga en cuenta que el shell puede compilarse con un límite máximo que no puedesuperarse para este valor). Un valor de cero indica sin límite de tiempo.

286 AIX Versión 7.2: Gestión del sistema operativo

Page 293: AIX Versión 7 - IBM

Conceptos relacionadosInterpretación de los blancosEl shell, después de haber realizado la sustitución de variables y de mandatos, explora los resultados enbusca de los separadores de campos internos (los que se han definido en la variable de shell IFS).

Variables especiales predefinidas en el shell BourneVarias variables tienen significados especiales. Las variables siguientes sólo se establecen por el shellBourne:

Elemento

Descripción

$@ Expande los parámetros posicionales, empezando por $1. Cada parámetro está separado por unespacio.

Si utiliza comillas dobles (" ") para delimitar $@, el shell considera cada parámetro posicionalcomo una serie separada. Si no existen parámetros posicionales, el shell Bourne expande lasentencia a una serie nula sin delimitar.

$* Expande los parámetros posicionales, empezando por $1. El shell separa cada parámetroutilizando el primer carácter del valor de la variable IFS.

Si utiliza comillas dobles (" ") para delimitar $*, el shell incluye los valores de los parámetrosposicionales entre comillas dobles. Los valores están separados por el primer carácter de lavariable IFS.

$# Especifica el número de parámetros posicionales pasados al shell, sin contar el nombre del propioprocedimiento de shell. De esta forma, la variable $# produce el número del parámetro posicionalcon la numeración más alta que se ha establecido. Una de las utilizaciones principales de estavariable es comprobar la presencia del número necesario de argumentos. Sólo se pueden accedera los parámetros posicionales $0 a $9 a través del shell.

$? Especifica el valor de salida del último mandato ejecutado. Su valor es una serie decimal. Lamayoría de mandatos devuelven un valor 0 para indicar que se ha finalizado satisfactoriamente. Elpropio shell devuelve el valor actual de la variable $? como valor de salida.

$$ Identifica el número de proceso del proceso actual. Puesto que los números de proceso sonexclusivos entre todos los procesos existentes, esta serie suele utilizarse para generar nombresexclusivos para archivos temporales.

El ejemplo siguiente ilustra la práctica recomendada de crear archivos temporales en un directorioutilizado solamente para dicho propósito:

temp=/tmp/$$ls >$temp...rm $temp

$! Especifica el número de proceso del último proceso en segundo plano que se ha ejecutadoutilizando el terminador &.

$- Una serie que consta de los nombres de los distintivos de ejecución definidos actualmente en elshell.

Conceptos relacionadosParámetros posicionales del shell BourneCuando se ejecuta un procedimiento de shell, el shell crea implícitamente parámetros posicionales quehacen referencia a cada palabra de la línea de mandatos por su respectiva posición.

Gestión del sistema operativo 287

Page 294: AIX Versión 7 - IBM

Interpretación de los blancosEl shell, después de haber realizado la sustitución de variables y de mandatos, explora los resultados enbusca de los separadores de campos internos (los que se han definido en la variable de shell IFS).

El shell divide la línea en palabras diferentes en cada lugar y encuentra uno o más de dichos caracteresseparando cada palabra distinta con un solo espacio. A continuación, retiene los argumentos nulosexplícitos ("" o '') y descarta los argumentos nulos implícitos (que resultan de los parámetros que notienen valores).

Referencia relacionadaVariables utilizadas por el shell BourneEl shell utiliza las siguientes variables. Aunque el shell establece algunas de ellas, puede establecer orestablecer todas ellas.

shell CEl shell C es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Utilizauna sintaxis que es similar al lenguaje de programación C.

El mandato csh inicia el shell C.

Cuando inicia la sesión, el mandato csh busca en primer lugar el archivo de configuración de todo elsistema /etc/csh.cshrc. Si el archivo de configuración existe, el shell C ejecuta los mandatosalmacenados en dicho archivo. A continuación, el shell C ejecuta el archivo de configuración de todo elsistema /etc/csh.login, si está disponible. Después, busca en el directorio inicial los archivos .cshrcy .login. Si existen, contienen información de usuario personalizada pertinente para ejecutar el shell C.Todas las variables establecidas en los archivos /etc/csh.cshrc y /etc/csh.login podríanalterarlas temporalmente los archivos .cshrc y .login del directorio $HOME. Sólo el usuario root puedemodificar los archivos /etc/csh.cshrc y /etc/csh.login.

Los archivos /etc/csh.login y $HOME/.login sólo se ejecutan una vez durante el inicio de sesión.Por lo general, estos archivos se utilizan para contener las definiciones de las variables de entorno, losmandatos que desea que se ejecuten una vez al iniciarse la sesión o los mandatos que establecen lascaracterísticas del terminal.

Los archivos /etc/csh.cshrc y $HOME/.cshrc se ejecutan al iniciar la sesión y cada vez que se invocael mandato csh o script de shell C. Generalmente, se utilizan para definir las características del shell C,tales como alias y variables de shell C, (por ejemplo, history, noclobber o ignoreeof). Se recomiendautilizar sólo los mandatos incorporados del shell C en los archivos /etc/csh.cshrc y $HOME/.cshrcya que la utilización de otros mandatos aumenta el tiempo de arranque de los scripts de shell.

Referencia relacionadaLista de mandatos incorporados del shell CA continuación se muestran los mandatos incorporados del shell C.

Limitaciones del shell CLas siguientes son limitaciones del shell C.

• Las palabras no pueden ser mayores de 1024 bytes.• Las listas de argumentos están limitadas a ARG_MAX bytes. Los valores para la variable ARG_MAX se

encuentran en el archivo /usr/include/sys/limits.h.• El número de argumentos para un mandato que implica la expansión del nombre de archivo está

limitado a 1/6 del número de bytes permitidos en una lista de argumentos.• Las sustituciones de mandatos no pueden sustituir más bytes de los que están permitidos en una lista

de argumentos.• Para detectar bucles, el shell limita el número de sustituciones de alias en una sola línea a 20.• El mandato csh no da soporte a la expansión del nombre de archivo basada en la clasificación de

equivalencia de los caracteres.• Los descriptores de archivo (distintos de la entrada estándar, la salida estándar y el error estándar) que

se han abierto antes de que csh ejecute alguna aplicación no están disponibles para esa aplicación.

288 AIX Versión 7.2: Gestión del sistema operativo

Page 295: AIX Versión 7 - IBM

Sustitución de alias en el shell CUn alias es un nombre que se asigna a un mandato o a una serie de mandatos. El shell C le permiteasignar alias y utilizarlos como utilizaría los mandatos. El shell mantiene una lista de los alias que define.

Cuando el shell ha explorado la línea de mandatos, subdivide los mandatos en distintas palabras ycomprueba la primera palabra de cada mandato, de izquierda a derecha, para verificar si existe un alias.Si se encuentra un alias, el shell utiliza el mecanismo del histórico para sustituir el texto del alias por eltexto del mandato al que hace referencia el alias. Las palabras resultantes sustituyen la lista de mandatosy argumentos. Si no se hace ninguna referencia a la lista del histórico, la lista de argumentos permaneceintacta.

Los mandatos incorporados alias y unalias se utilizan para establecer, visualizar y modificar la lista delos alias. El mandato alias se utiliza en el formato siguiente:

alias [Nombre [ListaPalabras]]

La variable opcional Nombre especifica el alias del nombre especificado. Si especifica una lista depalabras con la variable ListaPalabras, el mandato la asigna como el alias de la variable Nombre. Siejecuta el mandato alias sin ninguna variable opcional, éste visualiza todos los alias del shell C.

Si el alias del mandato ls es ls -l, el mandato siguiente:

ls /usr

se sustituirá por el mandato:

ls -l /usr

La lista de argumentos no se altera puesto que no hay ninguna referencia a la lista del histórico en elmandato con un alias. De forma similar, si el alias del mandato lookup es el siguiente:

grep \!^ /etc/passwd

el shell sustituirá lookup bill por lo siguiente:

grep bill /etc/passwd

En este ejemplo, !^ hace referencia a la lista del histórico, y el shell la sustituye por el primer argumentoque aparece en la línea de entrada, en este caso bill.

Puede utilizar caracteres coincidentes con patrón especiales en un alias. El mandato siguiente:

alias lprint 'pr &bslash2.!* > > print'

crea un mandato que formatea sus argumentos a la impresora de líneas. El carácter ! queda protegidodel shell, en el alias, por medio de la utilización de comilla simples para que el alias no se expanda hastaque se ejecute el mandato pr.

Si el shell localiza un alias, efectúa la transformación de palabras del texto de entrada y comienza denuevo el proceso de alias en la línea de entrada reformada. Si la primera palabra del siguiente texto esigual que la del texto anterior, se impide que tenga lugar la repetición en bucle asignando al alias undistintivo para que finalice el proceso del alias. Los otros bucles posteriores se detectan y generan unerror.

Conceptos relacionadosSustitución del histórico en el shell CLa sustitución de histórico le permite modificar palabras individuales de mandatos anteriores para crearnuevos mandatos. La sustitución de histórico facilita la repetición de mandatos, de argumentos de unmandato anterior en el mandato actual o arreglar errores de escritura en el mandato anterior escribiendomenos de lo normal.

Gestión del sistema operativo 289

Page 296: AIX Versión 7 - IBM

Sustitución de variables en el shell CEl shell C mantiene un conjunto de variables, cada una de las cuales tiene como valor una lista de cero omás palabras. Algunas de estas variables están definidas por el shell o el shell hace referencia a ellas. Porejemplo, la variable argv es una imagen de la lista de variables del shell y a las palabras que componen elvalor de esta variable se hace referencia de formas especiales.

Para cambiar y visualizar los valores de las variables, utilice los mandatos set y unset. De las variables alas que hace referencia el shell, algunas son conmutadores (variables que activan o desactivan valores).El shell no examina los conmutadores de un valor, sólo comprueba si están o no establecidos. Porejemplo, la variable de shell verbose es un conmutador que provoca el eco de la entrada de mandatos. Elvalor de esta variable es el resultado de la emisión del distintivo -v desde la línea de mandatos.

Otras operaciones tratan a las variables numéricamente. El mandato @ realiza cálculos numéricos y elresultado se asigna a una variable. No obstante, los valores de las variables siempre están representadoscomo (cero o más) series. Para las operaciones numéricas, la serie nula se considera que es cero y lasegunda y siguientes palabras de los valores de varias palabras se ignoran.

Cuando emita un mandato, el shell analizará la línea de entrada y efectuará la sustitución de alias. Acontinuación, antes de ejecutar el mandato, efectuará la sustitución de variables. El carácter $ se utilizapara la sustitución. Sin embargo, se pasará sin cambiarse si va seguido de un blanco, una tabulación o uncarácter de nueva línea. La especificación de una \ antes del carácter $ impide esta expansión, salvo endos casos:

• El mandato está delimitado entre " ". En este caso, el shell siempre efectúa la sustitución.• El mandato está delimitado entre ' '. En este caso, el shell nunca efectúa la sustitución. En las

sustitución de mandatos, se interpretan las series especificadas entre ' '.

El shell reconoce la redirección de entrada y de salida antes de la expansión de variables y las expandepor separado. De lo contrario, el nombre de mandato y la lista completa de argumentos se expandenjuntos. Por lo tanto, es posible que la primera palabra (mandato) genere más de una palabra, la primerade las cuales pasa a ser el nombre de mandato y el resto pasan a ser parámetros.

A menos que se hayan delimitado mediante " " o se haya proporcionado el modificador :q, losresultados de la sustitución de variables pueden estar sujetos finalmente a la sustitución de mandatos ynombres de archivos. Cuando está delimitada entre comillas, una variable con un valor que consta devarias palabras se expande a una sola palabra o a una parte de una palabra, con las palabras del valor dela variable separadas por blancos. Cuando aplica el modificador :q a una sustitución, la variable seexpande en varias palabras. Cada palabra se separa mediante un blanco y se delimita entre comillasdobles para impedir la posterior sustitución de mandatos o de nombres de archivo.

Las notaciones que se indican a continuación le permiten introducir valores de variable en la entrada delshell. Excepto como se indica, es un error hacer referencia a una variable que no está definida con elmandato set.

Puede aplicar los modificadores :gh, :gt, :gr, :h, :r, :q y :x a las sustituciones siguientes. Si en elformato del mandato aparecen { }, los modificadores deben especificarse dentro de las llaves. En cadaexpansión de variable sólo está permitido especificar un modificador :.

Elemento Descripción

$Nombre

${Nombre} Se sustituye por las palabras que se han asignado a la variable Nombre, cada una deellas separadas por un blanco. Las llaves aíslan la variable Nombre de cualquiera delos caracteres siguientes que, de lo contrario, formarían parte de ésta. Los nombresde las variables de shell empiezan por una letra y constan de un máximo de 20letras y dígitos, incluido el carácter de subrayado (_). Si la variable Nombre noespecifica una variable de shell pero está establecida en el entorno, se devuelve suvalor. El modificador precedido por dos puntos, además de los demás formatosdescritos aquí, no está disponible en este caso.

290 AIX Versión 7.2: Gestión del sistema operativo

Page 297: AIX Versión 7 - IBM

Elemento Descripción

$Nombre[número ]

${ Nombre[número]}

Sólo selecciona algunas de las palabras del valor de la variable Nombre. El númerose somete a la sustitución de variables y puede estar compuesto de un solo númeroo de dos números separados mediante un guión (-). La primera palabra del valor dela serie de una variable tiene el número 1. Si se omite el primer número de un rango,se toma el valor predeterminado 1. Si se omite el último número de un rango, elvalor predeterminado es $#Nombre. El símbolo de asterisco (*) selecciona todas laspalabras. No es un error que un rango esté vacío si se omite el segundo argumento oestá en un rango.

$#Nombre

${#Nombre} Proporciona el número de palabras de la variable Nombre. Puede utilizarse en un[número], tal como se ha indicado anteriormente. Por ejemplo,$Nombre[$#Nombre].

$0 Sustituye el nombre del archivo cuya entrada de mandatos se lee. Se produce unerror si no se conoce el nombre.

$número

${número} Equivalente a $argv[número].

$* Equivalente a $argv[*].

Es posible que las siguientes sustituciones no se puedan cambiar con los modificadores ::

Elemento Descripción

$?nombre

${?nombre}

Sustituye a la serie 1 si se ha establecido la variable nombre; a cero (0) si no se haestablecido esta variable.

$?0 Sustituye a 1 si se conoce el nombre de archivo de entrada actual; a cero (0) si no se conoceel nombre de archivo.

$$ Sustituye el número de proceso (decimal) del shell padre.

$< Sustituye una línea de la entrada estándar, sin interpretación posterior. Utilice estasustitución para leer desde el teclado en un procedimiento del shell.

Conceptos relacionadosSustitución de mandatos en el shell CEn la sustitución de mandatos, el shell ejecuta un mandato especificado y sustituye ese mandato por susalida.

Sustitución de nombres de archivo en el shell CEl shell C permite realizar sustituciones de nombres de archivos.

El shell C proporciona varios accesos directos para ahorrar tiempo y pulsaciones. Si una palabra contienecualquiera de los caracteres *, ?, [ ] o { } o empieza por una tilde (~), esta palabra es candidata de lasustitución de nombre de archivo. El shell C interpreta la palabra como si fuera un patrón y sustituye lapalabra por una lista ordenada alfabéticamente de nombres de archivos que coinciden con el patrón.

Se utiliza el orden de clasificación actual, tal como especifican las variables de entorno LC_COLLATE oLANG. En una lista de palabras que especifica la sustitución de nombres de archivo, se produce un error siningún patrón coincide con un nombre de archivo existente. No obstante, no se requiere que coincidantodos los patrones. Sólo los símbolos de coincidencia de caracteres *, ? y [ ] indican coincidencia de

Gestión del sistema operativo 291

Page 298: AIX Versión 7 - IBM

patrón o expansión de nombre de archivo. La tilde (~) y los caracteres { } indican una abreviatura delnombre de archivo.

Expansión de nombres de archivo en el shell CEl carácter de asterisco (*) puede coincidir con cualquier serie de caracteres, incluida la serie nula.

Por ejemplo, en un directorio que contiene los archivos:

a aa aax alice b bb c cc

el mandato echo a* imprime todos los nombres de archivo que empiezan por el carácter a:

a aa aax alice

Nota: Cuando se busca la coincidencia de nombres de archivo, los caracteres de punto (.) y la barrainclinada (/) deben coincidir explícitamente.

El signo de interrogación (?) puede coincidir con cualquier carácter individual. El mandato siguiente:

ls a?x

lista todos los nombres de archivo que empiezan por la letra a, seguida de un solo carácter y que finalizanpor la letra x:

aax

Para buscar la coincidencia de un único carácter o de un rango de caracteres, delimite el carácter ocaracteres entre [ ]. El mandato siguiente:

ls [abc]

lista todos los nombres de archivo que coinciden exactamente con uno de los caracteres delimitados:

a b c

Dentro de los corchetes, un rango léxico de caracteres se indica mediante [a-z]. Los caracteres quecoinciden con este patrón se definen mediante el orden de clasificación actual.

Abreviaturas de nombre de archivo en el shell CLa tilde (~) y los caracteres { indican una abreviatura de un nombre de archivo. El carácter ~ al principiode un nombre de archivo se utiliza para representar directorios iniciales. Cuando aparece solo, el carácter~ expande el directorio inicial reflejado en el valor de la variable de shell home.

Por ejemplo, el mandato siguiente:

ls ~

lista todos los archivos y directorios que se encuentran en el directorio $HOME.

Cuando el mandato va seguido de un nombre formado por caracteres de letras, dígitos y guión (-), el shellbusca un usuario que tenga ese nombre y sustituye el directorio $HOME de dicho usuario.

Nota: Si el carácter ~ va seguido de un carácter distinto de una letra o una barra inclinada (/), o apareceen cualquier lugar que no sea al principio de una palabra, la expansión no se realiza.

Para buscar la coincidencia de nombres de archivo sin escribir el nombre completo del archivo,especifique los nombres de archivo entre { }. El patrón a{b,c,d}e es otra manera de escribir abe aceade. El shell mantiene el orden de izquierda a derecha y almacena por separado el resultado las

292 AIX Versión 7.2: Gestión del sistema operativo

Page 299: AIX Versión 7 - IBM

coincidencias a bajo nivel para preservar este orden. Puede que esta construcción esté anidada. De estaforma, lo siguiente:

~source/s1/{oldls,ls}.c

se expande a:

/usr/source/s1/oldls.c /usr/source/s1/ls.c

si el directorio inicial para source es /usr/source. De forma similar, lo siguiente:

../{memo,*box}

puede expandirse a:

../memo ../box ../mbox

Nota: memo no se clasifica con los resultados de la coincidencia de *box. Como caso especial, loscaracteres {, } y { } se pasan sin modificarse.

Clases de caracteres del shell CPuede utilizar clases de caracteres para buscar la coincidencia de los nombres de los archivos de unaindicación de rango.

El formato siguiente indica al sistema que ha de buscar la coincidencia de cualquier carácter individualque pertenezca a la clase especificada:

[:clasecaracteres:]

Las clases siguientes corresponden a subrutinas ctype:

Clase decarácter

Definición

alnum Caracteres alfanuméricos

alpha Letras mayúsculas y minúsculas

cntrl Caracteres de control

digit Dígitos

graph Caracteres gráficos

lower Letras minúsculas

print Caracteres imprimibles

punct Carácter de puntuación

space Espacio, tabulación horizontal, retorno de carro, nueva línea, tabulación vertical ocarácter de salto de página

upper Caracteres en mayúsculas

xdigit Dígitos hexadecimales

Imaginemos que está en un directorio que contiene los archivos siguientes:

a aa aax Alice b bb c cc

Escriba el mandato siguiente en un indicador de mandatos del shell C:

ls [:lower:]

Gestión del sistema operativo 293

Page 300: AIX Versión 7 - IBM

El shell C lista todos los nombres de archivo que comienzan por caracteres en minúsculas:

a aa aax b bb c cc

Para obtener más información acerca de las expresiones de clases de caracteres, consulte el mandatoed.

Variables de entorno en el shell CCiertas variables tienen un significado especial para el shell C. De éstas, argv, cwd, home, path, prompt,shell y status siempre las establece el shell.

Excepto para las variables cwd y status, la acción del establecimiento por el shell sólo se produce en lainicialización. Todas las variables anteriores mantienen sus valores a menos que se restablezcanexplícitamente.

El mandato csh copia las variables de entorno USER, TERM, HOME y PATH en las variables csh, user, term,home y path, respectivamente. Los valores vuelven a copiarse al entorno siempre que se restablezcan lasvariables normales del shell. La variable path no sólo se puede establecer en el archivo .cshrc porque lossubprocesos csh importan la definición de vía de acceso del entorno y la vuelve a exportar si se hacambiado.

Las variables siguientes tienen significados especiales:

Elemento Descripción

argv Contiene los argumentos que se pasan a scripts de shell. Los parámetros posicionalesde esta variable se sustituyen.

cdpath Especifica una lista de directorios alternativos en los que el mandato chdir o cdbuscará subdirectorios.

cwd Especifica el nombre completo de la vía de acceso del directorio actual.

echo Se establece cuando se utiliza el distintivo de línea de mandatos -x; cuando seestablece, da lugar a que cada mandato y argumento ejecuten echo justo antes de suejecución. En el caso de mandatos que no son incorporados, todas las expansiones seproducen antes de la repetición. Para los mandatos incorporados se ejecuta echo antesde la sustitución del nombre del archivo y del mandato ya que estas sustituciones serealizan entonces de forma selectiva.

histchars Especifica un valor de serie para cambiar los caracteres utilizados en la sustitución dehistórico. Utilice el primer carácter de su valor como carácter de sustitución delhistórico; éste sustituye el carácter por omisión, !. El segundo carácter de su valorsustituye al carácter ^ en las sustituciones rápidas.

Nota: El establecimiento del valor de histchars en un carácter utilizado en nombres demandato o archivo puede dar lugar a una sustitución no intencionada del histórico.

history Contiene un valor numérico para controlar el tamaño de la lista del histórico. Losmandatos a los que se hace referencia dentro del número de sucesos permitido no sedescartan. Los valores muy largos de la variable history podrían dar lugar a que el shellexperimentara una insuficiencia de memoria. Independientemente de que esta variableesté definida o no, el shell C siempre guarda el último mandato que se ejecutó en la listadel histórico.

home Indica el directorio inicial, que se ha inicializado desde el entorno. La expansión delnombre de archivo del carácter de tilde (~) hace referencia a esta variable.

ignoreeof Especifica que el shell ignora un carácter de fin de archivo de dispositivos de entradaque son estaciones de trabajo. Esto evita que los shells puedan matarseaccidentalmente cuando el shell lee un carácter de fin de archivo (Control-D).

294 AIX Versión 7.2: Gestión del sistema operativo

Page 301: AIX Versión 7 - IBM

Elemento Descripción

mail Especifica los archivos en los que busca correo el shell. Esto se efectúa después de cadafinalización de mandato que da como resultado un indicador si ha transcurrido unintervalo de tiempo especificado. El shell visualiza el mensaje Mail in file si elarchivo tiene una hora de acceso anterior a su hora de cambio.

Si la primera palabra del valor de la variable mail es un valor numérico, especifica unintervalo de tiempo de comprobación del correo distinto (en segundos); el valorpredeterminado es 600 (10 minutos). Si especifica varios archivos de correo, el shellvisualiza el mensaje New mail in file, cuando exista correo en el archivoespecificado.

noclobber Sitúa restricciones en redirección de salida para garantizar que no se destruyenaccidentalmente archivos y que las redirecciones se añaden a archivos existentes.

noglob Impide la expansión del nombre de archivo. Esto resulta más útil en scripts de shell queno gestionan nombres de archivos o cuando se ha obtenido una lista de nombres dearchivos y no se desea realizar ninguna expansión adicional.

nonomatch Especifica que no se producen errores si una expansión de nombres de archivo nocoincide con ningún archivo existente, sino que se devuelve el patrón de primitivos. Sí esun error cuando el patrón primitivo no se ha formado correctamente.

notify Especifica que el shell envía notificación asíncrona de cambios en los estados detrabajos. El valor predeterminado presenta los cambios en los estados justo antes devisualizar el indicador del shell.

path Especifica los directorios en que se buscan los mandatos para ejecución. Una palabranula especifica el directorio actual. Si no se ha establecido ninguna variable path, sólopueden ejecutarse nombres completos de vías de acceso. La vía de búsqueda poromisión (del archivo /etc/environment que se utiliza durante el inicio de sesión) es lasiguiente:

/usr/bin /etc /usr/sbin /usr/ucb /usr/bin/X11 /sbin

Normalmente, un shell al que no se han proporcionado los distintivos -c ni -t coloca enhash el contenido de los directorios de la variable path después de leer .cshrc y cadavez que se restaura la variable path. Si añade nuevos mandatos a estos directoriosmientras el shell está activo, debe proporcionar el mandato rehash. De lo contrario, esposible que los mandatos no puedan encontrarse.

prompt Especifica la serie que se visualiza antes de que lea cada mandato de una entrada deestación de trabajo interactiva. Si aparece un carácter ! en la serie, se sustituye por elnúmero de suceso actual. Si aparece el carácter ! en una serie delimitada por comillassimples o comillas dobles, el carácter ! debe ir precedido de una \. La variable promptpor omisión para los usuarios sin autorización de root es % . La variable prompt poromisión para el usuario que dispone de autorización de usuario root es #.

savehist Especifica un valor numérico para controlar el número de entradas de la lista delhistórico que están guardadas en el archivo ~/.history cuando finaliza la sesión. Seguarda cualquier mandato al que se haga referencia en este número de sucesos.Durante el arranque, el shell lee ~/.history en la lista del histórico, permitiendo queel histórico pueda guardarse entre inicios de sesión. Los valores muy largos de lavariable savehist pueden ralentizar el arranque del shell.

shell Especifica el archivo en que reside el shell C. Se utiliza para forzar a los shells queinterpreten archivos que tienen definidos bits de ejecución, pero que el sistema noejecuta. Se inicializa en el directorio inicial del shell C.

Gestión del sistema operativo 295

Page 302: AIX Versión 7 - IBM

Elemento Descripción

status Especifica el estado devuelto por el último mandato. Si el mandato terminaanormalmente, se añade 0200 al estado. Los mandatos incorporados que no sonsatisfactorios devuelven un estado de salida 1. Los mandatos incorporadossatisfactorios establecen su estado en el valor 0.

time Controla la temporización automática de mandatos. Si está definida esta variable,cualquier mandato que tarde más del número de segundos de CPU especificadosmostrará una línea de recursos utilizados al final de la ejecución. Para obtenerinformación acerca de las salidas predeterminadas, consulte el mandato incorporadotime.

verbose Esta variable, que se establece mediante el distintivo de línea de mandatos -v, da lugara que las palabras de cada mandato se visualicen tras la sustitución del histórico.

Control de trabajos en el shell CEl shell asocia un número de trabajo con cada proceso. El shell mantiene una tabla de los trabajosactuales y les asigna números enteros pequeños.

Cuando se inicia un trabajo como proceso en segundo plano con un ampersand (&), el shell imprime unalínea parecida a la siguiente:

[1] 1234

Esta línea indica que el número del trabajo es el 1 y que el trabajo se compone de un único proceso cuyoID de proceso es 1234. Utilice el mandato incorporado jobs para ver la tabla de los trabajos actuales.

Un trabajo que se ejecuta en el segundo plano compite por la entrada si intenta leer de la estación detrabajo. Los trabajos en segundo plano también pueden producir salida para la estación de trabajo que seintercala con la salida de otros trabajos.

Puede hacer referencia a los trabajos del shell de varias formas. Utilice el carácter de porcentaje (%) paraespecificar un nombre de trabajo. Este nombre puede ser el número de trabajo o el nombre del mandatoque inició el trabajo, si este nombre es exclusivo. Por ejemplo, si un proceso make se ejecuta comotrabajo 1, puede hacer referencia a él como %1. También puede hacer referencia a él como %make si sólohay un trabajo suspendido con un nombre que empiece por la serie make. También puede utilizar losiguiente:

%?Serie

para especificar un trabajo cuyo nombre contenga la variable Serie, si sólo existe un trabajo con talescaracterísticas.

El shell detecta inmediatamente si el estado de un proceso ha cambiado. Si un trabajo queda bloqueadode forma que no se puede continuar, el shell envía un mensaje a la estación de trabajo. Este mensaje sólose visualiza después de haber pulsado la tecla Intro. Sin embargo, si se ha establecido la variable de shellnotify, el shell emitirá inmediatamente un mensaje que indica los cambios producidos en el estado de lostrabajos de proceso en segundo plano. Utilice el mandato incorporado mandato para marcar un soloproceso a fin de que se informe con prontitud de sus cambios de estado. Por omisión, el mandato notifymarcará el proceso actual.

Lista de mandatos incorporados del shell CA continuación se muestran los mandatos incorporados del shell C.

Elemento Descripción

@ Visualiza el valor de las variables de shell especificadas.

alias Visualiza los alias especificados o todos los alias.

296 AIX Versión 7.2: Gestión del sistema operativo

Page 303: AIX Versión 7 - IBM

Elemento Descripción

bg Establece los trabajos actuales o los trabajos especificados como trabajos en segundoplano.

break Reanuda la ejecución tras el final del mandato de delimitación foreach o while máscercano.

breaksw Realiza una interrupción desde un mandato switch.

case Define una etiqueta en un mandato switch.

cd Cambia el directorio actual por el directorio especificado.

chdir Cambia el directorio actual por el directorio especificado.

continue Continúa la ejecución del mandato de delimitación foreach o while más cercano.

default Etiqueta la especificación de mayúsculas o minúsculas por omisión en una sentenciaswitch.

dirs Muestra la pila de directorios.

echo Graba series de caracteres en la salida estándar del shell.

else Ejecuta los mandatos que siguen al segundo else de una secuencia de mandatos if(Expresión) then ...else if (Expresión2) then ... else ... endif.

end Indica el final de una secuencia de mandatos a la que precede el mandato foreach.

endif Ejecuta los mandatos que siguen a la segunda sentencia then de una secuencia demandatos if (Expresión) then ... else if (Expresión2) then ... else ... endif.

endsw Marca el final de una secuencia de mandatos switch (Serie) case Serie : ... breakswdefault: ... breaksw secuenciarendsw. Esta secuencia de mandatos hace coincidirsucesivamente cada etiqueta con el valor de la variable Serie. La ejecución continúa tras elmandato endsw si se ejecuta un mandato breaksw o si no existe ninguna etiquetacoincidente y no existe ningún valor predeterminado.

eval Lee los valores de las variables como entrada para el shell y ejecuta el mandato omandatos resultantes en el contexto del shell actual.

exec Ejecuta el mandato especificado en lugar del shell actual.

exit Sale del shell con el valor de la variable de shell de estado o con el valor de la expresiónespecificada.

fg Establece los trabajos actuales o los especificados como trabajos en primer plano,continuando con su ejecución si se han detenido.

foreach Establece sucesivamente una variable Nombre para cada miembro especificado en lavariable Lista y una secuencia de mandatos, hasta llegar a un mandato end.

glob Visualiza la lista utilizando la expansión del histórico, de la variable y del nombre dearchivo.

goto Continúa con la ejecución después de una línea especificada.

hashstat Muestra estadísticas indicando con qué eficacia ha localizado mandatos la tabla hash.

history Muestra la lista de sucesos históricos.

if Ejecuta un mandato especificado si una expresión indicada es verdadera.

jobs Lista los trabajos activos.

kill Envía la señal TERM (terminar) o la señal especificada por la variable Señal al trabajo oproceso especificado.

limit Limita la utilización de un recurso especificado por parte del proceso actual y de cadaproceso que éste crea.

Gestión del sistema operativo 297

Page 304: AIX Versión 7 - IBM

Elemento Descripción

login Finaliza un shell de inicio de sesión y lo sustituye por una instancia del mandato /usr/sbin/login.

logout Finaliza el shell de inicio de sesión.

nice Establece la prioridad de los mandatos que se ejecutan en el shell.

nohup Da lugar que los estados de entrada en suspensión se pasen por alto en la parte restantede un procedimiento.

notify Da lugar a que el shell le notifique de forma asíncrona cuando cambie el estado deltrabajo actual o de un trabajo especificado.

onintr Controla la acción del shell en interrupciones.

popd Muestra la pila de directorios y vuelve al nuevo directorio superior.

pushd Intercambia elementos de la pila de directorios.

rehash Da lugar a que vuelva a calcularse la tabla hash en la que se incluye el contenido de losdirectorios de la variable de shell de vía de acceso.

repeat Ejecuta el mandato especificado, aplicando las mismas restricciones que las del mandatoif, el número de veces que se especifica.

set Muestra el valor de todas las variables de shell.

setenv Modifica el valor de la variable de entorno especificada.

shift Desplaza la variable especificada hacia la izquierda.

source Lee el mandato que especifica la variable Nombre.

stop Detiene los trabajos actuales o los especificados que están ejecutándose como trabajosen segundo plano.

suspend Detiene el shell como si se hubiera recibido una señal STOP.

switch Inicia una secuencia de mandatos switch (Serie) case Serie : ... breakswdefault: ... breaksw endsw. Esta secuencia de mandatos hace coincidirsucesivamente cada etiqueta con el valor de la variable Serie. Si ninguna de las etiquetascoincide antes de que se encuentre una etiqueta por omisión, la ejecución se iniciará trasla etiqueta por omisión.

time Visualiza un resumen del tiempo que ha empleado el shell y sus procesos hijo.

umask Determina los permisos de archivo.

unalias Descarta todos los alias que tienen nombres que coinciden con la variable Patrón.

unhash Inhabilita la utilización de la tabla hash interna para la localización de programas enejecución.

unlimit Elimina las limitaciones de los recursos.

unset Elimina todas las variables cuyos nombres coinciden con la variable Patrón.

unsetenv Elimina todas las variables del entorno cuyos nombres coinciden con la variable Patrónespecificada.

wait Espera a todos los trabajos en segundo plano.

while Evalúa los mandatos en la secuencia de mandatos entre while y end coincidentemientras una expresión especificada por la variable Expresión se evalúa en un valordistinto de cero.

La información relacionada es la siguiente:

298 AIX Versión 7.2: Gestión del sistema operativo

Page 305: AIX Versión 7 - IBM

Shell Korn

Los mandatos ksh y stty.

Los mandatos del shell Korn alias , cd, export, fc , getopts, read, set y typeset.

El archivo /etc/passwd.

shell Bourne

El mandato bsh o Rsh y el mandato login command.

El mandato especial del shell Bourne read.

La subrutina setuid , la subrutina setgid.

El archivo especial null.

El archivo environment , el formato de archivo profile.

shell C

Los mandatos csh y ed.

Los mandatos incorporados del shell C alias, unalias, jobs, notify y set.

Conceptos relacionadosshell CEl shell C es un intérprete de mandatos interactivo y un lenguaje de programación de mandatos. Utilizauna sintaxis que es similar al lenguaje de programación C.Mandatos incorporados del shell CLos mandatos incorporados se ejecutan en el shell. Si existe un mandato incorporado, como cualquiercomponente de un conducto, excepto el último, el mandato se ejecuta en un subshell.

Manejo de señales en el shell CEl shell C normalmente ignora las señales de finalización. Los trabajos que se ejecutan en modalidaddesconectada no se ven afectados por las señales que se generan desde el teclado (INTERRUPT , QUIT yHANGUP).

Otras señales tienen los valores que el shell hereda de su padre. Puede controlar el manejo que el shellhace de las señales INTERRUPT y TERMINATE en los procedimientos de shell con onintr. Los shells deinicio de sesión toman o pasan por alto las señales TERMINATE en función de su configuración. Losshells que no son shells de inicio de sesión pasan señales TERMINATE a los procesos hijo. En ningúncaso están permitidas las señales INTERRUPT cuando un shell de inicio de sesión está leyendo elarchivo .logout.

Mandatos del shell CUn mandato simple es una secuencia de palabras separadas por blancos o tabulaciones. Una palabra esuna secuencia de caracteres o de números, o de ambos, que no contiene espacios en blanco sin comillas.

Además, los caracteres siguientes y caracteres dobles también forman palabras simples cuando seutilizan como separadores de mandatos o terminadores:

& | ; && || << > >< > ( )

Estos caracteres especiales pueden ser parte de otras palabras. Sin embargo, si van precedidos de unabarra inclinada invertida (\), el shell no podrá interpretarlos como caracteres especiales. Las series entrecomillas simples ' ' o dobles " " (pares de caracteres de comillas emparejados) o comillas inversastambién pueden formar partes de palabras. Los blancos, las tabulaciones y los caracteres especiales noforman palabras separadas cuando se delimitan con estas marcas. También puede delimitar un carácterde nueva línea entre estas marcas especificando una barra inclinada invertida (\) delante del carácter.

La primera palabra de la secuencia de mandato simple (con número 0) especifica normalmente el nombrede un mandato. Las palabras restantes, con algunas excepciones, se pasan a dicho mandato. Si el

Gestión del sistema operativo 299

Page 306: AIX Versión 7 - IBM

mandato especifica un archivo ejecutable que es un programa compilado, el shell ejecutainmediatamente dicho programa. Si el archivo está marcado como ejecutable, pero no es un programacompilado, el shell presupone que es un script de shell. En este caso, el shell inicia otra sesión de símismo (un subshell), para leer el archivo y ejecutar los mandatos incluidos.

Mandatos incorporados del shell CLos mandatos incorporados se ejecutan en el shell. Si existe un mandato incorporado, como cualquiercomponente de un conducto, excepto el último, el mandato se ejecuta en un subshell.

Nota: Si especifica un mandato desde el indicador de mandatos del shell C, el sistema busca un mandatoincorporado en primer lugar. Si no existe ningún mandato incorporado, el sistema buscará en losdirectorios que especifica la variable de shell path un mandato del sistema. Algunos mandatosincorporados del shell C y mandatos del sistema operativo tienen el mismo nombre. No obstante, estosmandatos no necesariamente funcionan del mismo modo. Para obtener más información acerca delfuncionamiento del mandato, consulte la descripción que corresponde al mandato.

Si ejecuta un script de shell desde el shell y la primera línea del script de shell empieza por #!/NombreVíaAccesoShell, el shell C ejecutará el shell especificado en el comentario para procesar elscript. De lo contrario, ejecutará el shell por omisión (el shell que está enlazado con /usr/bin/sh). Si laejecución la realiza el shell por omisión, puede que los mandatos incorporados del shell C no sereconozcan. Para ejecutar mandatos de shell C, especifique #!/usr/bin/csh como primera línea delscript.

Referencia relacionadaLista de mandatos incorporados del shell CA continuación se muestran los mandatos incorporados del shell C.

Descripciones de los mandatos del shell CEl shell C proporciona los siguientes mandatos incorporados.

Elemento Descripción

alias [Nombre [ListaPalabras]] Muestra todos los alias si no especifica parámetros. De lo contrario, elmandato visualiza el alias para el Nombre especificado. Si seespecifica ListaPalabras, este mandato asignará el valor deListaPalabras al Nombre del alias. El Nombre de alias especificado nopuede ser alias ni unalias.

bg [%Trabajo ...] Sitúa el trabajo actual o el trabajo especificado por Trabajo ensegundo plano, continuando el trabajo si estaba detenido.

break Reanuda la ejecución después de la sentencia end del mandato dedelimitación foreach o while más cercano.

breaksw Interrumpe desde un mandato switch; reanuda después delmandato endsw.

case Etiqueta : Define una Etiqueta en un mandato switch.

cd[Nombre] Equivalente al mandato chdir (vea la descripción que sigue).

chdir [Nombre] Cambia del directorio actual al directorio que especifica la variableNombre. Si no especifica Nombre, el mandato cambiará al directorioinicial. Si el valor de la variable Nombre no es un subdirectorio deldirectorio actual y no empieza por /, ./ ni ../, el shell compruebacada componente de la variable de shell cdpath para ver si tiene unsubdirectorio que coincide con la variable Nombre. Si la variableNombre es una variable de shell que tiene un valor que empieza poruna barra inclinada (/), el shell lo intentará con este para verificar sise trata de un directorio. El mandato chdir es equivalente almandato cd.

300 AIX Versión 7.2: Gestión del sistema operativo

Page 307: AIX Versión 7 - IBM

Elemento Descripción

continue Continúa la ejecución en la sentencia end del mandato dedelimitación while o foreach más cercano.

default: Etiqueta la especificación de mayúsculas o de minúsculascorrespondiente a default en una sentencia switch. defaultdebe estar ubicado después de todas las demás etiquetas case.

dirs Muestra la pila de directorios.

echo Graba series de caracteres en la salida estándar del shell.

else Ejecuta los mandatos que siguen al segundo else de una secuenciade mandatos if (Expresión) then ...else if (Expresión2) then ...else ... endif.

Nota: La sentencia else es el mandato integrado csh cuando se utilizaif(expr) then ..else ...endif. Si (expr) es verdadera, se ejecutan losmandatos hasta la sentencia else. Si (expr) es falsa, se ejecutan losmandatos comprendidos entre else y endif. Cualquier cosaexpresada entre comillas simples se toma literalmente y no seinterpreta.

end Establece sucesivamente la variable Nombre en cada miembroespecificado por la variable Lista y ejecuta la secuencia de Mandatosentre la sentencia foreach y la sentencia end coincidente. Lassentencias foreach y end deben aparecer solas en líneasindependientes.

Utiliza la sentencia continue para continuar el bucle y la sentenciabreak para finalizar el bucle prematuramente. Cuando se lee elmandato foreach desde el terminal, el shell C muestra un indicadorcon el signo ? para permitir la entrada de Mandatos. Los mandatosincluidos en bucles, solicitados por un signo ?, no se sitúan en la listadel histórico.

endif Si la variable Expresión es verdadera, ejecuta los Mandatos quesiguen a la primera sentencia then. Si else if Expresión2 esverdadera, ejecuta los Mandatos que siguen a la segunda sentenciathen. Si else if Expresión2 es falsa, ejecuta los Mandatos quesiguen a else. Es posible cualquier número de pares de else if.Sólo se necesita una sentencia endif. El segmento else es opcional.Las palabras else y endif sólo pueden utilizarse al principio de laslíneas de entrada. El segmento if debe aparecer solo en su propialínea de entrada o después de un mandato else.

endsw Hace coincidir sucesivamente cada etiqueta case con el valor de lavariable serie. Con serie, primero se expande el mandato y el nombrede archivo. Utilice los caracteres comodín *, ? y [ . . . ] en lasetiquetas case, cuyas variables se expanden.Si ninguna de lasetiquetas coincide antes de que se encuentre una etiqueta default, laejecución empieza tras la etiqueta default.La etiqueta case y laetiqueta default deben aparecen al principio de la línea. El mandatobreaksw da lugar a que la ejecución continúe tras el mandatoendsw.De lo contrario, el control de las etiquetas case y defaultpodría no ser satisfactorio, como en el lenguaje de programación C.Sino coincide ninguna etiqueta y no existe ningún default, la ejecucióncontinúa después del mandato endsw.

Gestión del sistema operativo 301

Page 308: AIX Versión 7 - IBM

Elemento Descripción

eval Parámetro . . . Lee el valor de la variable Parámetro como entrada para el shell yejecuta el mandato o mandatos resultantes en el contexto del shellactual. Utilice este mandato para ejecutar mandatos que se hangenerado como resultado de la sustitución de un mandato o unavariable puesto que el análisis se produce antes de estassustituciones.

exec Mandato Ejecuta el Mandato especificado en lugar del shell actual.

exit (Expresión) Sale del shell con el valor de la variable de shell estado (si no se haespecificado ninguna Expresión) o con el valor de la Expresiónespecificada.

fg [%Trabajo ...] Coloca el trabajo actual o el trabajo especificado por Trabajo enprimer plano, y continúa el trabajo si se había detenido.

foreach Nombre (Lista)Mandato. . .

Establece sucesivamente una variable Nombre para cada miembroespecificado en la variable Lista y una secuencia de mandatos, hastallegar a un mandato end.

glob Lista Visualiza la Lista utilizando la expansión del histórico, de la variable ydel nombre de archivo. Sitúa un carácter nulo entre palabras y noincluye un retorno de carro al final.

goto Palabra Continúa con la ejecución tras la línea que especifica la variablePalabra. De la Palabra especificada se expande el nombre de archivoy el mandato para producir una serie que tiene el formato queespecifica la variable Etiqueta:. El shell hace retroceder su entradahasta donde le es posible y busca una línea que tiene el formatoEtiqueta:, posiblemente precedida de espacios en blanco o detabulaciones.

hashstat Muestra estadísticas indicando con qué eficacia ha localizadomandatos la tabla hash.

history [-r | -h] [n] Muestra la lista de sucesos históricos. Los sucesos más antiguos semuestran en primer lugar. Si especifica un número n, sólo sevisualizará el número especificado de sucesos más recientes. Eldistintivo -r invierte el orden en el que han de visualizarse los sucesospara que el suceso más reciente sea el que se visualice en primerlugar. El distintivo -h visualiza la lista del histórico sin númerosiniciales. Utilice este distintivo para generar archivos adecuados parautilizarlos con el distintivo -h del mandato source.

if (Expresión) Mandato Ejecuta el Mandato especificado (incluidos sus argumentos) si laExpresión especificada es verdadera. La sustitución de variables de lavariable Mandato tiene lugar pronto, a la vez que el resto de lasentencia if. El Mandato especificado debe ser un mandato simple(en lugar de un conducto, una lista de mandatos o una lista demandatos entre paréntesis).

Nota: La redirección de entrada y salida se produce aunque lavariable Expresión sea falsa y el Mandato no se ejecute.

jobs [-l] Lista los trabajos activos. Con el distintivo -l (L en minúsculas), elmandato jobs lista los ID de proceso además del número y elnombre del trabajo.

302 AIX Versión 7.2: Gestión del sistema operativo

Page 309: AIX Versión 7 - IBM

Elemento Descripción

kill -l | [[-Señal] % Trabajo...|PID...]

Envía la señal TERM (terminar), o la señal especificada por la Señal, alTrabajo o PID (proceso) especificado. Especifique las señales pornúmero o por nombre (como se indica en el archivo /usr/include/sys/signal.h, sin el prefijo SIG). El distintivo -l (L enminúsculas) lista los nombres de señal.

limit [-h] [Recurso [Uso-máx]] Limita la utilización del recurso especificado por el proceso actual yde cada proceso que crea. Los límites de los recursos del procesoestán definidos en el archivo /etc/security/limits. Los recursoscontrolables son el tiempo de unidad central de proceso (CPU), eltamaño de los archivos, el tamaño de los datos, el tamaño del vuelcode la imagen de memoria y la utilización de memoria. Los valoresmáximos permitidos para estos recursos se establecen con elmandato mkuser cuando el usuario se añade al sistema. Se cambiancon el mandato chuser.

Las categorías de los límites pueden ser dinámicas o fijas. Losusuarios pueden aumentar sus límites limitados hasta el máximoimpuesto por los límites fijos. Debe tener autorización de usuario rootpara poder aumentar un límite limitado por encima del límite fijo opara cambiar límites fijos. El distintivo -h muestra los límites fijos enlugar de los límites dinámicos.

Si no se especifica un parámetro Uso-máx, el mandato limitvisualiza el límite actual del recurso especificado. Si no se especificael parámetro Recurso, el mandato limit visualiza los límitesactuales de todos los recursos. Para obtener más información sobrelos recursos controlados por el submandato limit, consulte lassubrutinas getrlimit, setrlimit o vlimit.

El parámetro Uso-máx para el tiempo de CPU se especifica en elformato hh:mm:ss. El parámetro Uso-máx para los otros recursos seespecifica como un número de coma flotante o bien como un entero,opcionalmente seguido de un factor de escala. El factor de escala esk o kilobytes (1024 bytes), m o megabytes, o b o bloques (lasunidades utilizadas por la subrutina ulimit. Si no especifica ningúnfactor de escala, se presupone k para todos los recursos. Para losnombres de los recursos y los factores de escala, la especificación deprefijos no ambiguos de los nombres es suficiente.

Nota: Este mandato limita la memoria física (uso de memoria)disponible para un proceso sólo si existe contención para la memoriadel sistema por otros procesos activos.

login Finaliza un shell de inicio de sesión y lo sustituye por una instanciadel mandato /usr/bin/login. Es una forma de finalizar la sesión(que se incluye para mantener la compatibilidad con los mandatosksh y bsh).

logout Finaliza el shell de inicio de sesión. Este mandato debe utilizarse si seha establecido la opción ignoreeof.

Gestión del sistema operativo 303

Page 310: AIX Versión 7 - IBM

Elemento Descripción

nice [+n] [Mandato] Si no se especifica ningún valor, define la prioridad de mandatosejecutados en este shell a 24. Si se especifica el distintivo +n,establece que a la prioridad se añada el número especificado. Si seespecifica el distintivo +n y Mandato, ejecuta el Mandato en laprioridad 24 más el número especificado. Si dispone de autorizaciónde usuario root, puede ejecutar la sentencia nice con un númeronegativo. El Mandato siempre se ejecuta en un subshell, y se aplicanlas restricciones de los mandatos de sentencias simples if.

nohup [Mandato] Hace que hangups se pase por alto para el resto del script cuando nose especifica ningún Mandato. Si se especifica Mandato, hace que elMandato especificado se ejecute pasando por alto hangups. Paraejecutar un conducto o una lista de mandatos, coloque el conducto ola lista en un script de shell, otorgue al script permiso de ejecución yutilice el script de shell como el valor de la variable Mandato. Todoslos procesos que se ejecutan como procesos en segundo plano conun ampersand (&) están eficazmente protegidos para que no sepueda enviar a ellos una señal hangup cuando se finalice la sesión.Sin embargo, estos procesos siguen siendo susceptibles de enviarhangups explícitamente a menos que se utilice la sentencia nohup.

notify [%Trabajo...] Hace que el shell le notifique de forma asíncrona cuando se produzcaun cambio en el estado del trabajo actual o del Trabajo especificado.Normalmente, el shell proporciona la notificación justo antes de quepresente el indicador del shell. Esta función es automática si sedefine la variable del shell notify.

onintr [- | Etiqueta] Controla la acción del shell en interrupciones. Si no se especificanargumentos, restaura la acción por omisión del shell eninterrupciones, lo que finaliza los scripts de shell o vuelve al nivel deentrada de mandatos. Si se especifica un distintivo -, hace que todaslas interrupciones se pasen por alto. Si se especifica Etiqueta, haceque el shell ejecute una sentencia goto Etiqueta cuando el shellrecibe una interrupción o cuando un proceso hijo finaliza debido a unainterrupción. En cualquier caso, si el shell se ejecuta desconectado yse pasan por alto las interrupciones, ninguna forma de la sentenciaonintr tiene significado. El shell sigue ignorando las interrupciones ytodos los mandatos llamados.

popd [+n] Aparece la pila de directorios y cambia al nuevo directorio superior. Siespecifica una variable +n, el mandato descarta la nésima entrada dela pila. Los elementos de la pila de directorios están numeradosdesde el principio, comenzando por 0.

pushd [+n|Nombre] Sin argumentos, intercambia los dos elementos superiores de la pilade directorios. Con la variable Nombre, el mandato va al nuevodirectorio y envía el directorio actual antiguo (como se indica en lavariable de shell cwd) a la pila de directorios. Si especifica unavariable +n, el mandato rota el nésimo componente de la pila decomponentes para que sea el elemento superior y lo cambia. Losmiembros de la pila de directorios están numerados desde elprincipio, comenzando por 0.

304 AIX Versión 7.2: Gestión del sistema operativo

Page 311: AIX Versión 7 - IBM

Elemento Descripción

rehash Da lugar a que vuelva a calcularse la tabla hash interna de contenidode los directorios en la variable de shell path. Esta acción esnecesaria si se añaden nuevos mandatos a los directorios en lavariable de shell path mientras está conectado. El mandato rehashsólo es necesario si se añaden mandatos a unos de los directoriospropios del usuario o si alguien cambia el contenido de uno de losdirectorios del sistema.

repeat Cuenta Mandato Ejecuta el Mandato especificado, susceptible de las mismasrestricciones que los mandatos en sentencias if simples, el númerode veces especificado en Cuenta.

Nota: Las redirecciones de E/S sólo se producen una vez, aunque lavariable Cuenta sea 0.

set [[Nombre[n]] [ = Palabra]] |[Nombre = (Lista)]

Muestra el valor de todas las variables del shell cuando se utiliza sinargumentos. Las variables que tienen más de una palabra simplecomo valor se muestran en una lista de palabras entre paréntesis. Sisólo se especifica Nombre, el shell C establece la variable Nombre enla serie nula. De lo contrario, establece Nombre en el valor de lavariable Palabra o bien establece la variable Nombre en la lista depalabras que especifica la variable Lista. Cuando se especifica n, elnésimo componente de la variable Nombre se establece en el valor dela variable Palabra; el nésimo componente ya debe existir. En todos loscasos, se expanden nombres de archivo y mandatos para el valor.Estos argumentos pueden repetirse para establecer varios valores enun único mandato set. No obstante, la expansión de variables seproduce para todos los argumentos antes de que se produzcacualquier definición.

setenvNombre Valor Establece el valor de la variable de entorno que especifica la variableNombre en Valor, una única serie. Las variables de entorno máscomúnmente utilizadas, USER, TERM, HOME y PATH, se importanautomáticamente a las variables de shell C y se exportan de lasvariables de shell C user, term, home y path. Para éstas, no esnecesario utilizar la sentencia setenv.

shift [Variable] Desplaza a la izquierda los miembros de la variable de shell argv o laVariable especificada. Se produce un error si no se ha establecido lavariable de shell argv o la Variable, o tiene menos de una palabracomo valor.

source[-h] Nombre Lee los mandatos escritos en la variable Nombre. Puede anidar losmandatos source. No obstante, si se anidan demasiadoprofundamente, el shell puede quedarse sin descriptores de archivo.Un error en un mandato source a cualquier nivel finaliza todos losmandatos source anidados. Por lo general, la entrada que tienelugar durante los mandatos source no se coloca en la lista delhistórico. El distintivo -h hace que los mandatos se coloquen en lalista del histórico sin ejecutarlos.

stop [%Trabajo ...] Detiene el trabajo actual o el Trabajo especificado que se ejecuta ensegundo plano.

suspend Detiene el shell como si se hubiera recibido una señal STOP.

Gestión del sistema operativo 305

Page 312: AIX Versión 7 - IBM

Elemento Descripción

switch (serie) Inicia una secuencia de mandatos switch (Serie) case Serie : ...breaksw default: ... breaksw endsw. Esta secuencia de mandatoshace coincidir sucesivamente cada etiqueta con el valor de la variableSerie. Si ninguna de las etiquetas coincide antes de que se encuentreuna etiqueta por omisión, la ejecución se iniciará tras la etiqueta poromisión.

time [Mandato] El mandato time controla la temporización automática de losmandatos. Si no especifica la variable Mandato, el mandato timevisualiza un resumen de los tiempos utilizados por este shell y sushijos. Si especifica un mandato con la variable Mandato, se calcularásu tiempo. El shell visualiza un resumen de tiempos, como sedescribe en la variable de shell tiempo. Si es necesario, se crea unshell adicional para visualizar las estadísticas de tiempo cuando secompleta el mandato.

En el ejemplo siguiente, time se utiliza con el mandato sleep:

time sleep

La salida de este mandato tiene un aspecto similar al siguiente:

0.0u 0.0s 0:00 100% 44+4k 0+0io 0pf+0w

Los campos de salida son los siguientes:

PrimeroNúmero de segundos de tiempo CPU dedicado al proceso delusuario

SegundoNúmero de segundos de tiempo CPU consumido por el kernel ennombre del proceso del usuario

TerceroTiempo transcurrido (tiempo de reloj) por el mandato

CuartoTiempo de CPU de usuario total más tiempo del sistema, comoporcentaje del tiempo transcurrido

QuintoPromedio de memoria compartida utilizada, más promedio deespacio de datos no compartido, en kilobytes

SextoNúmero de operaciones de entrada y salida de bloques

SéptimoFaltas de página más número de intercambios

umask [Valor] Determina los permisos de archivo. Este Valor, junto con los permisosdel proceso de creación, determina los permisos de un archivocuando se crea el archivo. El valor predeterminado es 022. El valoractual se visualizará si no se especifica Valor.

unalias *| Patrón Descarta todos los alias que tienen nombres que coinciden con lavariable Patrón. Todos los alias se eliminan por medio del mandatounalias *. La ausencia de alias no origina un error.

unhash Inhabilita la utilización de la tabla hash interna para la localización deprogramas en ejecución.

306 AIX Versión 7.2: Gestión del sistema operativo

Page 313: AIX Versión 7 - IBM

Elemento Descripción

unlimit [-h][Recurso] Elimina la limitación de la variable Recurso. Si no se especificaninguna variable Recurso, se eliminan todas las limitaciones derecurso. Consulte la descripción del mandato limit para la lista denombres de Recurso.

El distintivo -h elimina los límites fijos correspondientes. Sólo unusuario con autorización de usuario root puede cambiar los límitesfijos.

unset *| Patrón Elimina todas las variables que tienen nombres que coinciden con lavariable Patrón. Utilice unset * para eliminar todas las variables. Sino se definen variables, no se origina ningún error.

unsetenv Patrón Elimina todas las variables del entorno cuyos nombres coincidan conel Patrón especificado. (Consulte el mandato incorporado setenv).

wait Espera a todos los trabajos en segundo plano. Si el shell esinteractivo, un INTERRUPT (normalmente la secuencia de teclasControl-C) interrumpe la espera. El shell muestra a continuación losnombres y números de todos los trabajos que se sabe que estánpendientes.

while (Expresión) Mandato. . . end

Evalúa los Mandatos entre la sentencia while y la sentencia endcoincidente mientras la expresión especificada por la variableExpresión se evalúa en un valor distinto de cero. Puede utilizar lasentencia break para finalizar y la sentencia continue paracontinuar el bucle prematuramente. Las sentencias while y enddeben aparecer solas en sus líneas de entrada. Si la entrada se realizadesde un terminal, se muestran indicadores después de while(Expresión) similares a la sentencia foreach.

@ [Nombre[n] = Expresión] Muestra los valores de todas las variables de shell cuando se utilizansin argumentos. De lo contrario, establece el nombre que especificala variable Nombre en el valor de la variable Expresión. Si la expresióncontiene los caracteres <, >, & o |, esta parte de la expresión se debeespecificar entre paréntesis. Cuando se especifica n, el nésimo

componente de la variable Nombre se establece en la variableExpresión. Tanto la variable Nombre como su nésimo componente yadeben existir.

Están disponibles operadores de lenguaje C, tales como *= y +=. Elespacio que separa la variable Nombre del operador de asignación esopcional. Sin embargo, se necesitan espacios para separar loscomponentes de la variable Expresión, que de lo contrario se leeríacomo una sola palabra. Los operadores de sufijo especiales, el signomás doble (++) y el guión doble (--) aumentan o disminuyen,respectivamente, el valor de la variable Nombre.

Expresiones y operadores del shell CEl mandato incorporado @ y las sentencias exit, if y while aceptan expresiones que incluyen operadoressimilares a los del lenguaje C, con la misma precedencia.

Están disponibles los siguientes operadores:

Operador Significado

() cambiar prioridad

~ complemento

Gestión del sistema operativo 307

Page 314: AIX Versión 7 - IBM

Operador Significado

! negación

*/ % multiplicar, dividir, módulo

+ - sumar, restar

<< > > desplazamiento a la izquierda, desplazamiento a la derecha

<= >= < > operadores relacionales

== != =~ !~ comparación de series/coincidencia con patrón

& AND bitwise

^ OR de exclusión bitwise

| OR de inclusión bitwise

&& AND lógico

|| OR lógico

En la lista anterior, la prioridad de los operadores disminuye a medida que avanza la lista (de izquierda aderecha y de arriba a abajo).

Nota: Los operadores + y - efectúan la asociación por el lado derecho. Por ejemplo, la evaluación de a +b - c se realiza del modo siguiente:

a + (b - c)

y no de la forma siguiente:

(a + b) - c

Los operadores ==, !=, =~ y !~ comparan sus argumentos como series; todos los demás operan ennúmeros. Los operadores =~ y !~ son similares a == y !=, salvo que la parte que se encuentra más a laderecha es un patrón con el que se hace coincidir el operando que se encuentra más a la izquierda. Conello se reduce la necesidad de tener que utilizar la sentencia switch en los procedimientos de shell.

También están disponibles los operadores lógicos or (||) y and (&&). Pueden utilizarse para comprobar unrango de números, tal como se muestra en el ejemplo siguiente:

if ($#argv > 2 && $#argv < 7) then

En el ejemplo anterior, el número de argumentos debe ser mayor de 2 y menor de 7.

Las series que empiezan por cero (0) se consideran números octales. La falta de argumentos o losargumentos nulos se consideran 0. Todas las expresiones dan como resultado series que representannúmeros decimales. Tenga en cuenta que dos componentes de una expresión pueden aparecer en lamisma palabra. Excepto cuando se encuentran junto a componentes de expresiones que sonsintácticamente significativas para el analizador (& | < > ( )), los componentes de expresión debenestar rodeados por espacios.

Disponibles también en expresiones como operandos primitivos están las ejecuciones de mandatosespecificadas entre paréntesis ( ) y las consultas con el formato (-operador NombreArchivo), dondeoperador es uno de los siguientes:

Elemento

Descripción

r Acceso de lectura

w Acceso de grabación

x Acceso de ejecución

308 AIX Versión 7.2: Gestión del sistema operativo

Page 315: AIX Versión 7 - IBM

Elemento

Descripción

e Existencia

o Propiedad

z Tamaño cero

f Archivo sin formato

d Directorio

Se realiza la expansión del mandato y del nombre de archivo NombreArchivo especificado y, acontinuación, se prueba para verificar si dispone de la relación especificada con el usuario real. SiNombreArchivo no existe o no puede accederse a éste, todas las consultas devuelven el valor false(0).Si el mandato se ejecuta satisfactoriamente, la consulta devuelve el valor true(1). De lo contrario, si elmandato falla, la consulta devuelve el valor false(0). Si necesita información de estado más detallada,ejecute el mandato fuera de una expresión y, a continuación, examine la variable de shell status.

Sustitución de mandatos en el shell CEn la sustitución de mandatos, el shell ejecuta un mandato especificado y sustituye ese mandato por susalida.

Para realizar la sustitución de mandatos en el shell C, especifique el mandato o la serie de mandatosentre acentos graves (` `). Por lo general, el shell descompone la salida del mandato en palabras sueltasdonde existen blancos, tabulaciones y caracteres de nueva línea. A continuación sustituye el mandatooriginal con esta salida.

En el ejemplo siguiente, los acentos graves (` `) que rodean al mandato date indican que se sustituirá lasalida del mandato:

echo La fecha y hora actuales son: `date`

La salida de este mandato puede ser similar a la siguiente:

La fecha y hora actuales son: Mié Abr 8 13:52:14 CDT 1992

El shell C efectúa sustitución de mandatos selectivamente en los argumentos de mandatos de shellincorporados. Esto significa que no expande dichas partes de expresiones que no se evalúan. En el casode mandatos que no son incorporados, el shell sustituye el nombre de mandato independientemente dela lista de argumentos. La sustitución se produce en un hijo del shell principal, sólo después de que elshell efectúe redirección de entrada o salida.

Si una serie de mandato está rodeada de " ", el shell solo trata los caracteres de la nueva línea comoseparadores de palabras, pero mantiene los espacios en blanco y las tabulaciones que aparecen dentrode la palabra. En todos los casos, el carácter de nueva línea final no fuerza una nueva palabra.

Conceptos relacionadosSustitución de variables en el shell CEl shell C mantiene un conjunto de variables, cada una de las cuales tiene como valor una lista de cero omás palabras. Algunas de estas variables están definidas por el shell o el shell hace referencia a ellas. Porejemplo, la variable argv es una imagen de la lista de variables del shell y a las palabras que componen elvalor de esta variable se hace referencia de formas especiales.

Ejecución de mandatos no incorporados en el shell CCuando el shell C determina que un mandato no es un mandato de shell incorporado, intenta ejecutar elmandato con la subrutina execv.

Cada palabra de la variable de shell path indica el nombre de un directorio desde el que el shell intentaejecutar el mandato. Si no se especifica ni el distintivo -c ni el distintivo -t, el shell organiza los nombresde esos directorios en una tabla interna. El shell intenta llamar a la subrutina execv en un directorio sólo

Gestión del sistema operativo 309

Page 316: AIX Versión 7 - IBM

si existe alguna posibilidad de que el mandato resida allí. Si desactiva este mecanismo con el mandatounhash o proporciona al shell los distintivos -c o -t, el shell se concatena con el nombre de mandatoproporcionado para formar el nombre de vía de acceso de un archivo. El shell también actúa de estaforma para cada componente de directorio de la variable path que no empiece por una barra inclinada (/).El shell intenta a continuación ejecutar el mandato.

Los mandatos entre paréntesis siempre se ejecutan en un subshell. Por ejemplo:

(cd ; pwd) ; pwd

muestra el directorio inicial sin cambiar la ubicación del directorio actual. No obstante, el mandato:

cd ; pwd

cambia la ubicación del directorio actual al directorio inicial. Los mandatos entre paréntesis suelenutilizarse más a menudo para impedir que el mandato chdir afecte al shell actual.

Si el archivo tiene permiso de ejecución, pero no es binario ejecutable para el sistema, el shell presuponeque es un archivo que contiene mandatos del shell y ejecuta un nuevo shell para leerlo.

Si hay un alias para el shell, las palabras del alias se prefijan a la lista de argumentos para formar elmandato de shell. La primera palabra del alias debe ser el nombre completo de la vía de acceso del shell.

Sustitución del histórico en el shell CLa sustitución de histórico le permite modificar palabras individuales de mandatos anteriores para crearnuevos mandatos. La sustitución de histórico facilita la repetición de mandatos, de argumentos de unmandato anterior en el mandato actual o arreglar errores de escritura en el mandato anterior escribiendomenos de lo normal.

Las sustituciones de histórico empiezan con el signo de exclamación (!) y pueden aparecer en cualquierpunto de la línea de mandatos, siempre que no estén anidadas (es decir, una sustitución de histórico nopuede contener otra sustitución de histórico). Puede preceder el signo ! con una \ para cancelar elsignificado especial del signo de exclamación. Además, si coloca el signo ! delante de un espacio enblanco, carácter de nueva línea, = o (, la sustitución del histórico no se lleva a cabo.

Las sustituciones de histórico se llevan a cabo cuando se empieza una línea de entrada con un símbolo ^.El shell repite cualquier línea de entrada que contenga sustituciones de histórico en la estación de trabajoantes de ejecutar dicha línea.

Conceptos relacionadosSustitución de alias en el shell CUn alias es un nombre que se asigna a un mandato o a una serie de mandatos. El shell C le permiteasignar alias y utilizarlos como utilizaría los mandatos. El shell mantiene una lista de los alias que define.

Listas del histórico para el shell CLa lista del histórico guarda mandatos que el shell lee de la línea de mandatos y que constan de una omás palabras. La sustitución del histórico vuelve a introducir secuencias de palabras de estos mandatosguardados en la corriente de entrada.

La variable de shell history controla el tamaño de la lista del histórico. Debe establecer la variable de shellhistory en el archivo .cshrc o en la línea de mandatos con el mandato incorporado set. El mandatoanterior siempre se retiene, con independencia del valor de la variable history. Los mandatos de la listadel histórico se numeran secuencialmente, empezando por el 1. El mandato incorporado historyproduce una salida similar a la siguiente:

9 write michael10 ed write.c11 cat oldwrite.c12 diff *write.c

El shell muestra las series de mandatos con sus números de suceso. El número del suceso aparece a laizquierda del mandato y representa cuándo se ha entrado el mandato en relación con los demásmandatos del histórico. No suele ser necesario utilizar números de suceso para hacer referencia a

310 AIX Versión 7.2: Gestión del sistema operativo

Page 317: AIX Versión 7 - IBM

sucesos, pero puede visualizar el número de suceso actual como parte del indicador del sistema situandoun signo de exclamación (!) en la serie del indicador que se ha asignado a la variable de entorno PROMPT.

Una referencia completa del histórico contiene una especificación de suceso, un designador de palabra yuno o más modificadores en el formato general que se muestra a continuación:

Suceso[.]Palabra:Modificador[:Modificador] . . .

Nota: Sólo se puede modificar una palabra. No se permite una serie que incluya blancos.

En el ejemplo anterior de la salida del mandato history, el número de suceso actual es 13. Utilizandoeste ejemplo, lo siguiente se refiere a sucesos anteriores:

Elemento

Descripción

!10 Número de suceso 10.

!-2 Número de suceso 11 (el suceso actual menos 2).

!d Palabra de mandato que empieza por d (número de suceso 12).

!?mic? Palabra de mandato que contiene la serie mic (número de suceso 9).

Estos formatos, sin modificaciones posteriores, reintroducen simplemente las palabras de los sucesosespecificados, cada una de ellas separada por un blanco. Como caso especial, !! hace referencia almandato anterior; el mandato !! solo en una línea de entrada vuelve a ejecutar el mandato anterior.

Especificación de sucesos para el shell CPara seleccionar palabras de un suceso, tras la especificación del suceso coloque un carácter de dospuntos (:) y uno de los siguientes designadores de palabra (las palabras de una línea de entrada senumeran secuencialmente empezando desde 0)

Elemento

Descripción

0 Primera palabra (el nombre del mandato)

n nésimo argumento

^ Primer argumento

$ Último argumento

% Palabra que coincide con un ?serie? inmediatamente anterior .

x-y Rango de palabras desde la palabra xava hasta la palabra yava

-y Rango de palabras desde la primera palabra (0) hasta la palabra yava

* Desde el primer argumento hasta el último, o nada si el suceso sólo tiene una palabra (el nombredel mandato)

x* Desde el argumento xavo hasta el último argumento

x- Igual que x* pero omitiendo el último argumento

Si el designador de palabra empieza por un carácter ^, $, *, - o %, puede omitir los dos puntos queseparan la especificación del suceso del designador de palabra. También puede situar una secuencia delos siguientes modificadores después del designador de palabras opcional, cada una de ellas precedidasde dos puntos:

Gestión del sistema operativo 311

Page 318: AIX Versión 7 - IBM

Elemento Descripción

h Elimina una extensión de nombre de vía de acceso final, dejando lacabecera.

r Elimina un componente . xxx final, dejando el nombre de la raíz.

e Elimina todo menos la extensión . xxx final.

s/ PalabraAntigua/NuevaPalabra /

Sustituye el valor de la variable NuevaPalabra por el valor de la variablePalabraAntigua.

La parte izquierda de una sustitución no es un patrón en el sentido de una serie reconocida por un editor,sino que es una palabra, una unidad simple sin blancos. Normalmente, una barra inclinada (/) delimita lapalabra original (PalabraAntigua) y su sustitución (NuevaPalabra). No obstante, puede utilizar cualquiercarácter como delimitador. En el ejemplo siguiente, la utilización del carácter % como delimitador permiteque pueda incluirse una / en las palabras:

s%/home/myfile%/home/yourfile%

El shell sustituye un ampersand (&) por el texto PalabraAntigua en la variable NuevaPalabra. En elejemplo siguiente, /home/myfile se convierte en /temp/home/myfile.

s%/home/myfile%/temp&%

El shell sustituye una palabra nula de una sustitución por la última sustitución o por la última serieutilizada en la exploración de contexto !?Serie?. Puede omitir el delimitador final (/) si el carácter quele sigue inmediatamente es un carácter de nueva línea. Puede omitir los siguientes modificadores paradelimitar la lista del histórico:

Elemento

Descripción

t Elimina todos los componentes de nombre de vía de acceso iniciales, dejando el final

& Repite la sustitución anterior

g Aplica el cambio de forma global; es decir, todas las apariciones de cada línea

p Visualiza el nuevo mandato, pero no lo ejecuta

q Coloca delimitadores en las palabras sustituidas, evitando así que se realicen sustitucionesadicionales

x Actúa como el modificador q, pero separa el texto en palabras donde existen blancos,tabulaciones y caracteres de nueva línea

Cuando se utilizan los modificadores anteriores, el cambio sólo se aplica a la primera palabra modificablea menos que el modificador g se haya especificado delante del modificador seleccionado.

Si proporciona una referencia de histórico sin una especificación de suceso (por ejemplo, !$), el shellutiliza el mandato anterior como suceso. Si se produce una referencia histórica anterior en la misma línea,el shell repite la referencia anterior. Así pues, la siguiente secuencia proporciona el primer y últimoargumento del mandato que coincide con ?foo?.

!?foo?^ !$

Puede utilizarse una abreviatura especial de una referencia del histórico cuando el primer carácter que noes un blanco de una línea de entrada es un acento circunflejo (^). Esto equivale a !:s^, con lo que seproporciona una forma abreviada adecuada para las sustituciones del texto de la línea anterior. Elmandato ^ lb^ lib corrige la ortografía de lib del mandato.

312 AIX Versión 7.2: Gestión del sistema operativo

Page 319: AIX Versión 7 - IBM

Si es necesario, puede especificar una sustitución del histórico entre llaves { } para aislarla de loscaracteres que le siguen. Por ejemplo, si desea utilizar una referencia al mandato:

ls -ld ~paul

para efectuar el mandato:

ls -ld ~paula

utilice la siguiente construcción:

!{l}a

En este ejemplo, !{l}a busca un mandato que empieza por l y añade una a al final.

Delimitación con comillas simples y doblesPara evitar que tenga lugar la interpretación adicional de todas o de algunas de las sustituciones, delimitelas series con comillas simples o dobles.

Las comillas de ' ' impiden que se realicen otras interpretaciones, mientras que las comillas de " "permiten una expansión adicional. En ambos casos, el texto resultante se convierte en una palabra o enparte de una palabra.

Redirección de la entrada y la salida en el shell CAntes de que el shell C ejecute un mandato, busca caracteres de redirección en la línea de mandatos.Estas notaciones especiales indican al shell que redirija la entrada y la salida.

Puede redirigir la entrada y la salida estándar de un mandato utilizando las siguientes sentencias desintaxis:

Elemento Descripción

< Archivo Abre el Archivo especificado (del que primero se expande la variable, el mandato yel nombre de archivo) como entrada estándar.

<<Palabra Lee la entrada del shell hasta la línea que coincide con el valor de la variablePalabra. La variable Palabra no depende de la sustitución de la variable, delnombre de archivo o del mandato. Cada línea de entrada se compara con lavariable Palabra antes de realizarse las sustituciones en la línea. A menos queaparezca un carácter de delimitación (\, ", ' o `) en la variable Palabra, el shellrealiza la sustitución de variables y mandatos en las líneas intermedias, lo quepermite al carácter \ delimitar los caracteres $, \ y `. Los mandatos que sesustituyen tienen todos los blancos, tabulaciones y caracteres de nueva líneapreservados, a excepción del carácter de nueva línea final, que se elimina. El textoresultante se coloca en un archivo temporal anónimo, que se pasa al mandatocomo entrada estándar.

> Archivo

>!Archivo

>& Archivo

>&! Archivo

Utiliza el Archivo especificado como salida estándar. Si el Archivo no existe, secrea. Si Archivo ya existe, se trunca y se pierde su contenido anterior. Si seestablece la variable de shell noclobber, Archivo no debe existir ni ser un archivoespecial de caracteres, o se producirá un error. Esto ayuda a prevenir ladestrucción accidental de archivos. En este caso, utilice los formatos que incluyenun ! para suprimir esta comprobación. Archivo se expande del mismo modo quelos nombres de archivos de entrada <. El formato >& redirige la salida estándar ylos errores estándar al Archivo especificado. El ejemplo siguiente muestra cómoredirigir por separado la salida estándar a /dev/tty y los errores estándara /dev/null. Los paréntesis son obligatorios para permitir separar la salidaestándar y el error estándar.

% (find / -name vi -print > /dev/tty) >& /dev/null

Gestión del sistema operativo 313

Page 320: AIX Versión 7 - IBM

Elemento Descripción

> >Archivo

> >!Archivo

> >& Archivo

> >&! Archivo

Utiliza el Archivo especificado como salida estándar igual que >, pero añade lasalida al final de Archivo. Si se establece la variable de shell noclobber, se produceun error si no existe Archivo, a menos que se proporcione uno de los formatos queincluye un signo ! . De lo contrario, es similar a >.

Un mandato recibe el entorno en el que llamó al shell, cambiado por los parámetros de entrada/salida yla presencia del mandato como un conducto. De este modo, a diferencia de algunos shells anteriores, losmandatos que se ejecutan desde un script de shell no tienen acceso al texto de los mandatos poromisión. En lugar de ello, reciben la entrada estándar original del shell. Utilice el mecanismo << parapresentar datos en línea, lo que permite a los archivos de mandatos del shell funcionar comocomponentes de conductos y también permite que el bloque de shell pueda leer su entrada. Tenga encuenta que la entrada estándar por omisión de un mandato que se ejecuta sin asociaciones no cambia porel archivo /dev/null vacío. En lugar de ello, la entrada estándar sigue siendo la entrada estándaroriginal del shell.

Para redirigir el error estándar por medio de un conducto con la salida estándar, utilice el formato |& enlugar de utilizar únicamente el carácter |.

Control de flujo en el shell CEl shell contiene mandatos que pueden utilizarse para regular el flujo de control en archivos de mandatos(scripts de shell) y (en modos útiles, pero limitados) desde entrada de línea de mandatos del shell. Todosestos mandatos funcionan haciendo que el shell se repita, o se salte, en su entrada.

Las sentencias foreach, switch y while y el formato if-then-else de la sentencia if necesitan que laspalabras clave principales aparezcan en un solo mandato simple de una línea de entrada.

Si no se pueden efectuar búsquedas en la entrada del shell, el shell sitúa en almacenamiento intermediola entrada cada vez que se lee un bucle y busca en el almacenamiento intermedio interno para realizar larelectura implicada por el bucle. Hasta donde está permitido, los goto de retroceso se ejecutansatisfactoriamente en las entradas en las que no pueden realizarse búsquedas.

Seguridad del sistema operativoLa finalidad de la seguridad del sistema consiste en proteger la información que se almacena en elsistema.

Con la seguridad de la información se pretende lograr los objetivos siguientes:

Elemento Descripción

Integridad El valor de toda la información depende de su exactitud. Si se efectúan cambios noautorizados en los datos, éstos pierden algo o todo su valor.

Privacidad El valor de gran parte de la información depende de su condición de confidencialidad.

Disponibilidad

La información debe estar disponible en el acto.

Planificar e implementar las políticas de seguridad antes de empezar a utilizar el sistema sirve de ayuda.La realización de cambios posteriores en las políticas de seguridad requiere mucho tiempo, por ello, sucorrecta planificación al principio puede ahorrarle mucho tiempo en el futuro.

Identificación y autentificaciónLa identificación y la autentificación establecen su identidad.

Se solicitará que inicie la sesión en el sistema. Debe proporcionar el nombre de usuario y una contraseñasi la cuenta tiene contraseña (en un sistema seguro, todas las cuentas deben tener contraseñas o, de locontrario, no son válidas). Si la contraseña es correcta, iniciará la sesión con esa cuenta; adquirirá losderechos y permisos de acceso de la cuenta.

314 AIX Versión 7.2: Gestión del sistema operativo

Page 321: AIX Versión 7 - IBM

Puesto que la contraseña es la única protección de que dispone su cuenta, seleccione y guardecuidadosamente su contraseña. Muchos intentos de irrumpir ilícitamente en un sistema empiezan porintentos de adivinar contraseñas. El sistema operativo proporciona una protección significativa de lascontraseñas al almacenar las contraseñas de los usuarios por separado de otras informaciones delsistema. Las contraseñas cifradas y los demás datos relacionados con la seguridad de los usuarios sealmacenan en el archivo /etc/security/passwd. Sólo el usuario root puede acceder a este archivo.Con este acceso restringido de los usuarios a las contraseñas cifradas, cualquier persona no autorizadano podrá descifrar las contraseñas con un programa que simplemente prueba todas las contraseñasposibles o probables.

Sigue siendo posible adivinar las contraseñas al intentar el inicio de sesión con una cuenta de formareiterada. Si la contraseña es muy sencilla o no se cambia con frecuencia, puede que los intentos deataque logren fácilmente su objetivo.

ID de usuario de inicio de sesiónEl sistema operativo puede identificar a los usuarios por su ID de usuario de inicio de sesión.

El ID de inicio de sesión de usuario permite al sistema seguir la pista de todas las acciones del usuariodesde su origen. Después de que un usuario inicia la sesión en el sistema y antes de ejecutarse elprograma inicial del usuario, el sistema establece el ID de inicio de sesión del proceso en el ID de usuarioque se encuentra en la base de datos de usuarios. Todos los procesos posteriores durante la sesión delinicio de sesión se identifican mediante este ID. Dichos identificadores proporcionan una pista de todaslas actividades efectuadas por el ID de inicio de sesión del usuario.

El usuario puede restablecer el ID de usuario en vigor, el ID de usuario real, el ID de grupo en vigor, el IDde grupo real y el ID de grupo complementario durante la sesión, pero no puede cambiar el ID de usuariode inicio de sesión.

Terminales desatendidosTodos los sistemas son vulnerables si se dejan las sesiones iniciadas o desatendidos los terminales. Losproblemas más graves se producen cuando un gestor del sistema deja un terminal desatendido al que sele ha asignado autorización de usuario root. En general, los usuarios deben finalizar la sesión cada vezque abandonan sus terminales.

Puede forzar que un terminal finalice tras un periodo de inactividad estableciendo los parámetros TMOUTy TIMEOUT en el archivo /etc/profile. El parámetro TMOUT funciona en el shell ksh (Korn) y elparámetro TIMEOUT funciona en el shell bsh (Bourne).

En el ejemplo siguiente, que se ha tomado del archivo .profile, se fuerza la finalización de sesión delterminal transcurrida una hora de inactividad:

TO=3600echo "Estableciendo el fin de sesión automático en $TO"TIMEOUT=$TOTMOUT=$TOexport TIMEOUT TMOUT

Nota: Puede alterar temporalmente los valores de TMOUT y TIMEOUT del archivo /etc/profileespecificando valores en el archivo .profile del directorio inicial.

Conceptos relacionadosSustitución de variables en el shell BourneEl shell Bourne permite realizar sustituciones de variables.Referencia relacionadaSustitución de parámetros en el shell Korn o shell POSIXEl shell Korn o shell POSIX, le permite realizar sustituciones de parámetros.

Propiedad de archivos y grupos de usuariosEn principio, el propietario de un archivo se identifica mediante el ID de usuario de la persona que creó elarchivo.

Gestión del sistema operativo 315

Page 322: AIX Versión 7 - IBM

El propietario de un archivo determina quién puede leer, grabar (modificar) o ejecutar el archivo. Lapropiedad se puede cambiar con el mandato chown.

A cada ID de usuario se le asigna un grupo con un ID de grupo exclusivo. El gestor del sistema crea losgrupos de usuarios cuando define el sistema. Cuando se crea un nuevo archivo, el sistema operativoasigna permisos al ID de usuario que lo ha creado, al ID de grupo que contiene el propietario del archivo ya un grupo denominado otros, que se compone de todos los demás usuarios. El mandato id muestra elID de usuario (UID), el ID de grupo (GID) y los nombres de todos los grupos a los que pertenece elusuario.

En los listados de archivos (como, por ejemplo, los listados que muestra el mandato ls), los grupos deusuarios siempre se representan en el orden siguiente: usuario, grupo y otros. Si necesita averiguar elnombre de grupo, el mandato groups muestra todos los grupos para un ID de usuario.

Cambio de la propiedad del directorio o archivoUtilice el mandato chown para cambiar al propietario de los archivos.

Al especificar la opción -R, el mandato chown desciende de forma recursiva a través de la estructura dedirectorios desde el directorio especificado. Cuando se encuentran enlaces simbólicos, cambia lapropiedad del archivo o directorio al que señala el enlace; la propiedad del enlace simbólico no cambia.

Nota: sólo el usuario root puede cambiar al propietario de otro archivo. Cuando se especifica la opción -f,no se muestran los errores.

Por ejemplo, para cambiar al propietario del archivo program.c, escriba lo siguiente:

chown jim program.c

Ahora, los permisos de acceso de usuario para el archivo program.c se aplican a jim. Como propietario,jim puede utilizar el mandato chmod para permitir o denegar el acceso de otros usuarios al archivoprogram.c.

Consulte el mandato chown para conocer la sintaxis completa.

Modalidades de acceso a archivos y a directoriosCada archivo tiene un propietario. En el caso de archivos nuevos, el usuario que crea el archivo es elpropietario de dicho archivo. El propietario asigna una modalidad de acceso al archivo. Las modalidadesde acceso otorgan a otros usuarios del sistema permiso para leer, modificar o ejecutar el archivo. Sólo elpropietario del archivo o los usuarios con autorización root pueden cambiar la modalidad de acceso de unarchivo.

Existen tres clases de usuarios: usuario/propietario, grupo y todos los demás. El acceso se otorga a esasclases de usuario en alguna combinación de las tres modalidades: lectura, grabación o ejecución. Cuandose crea un archivo nuevo, los permisos por omisión son de lectura, de grabación y de ejecución para elusuario que ha creado el archivo. Los otros dos grupos tienen permiso de lectura y de grabación. En latabla siguiente se muestran las modalidades de acceso a archivos por omisión de las tres clases degrupos de usuarios:

Elemento Descripción

Clases Lectura Grabación Ejecución

Propietario Sí Sí Sí

Grupo Sí No Sí

Otros Sí No Sí

El sistema determina quién tiene permiso y el nivel de permiso que tienen para cada una de estasactividades. En el sistema operativo, las modalidades de acceso se representan de forma simbólica ytambién de forma numérica.

Conceptos relacionadosTipos de archivos

316 AIX Versión 7.2: Gestión del sistema operativo

Page 323: AIX Versión 7 - IBM

Los tipos de archivos reconocidos por el sistema son normal, directorio o especial. No obstante, elsistema operativo utiliza muchas variaciones de estos tipos básicos.

Representación simbólica de las modalidades de accesoLas modalidades de acceso se representan simbólicamente.

Elemento

Descripción

r Indica permiso de lectura, que permite a los usuarios ver el contenido de un archivo.

w Indica permiso de grabación, que permite a los usuarios modificar el contenido de un archivo.

x Indica permiso de ejecución. En el caso de los archivos ejecutables (archivos normales quecontienen programas), el permiso de ejecución significa que puede ejecutarse el programa. En elcaso de los directorios, el permiso de ejecución significa que puede explorarse el contenido deldirectorio.

Las modalidades de acceso para los archivos o directorios se representan mediante nueve caracteres.Los tres primeros caracteres representan los permisos actuales del Propietario, el segundo conjunto detres caracteres representa los permisos del Grupo actual y el tercer conjunto de tres caracteresrepresenta los valores actuales de los permisos de Otros. Un guión (-) en el conjunto de nueve caracteresindica que no se ha otorgado ningún permiso. Por ejemplo, un archivo cuyas modalidades de acceso sehan establecido en rwxr-xr-x otorga permiso de lectura y ejecución a los tres grupos y permiso degrabación únicamente al propietario del archivo. Esta es la representación simbólica del valorpredeterminado.

El mandato ls, cuando se utiliza con el distintivo -l (L en minúsculas), proporciona un listado detalladodel directorio actual. Los 10 primeros caracteres del listado ls -l muestran el tipo de archivo y lospermisos de cada uno de los tres grupos. El mandato ls -l también lista el propietario y el grupoasociados a cada archivo y directorio.

El primer carácter indica el tipo de archivo. Los nueve caracteres restantes contienen información depermisos de archivos para cada una de las tres clases de usuarios. Se utilizan los siguientes símbolospara representar el tipo de archivo:

Elemento

Descripción

- Archivos normales

d Directorio

b Archivos de bloques especiales

c Archivos de caracteres especiales

p Archivos de conducto especiales

l Enlaces simbólicos

s Sockets

Por ejemplo, este puede un listado ls -l:

-rwxrwxr-x 2 janet acct 512 Mar 01 13:33 january

Aquí, el primer guión (-) indica que se trata de un archivo normal. Los nueve caracteres siguientes(rwxrwxr-x) representan las modalidades de acceso de Usuario, Grupo y Otros, tal como se ha descritopreviamente. janet es la propietaria del archivo y acct es el nombre del grupo de Janet. 512 es eltamaño de archivo en bytes, Mar 01 13:33 es la fecha y hora de la última modificación, y january es elnombre de archivo. El 2 indica el número de enlaces con el archivo que existe.

Gestión del sistema operativo 317

Page 324: AIX Versión 7 - IBM

Representación numérica de las modalidades de accesoNuméricamente, el acceso de lectura se representa mediante un valor de 4, el permiso de grabaciónmediante un valor de 2 y el permiso de ejecución mediante un valor de 1. El valor total entre 1 y 7representa la modalidad de acceso para cada grupo (usuario, grupo y otros).

En la tabla siguiente se muestran los valores numéricos de cada nivel de acceso:

Valor total Lectura Grabación Ejecución

0 - - -

1 - - 1

2 - 2 -

3 - 2 1

4 4 - -

5 4 - 1

6 4 2 -

7 4 2 1

Cuando se crea un archivo, la modalidad de acceso a los archivos por omisión es 755. Esto significa que elusuario tiene permiso de lectura, grabación y ejecución (4+2+1=7), el grupo tiene permiso de lectura yejecución (4+1=5) y todos los demás tienen permiso de lectura y grabación (4+1=5). Para cambiar lasmodalidades de los permisos de acceso de los archivos de los que es propietario, ejecute el mandatochmod (cambiar modalidad).

Visualización de información de grupoUtilice el mandato lsgroup para visualizar los atributos de todos los grupos del sistema (o de los gruposespecificados). Si uno o más atributos no pueden leerse, el mandato lsgroup visualizará toda lainformación que sea posible.

La información de los atributos se visualiza en forma de definiciones Atributo=Valor, separadas por unespacio en blanco.

1. Para listar todos los grupos del sistema, escriba lo siguiente:

lsgroup ALL

El sistema muestra cada grupo, ID de grupo y todos los usuarios del grupo en una lista similar a lasiguiente:

system 0 arne,pubs,ctw,geo,root,chucka,noer,su,dea,backup,build,janice,denisestaff 1 john,ryan,flynn,daveb,jzitt,glover,maple,ken,gordon,mbradybin 2 root,binsys 3 root,su,bin,sys

2. Para que se visualicen atributos específicos de todos los grupos, realice una de las accionessiguientes:

• Puede listar los atributos con el formato Atributo=Valor separados por un espacio en blanco.Este es el estilo por omisión. Por ejemplo, para listar los ID y los usuarios para todos los grupos en elsistema, escriba lo siguiente:

lsgroup -a id users ALL | pg

Se visualiza una lista similar a la siguiente:

system id=0 users=arne,pubs,ctw,geo,root,chucka,noer,su,dea,backup,buildstaff id=1 users=john,ryan,flynn,daveb,jzitt,glover,maple,ken

318 AIX Versión 7.2: Gestión del sistema operativo

Page 325: AIX Versión 7 - IBM

• También puede listar la información en formato de stanza. Por ejemplo, para listar los ID y losusuarios para todos los grupos en el sistema en formato de stanza, escriba lo siguiente:

lsgroup -a -f id users ALL | pg

Se visualiza una lista similar a la siguiente:

system: id=0 users=pubs,ctw,geo,root,chucka,noer,su,dea,backup,build

staff: id=1 users=john,ryan,flynn,daveb,jzitt,glover,maple,ken

bin: id=2 users=root,bin

sys: id=3 users=root,su,bin,sys

3. Para que se visualicen todos los atributos de un grupo específico, puede utilizar uno de los dos estilospara la obtención del listado de atributos específicos de todos los grupos:

• Puede listar cada atributo con el formato Atributo=Valor separados por un espacio en blanco.Este es el estilo por omisión. Por ejemplo, para listar todos los atributos del grupo "system", escribalo siguiente:

lsgroup system

Se visualiza una lista similar a la siguiente:

system id=0 users=arne,pubs,ctw,geo,root,chucka,noer,su,dea,backup,build,janice,denise

• También puede listar la información en formato de stanza. Por ejemplo, para listar todos losatributos del grupo bin en formato de stanza, escriba lo siguiente:

lsgroup -f system

Se visualiza una lista similar a la siguiente:

system: id=0 users=arne,pubs,ctw,geo,root,chucka,noer,su,dea,backup,build,janice,denise

4. Para que se listen atributos específicos de un grupo determinado, escriba lo siguiente:

lsgroup -a Atributos Grupo

Por ejemplo, para listar los ID y los usuarios para el grupo bin, escriba lo siguiente:

lsgroup -a id users bin

Se visualiza una lista similar a la siguiente:

bin id=2 users=root,bin

Consulte el mandato lsgroup para ver la sintaxis completa.

Cambio de los permisos de archivo o directorioUtilice el mandato chmod para cambiar los permisos de los archivos.

1. Para añadir un tipo de permiso a los archivos chap1 y chap2, escriba lo siguiente:

Gestión del sistema operativo 319

Page 326: AIX Versión 7 - IBM

chmod g+w chap1 chap2

Esto añade el permiso de grabación para miembros de grupo en los archivos chap1 y chap2.2. Para realizar varios cambios de permisos al mismo tiempo en el directorio mydir, escriba lo siguiente:

chmod go-w+x mydir

Esto deniega (-) a los miembros del grupo (g) y a otros (o) el permiso para crear o suprimir archivos (w)en el directorio mydir y permite (+) a los miembros del grupo y a otros buscar en el directorio mydir outilizarlo (x) en un nombre de vía de acceso. Esto equivale a la secuencia de mandatos siguiente:

chmod g-w mydirchmod o-w mydirchmod g+x mydirchmod o+x mydir

3. Para que sólo el propietario tenga permiso para utilizar un procedimiento de shell llamado cmd comomandato, escriba lo siguiente:

chmod u=rwx,go= cmd

Esto otorga permiso de lectura, grabación y ejecución al usuario que posee el archivo (u=rwx).También deniega al grupo y a otros el permiso para acceder a cmd de cualquier modo (go=).

4. Para utilizar el formato en modalidad numérica del mandato chmod a fin de cambiar los permisos delarchivo text, escriba lo siguiente:

chmod 644 text

Esto establece permiso de lectura y de grabación para el propietario y establece modalidad de sólolectura para el grupo y para los demás.

Consulte el mandato chmod para ver la sintaxis completa.

Listas de control de accesosEl control del acceso se compone de recursos de información protegidos que especifican a quién puedeotorgarse acceso para tales recursos.

El sistema operativo proporciona una seguridad discrecional y de conocimiento necesario. El propietariode un recurso de información puede otorgar a otros usuarios derechos de lectura o de grabación paradicho recurso. Un usuario al que se le conceden derechos de acceso sobre un recurso puede transferirdichos derechos a otros usuarios. Esta seguridad permite un flujo de información controlada por elusuario en el sistema; el propietario de un recurso de información define los permisos de acceso sobre elobjeto.

Los usuarios disponen de acceso basado en el usuario sólo para los objetos que poseen. Normalmente,los usuarios reciben los permisos de grupo o los permisos por omisión sobre un recurso. La tareaprincipal de la administración del control del acceso es la definición de la calidad de miembro de un grupode los usuarios, pues ello determina los derechos de acceso de los usuarios a los archivos de los que noson propietarios.

Listas de control de acceso para los objetos del sistema de archivosLos objetos del sistema de archivos por lo general están asociados a una Lista de control de accesos(ACL), la cual normalmente consta de una serie de Entradas de control de accesos (ACE). Cada ACE definela identidad y sus derechos de acceso relacionados.

Para mantener las listas de control de accesos, utilice los mandatos aclget, acledit, aclput yaclconvert.

Tenga en cuenta que generalmente el sistema de archivos físico (PFS) almacena y gestiona las ACL en elsoporte de almacenamiento. El sistema operativo AIX proporciona una infraestructura para sistemas dearchivos físicos para soportar y gestionar varios tipos de ACL. El sistema de archivos JFS2 que se entregacon el AIX da soporte a dos tipos de ACL:

320 AIX Versión 7.2: Gestión del sistema operativo

Page 327: AIX Versión 7 - IBM

• AIXC• NFS4

Los sistemas de archivos anteriores tan sólo soportaban el tipo de ACL AIXC, igual que en los releasesanteriores de AIX releases. Estos tipos de ACL se describen detalladamente en la publicación Security.

Tipo de lista de control de acceso AIXCEl tipo de ACL AIXC (AIX Classic) proporciona el comportamiento de la ACL tal como estaba definido enreleases anteriores de AIX. Este tipo de ACL consta de bits de modalidad base y permisos ampliados(ACE).

Con los permisos ampliados, puede permitir o denegar el acceso a los archivos a usuarios individuales ogrupos específicos, sin tener que cambiar los permisos base.

Nota: El tamaño de la ACL AIXC para un archivo no puede exceder de una página de memoria(aproximadamente 4096 bytes).

El mandato chmod en modalidad numérica (con notaciones octales) puede establecer atributos ypermisos base. La subrutina chmod, a la que el mandato llama, inhabilita los permisos ampliados. Siutiliza la modalidad numérica del mandato chmod en un archivo que tenga de una ACL, los permisosampliados se inhabilitan. La modalidad simbólica del mandato chmod no inhabilita los permisosampliados cuando la ACL asociada es de tipo AIXC. Para obtener más información sobre las modalidadesnumérica y simbólica, consulte el mandato chmod. Para obtener información acerca del mandato chmod,consulte chmod.

Permisos base

Los permisos base específicos de la ACL AIXC son las modalidades de acceso de archivostradicionales que se asignan al propietario de un archivo, al grupo de archivos y a otros usuarios. Lasmodalidades de acceso son lectura (r), grabación (w) y ejecución/búsqueda (x).

Nota: Los permisos base del tipo de ACL AIXC serán igual a los bits de modalidad de archivoalmacenados en las cabeceras de inodo del objeto del sistema de archivos. Es decir, la información delos bits de modalidad base es igual al valor que devuelve el sistema de archivos cuando se ejecutastat en el objeto del sistema de archivos.

En una lista de control de acceso, los permisos base están en el formato siguiente, con el parámetroMode expresado como rwx (un guión (-) sustituye a cada permiso no especificado):

base permissions: owner(name): Modalidad group(group): Modalidad others: Modalidad

Atributos

A una lista de controles de acceso pueden añadirse tres atributos:setuid (SUID)

Bit de modalidad de establecimiento de ID de usuario. Este atributo establece los ID de usuarioefectivos y guardados del proceso en el ID de propietario del archivo durante la ejecución.

setgid (SGID)Bit de modalidad de establecimiento de ID de grupo. Este atributo establece los ID de grupoefectivos y guardados del proceso en el ID de grupo del archivo durante la ejecución.

savetext (SVTX)Guarda el texto en un formato de archivo de texto.

Los atributos anteriores se añaden en el formato siguiente:

attributes: SUID, SGID, SVTX

Permisos ampliados

Los permisos ampliados de la ACL AIXC permiten al propietario de un archivo definir con másprecisión el acceso a ese archivo. Los permisos ampliados modifican los permisos base del archivo

Gestión del sistema operativo 321

Page 328: AIX Versión 7 - IBM

(propietario, grupo, otros) al permitir, denegar o especificar modalidades de acceso para individuos,grupos o combinaciones de usuario y grupo específicos. Los permisos se modifican mediante lautilización de palabras clave.

Las palabras clave permit, deny y specify se definen de la forma siguiente:permit

Otorga al usuario o al grupo el acceso especificado al archivodeny

Limita la capacidad que tiene el usuario o el grupo de utilizar el acceso especificado al archivospecify

Define con exactitud el acceso al archivo de que dispone el usuario o el grupoSi a un usuario se le deniega un acceso en particular por medio de la palabra clave deny o specify,ninguna otra entrada podrá alterar temporalmente dicha denegación de acceso.

Para que los permisos ampliados entren en vigor, en la ACL debe especificarse la palabra claveenabled. El valor predeterminado es la palabra clave disabled.

En una ACL AIXC, los permisos ampliados están en el formato siguiente:

extended permissions: enabled | disabled permit Mode UserInfo...: deny Mode UserInfo...: specify Mode UserInfo...:

Utilice una línea por separado para cada entrada de permit, deny o specify. El parámetro Mode seexpresa como rwx (un guión (-) sustituye a cada permiso no especificado). El parámetro UserInfo seexpresa como u:NombreUsuario o g:NombreGrupo, o una combinación de u:NombreUsuario yg:NombreGrupo separados por comas.

Nota: Si en una entrada se especifica más de un nombre de usuario, dicha entrada no puede utilizarseen una decisión de control de accesos puesto que un proceso sólo tiene un ID de usuario.

Tipo de lista de control de acceso NFS4El sistema de archivos JFS2 de AIX también da soporte al tipo de ACL NFS4. Esta implementación de ACLsigue la definición de ACL tal como se especifica en el RFC relacionado con el protocolo NFS4 versión 4.

Esta ACL proporciona un control granular mejor sobre los derechos de acceso y también proporcionacaracterísticas tales como herencia. La ACL NFS4 consta de una matriz de ACE. Cada ACE define losderechos de acceso para una identidad. Tal como se define en el RFC, los componentes principales de laACE NFS4 son los siguientes:

struct nfsace4 {

acetype4 type; aceflag4 flag; acemask4 access_mask; utf8str_mixed who;};

Donde:type

Máscara de bits que define el tipo de ACE. Define detalles, como por ejemplo, si esta ACE permite elacceso o niega el acceso.

flagMáscara de bits que describe los aspectos de herencia de la ACE. Define si esta ACE es aplicable alobjeto del sistema de archivos, o a sus hijos, o a ambos.

access_maskMáscara de bits que define distintos derechos de acceso posibles. Los derechos definidos incluyen,lectura, grabación, ejecución, creación, supresión, creación de hijo, supresión de hijo, etc.

322 AIX Versión 7.2: Gestión del sistema operativo

Page 329: AIX Versión 7 - IBM

whoEsta serie de terminación nula define la identidad de la persona a la cual se aplicará esta ACE. Tengaen cuenta que para cada RFC, el tamaño de esta serie no está limitado y que una definición flexiblepermite definir dominios dentro de redes NFS versión 4 para gestionar el control de acceso. De modonativo (la mayoría de veces) AIX no interpreta esta serie y cada ACE está asociada a una identidadque AIX pueda comprender (como por ejemplo uid o gid). Se espera que el sistema de archivos NFSversión 4 interprete estas series según sea necesario para convertirlas en unos ID de usuario o degrupo que el SO pueda comprender. AIX sólo comprende algunas de las series who especialesdefinidas en el RFC.

En AIX, utilice los mandatos aclget, acledit, aclput y aclconvert para gestionar las ACL NFS4.

Nota: Cualquier tipo de mandato chmod borrará la ACL del archivo.

Ejemplo de lista de control de acceso para AIXCEl siguiente ejemplo es una lista de control de acceso (ACL) de AIXC.

El siguiente ejemplo es una ACL AIXC:

attributes: SUIDbase permissions: owner(frank): rw- group(system): r-x others: ---extended permissions: enabled permit rw- u:dhs deny r-- u:chas, g:system specify r-- u:john, g:gateway, g:mail permit rw- g:account, g:finance

A continuación se muestran las partes de la ACL y sus significados:

• La primera línea indica que el bit setuid está activado.• La siguiente línea, que introduce los permisos base, es opcional.• Las tres líneas siguientes especifican los permisos base. El nombre del propietario y del grupo aparecen

entre paréntesis a título informativo solamente. Cambiar dichos nombres no altera el propietario delarchivo ni el grupo de archivos. Sólo el mandato chown y el mandato chgrp pueden cambiar estosatributos de archivo.

• La línea siguiente, que introduce los permisos ampliados, es opcional.• La línea siguiente indica que los permisos ampliados que se indican a continuación están habilitados.• Las últimas cuatro líneas son las entradas ampliadas.• La primera entrada ampliada otorga al usuario dhs los permisos de lectura (r) y grabación (w) sobre el

archivo.• La segunda entrada ampliada deniega el acceso de lectura (r) al usuario chas sólo cuando es miembro

del grupo system.• La tercera entrada ampliada especifica que siempre que el usuario john sea miembro de los dos

grupos, gateway y mail, tendrá el acceso de lectura (r). Si el usuario john no es miembro de los dosgrupos indicados, este permiso ampliado no tendrá aplicación.

• La última entrada ampliada otorga a cualquier usuario que sea miembro de los dos grupos account yfinance los permisos de lectura (r) y grabación (w).

Nota: A un proceso se le puede aplicar más de una entrada ampliada, donde las modalidades restrictivastienen prioridad sobre las modalidades permisivas.

Consulte el mandato acledit para ver la sintaxis completa.

Autorización de acceso de lista de control de accesoEl propietario del recurso de información es el responsable de la gestión de los derechos de acceso. Losrecursos están protegidos por bits de permiso, que se incluyen en la modalidad del objeto.

Gestión del sistema operativo 323

Page 330: AIX Versión 7 - IBM

Para las ACL AIXC, los bits de permiso definen los permisos de acceso otorgados al propietario del objeto,al grupo del objeto y a la clase predeterminada others. El tipo de ACL AIXC soporta tres modalidadesdiferentes de acceso (lectura, grabación y ejecución) que se pueden otorgar por separado.

Cuando un usuario inicia la sesión en una cuenta (utilizando los mandatos login o su), los ID de usuarioy los ID de grupo asignados a esa cuenta se asocian a los procesos de usuario. Estos ID determinan losderechos de acceso del proceso.

Para archivos, directorios, conductos con nombre y dispositivos (archivos especiales) con una ACL AIXasociada, el acceso se autoriza de la manera siguiente:

• Para cada entrada de control de acceso (ACE) de la lista de controles de acceso (ACL), la lista deidentificadores se compara con los identificadores del proceso. Si existe una coincidencia, el procesorecibe los permisos y restricciones definidos para dicha entrada. Se calculan las uniones lógicas tantopara permisos como para restricciones para cada entrada de la ACL coincidente. Si el procesosolicitante no coincide con ninguna de las entradas de la ACL, éste recibe los permisos y restriccionesde la entrada por omisión.

• Si la modalidad de acceso solicitada está permitida (está incluida en la unión de los permisos) y no estárestringida (está incluida en la unión de las restricciones), el acceso se otorga. De lo contrario, sedeniega.

Además, para un tipo de ACL AIXC, la lista de identificadores de una ACL coincide con un proceso si todoslos identificadores de la lista coinciden con el tipo correspondiente de identificador efectivo para elproceso solicitante. Un identificador de tipo USER coincidente equivale al ID de usuario en vigor delproceso y un identificador de tipo GROUP es coincidente si es igual al ID de grupo en vigor del proceso ode uno de los ID de grupo complementario. Por ejemplo, una ACE con una lista de identificadores como lasiguiente:

USER:fred, GROUP:philosophers, GROUP:software_programmer

coincidiría con un proceso que tuviera un ID de usuario efectivo que fuera fred y un conjunto de gruposque fuera:

philosophers, philanthropists, software_programmer, doc_design

pero no coincidiría con un proceso que tuviera un ID de usuario efectivo que fuera fred y un conjunto degrupos que fuera:

philosophers, iconoclasts, hardware_developer, graphic_design

Tenga en cuenta que una ACE con una lista de identificadores compuesta de los elementos siguientescoincidiría para ambos procesos:

USER:fred, GROUP:philosophers

En otras palabras, la lista de identificadores de las funciones de la ACE es un conjunto de condiciones quedebe contener el acceso especificado que ha de otorgarse.

El mecanismo del control de acceso discrecional permite realizar un control del acceso eficaz de losrecursos de información y proporciona protección adicional para garantizar la confidencialidad y laintegridad de la información. Los mecanismos de control de acceso controlados por el propietario sóloson tan efectivos como el usuario los diseñe. Todos los usuarios deben entender cómo se otorgan y sedeniegan los permisos de acceso y cómo se establecen.

Tenga en cuenta que para los objetos del sistema de archivos que tienen asociado un tipo de ACL NFS4,las comprobaciones de acceso se basan en varias ACE que forman la ACL así como en la configuración denormas del RFC relacionado con el protocolo NFS versión 4. La comprobación de la identidad se realizacomparando el ID de usuario o el ID de grupo o las series who especiales definidas en la ACE con lascredenciales del proceso. Si se produce una coincidencia, los derechos de acceso solicitados secomparan con los derechos de acceso definidos en la ACE. Si alguno de los derechos de acceso estápermitido, se tomarán estos y la operación de comparación continuará con la siguiente ACE. Este procesocontinúa hasta que se alcanza el final de la ACL o hasta que se cumplen todos los derechos de acceso o

324 AIX Versión 7.2: Gestión del sistema operativo

Page 331: AIX Versión 7 - IBM

hasta que se deniega alguno de los derechos de acceso solicitado. Los pasos siguientes capturan lacomprobación de acceso en el caso de un objeto del sistema de archivos que tiene asociada una ACLNFS4:

1. Para cada entrada de control de acceso (ACE) de la lista de controles de acceso (ACL), la lista deidentificadores se compara con los identificadores del proceso. Las comprobaciones de identidadincluyen el ID de usuario o el ID de grupo definido en la ACE. Además, si la identidad está definidacomo special con series como OWNER@, se producirá una coincidencia si el proceso que efectúa lallamada es el propietario del archivo. Si existe una coincidencia, el proceso recibe los derechos deacceso definidos para dicha entrada. De lo contrario, continúe con la ACE siguiente.

2. Los derechos de acceso solicitados se comparan con los derechos de acceso recuperados de laentrada ACE. Si la ACE deniega explícitamente alguno de los derechos de acceso solicitados, sefinaliza el proceso de comprobación de acceso y se deniega el acceso al proceso solicitante.

3. Si la ACE cumple alguno de los derechos de acceso solicitados, se tomarán dichos derechos de accesode la lista de derechos de acceso de solicitud y la operación de comparación continuará con lasiguiente ACE.

4. Si las ACE cumplen todos los derechos de acceso solicitados, se permite el acceso solicitado.5. Si se alcanza el final de la ACL antes de resolver todos los derechos de acceso solicitados, el acceso se

deniega.

Observe que aparte de las comprobaciones de acceso basadas en el tipo de ACL, los sistemas de archivosfísicos individuales también pueden optar por proporcionar un acceso basado en el privilegio para losobjetos del sistema de archivos. Por ejemplo, un propietario puede tener siempre permiso para modificarla ACL independientemente de los derechos de acceso de ACL existentes. Un proceso con un ID deusuario 0 se conoce como proceso de usuario root. Por lo general, a estos procesos se les otorgan todoslos permisos de acceso. Pero si un proceso de usuario root solicita permiso de ejecución para unprograma, el acceso sólo se concede si se ha otorgado permiso de ejecución a, como mínimo, un usuario.

Todos los permisos de acceso comprueban si estos objetos se crean a nivel de llamada del sistema laprimera vez que se accede al objeto. Puesto que el acceso a los objetos System V InterprocessCommunication (SVIPC) se realiza de forma independiente, para cada acceso se realizancomprobaciones. Sin embargo, es posible que las comprobaciones las realicen los sistemas de archivosfísicos en el tiempo de apertura del objeto del sistema de archivos y no en el tiempo de operación delectura o grabación. En el caso de objetos con nombres de sistemas de archivos, es necesario poderresolver el nombre del objeto real. Los nombres se resuelven relativamente (en el directorio de trabajodel proceso) o absolutamente (en el directorio raíz del proceso). La resolución de los nombres empiezacon la búsqueda de uno de éstos.

Mandato para visualizar información de control de accesos (mandato aclget)El mandato aclget muestra la información de control de accesos para un archivo. La información que sevisualiza incluye atributos, permisos base y permisos ampliados.

Por ejemplo, para visualizar la información de control de accesos para el archivo status, escriba losiguiente:

aclget status

La información de control de accesos que se muestra incluye una lista de atributos, permisos base ypermisos ampliados.

Conceptos relacionadosEjemplo y descripción de la lista de control de accesoA continuación se presenta un ejemplo y la descripción de listas de control de acceso (ACL).

Establecimiento de la información de control de accesos (mandato aclput)Para establecer la información de control de accesos para un archivo, utilice el mandato aclput.

Nota: la lista de control de accesos para un archivo no puede exceder el tamaño de una página dememoria (aproximadamente, 4096 bytes).

Gestión del sistema operativo 325

Page 332: AIX Versión 7 - IBM

Vea los ejemplos siguientes:

Por ejemplo, para establecer la información de control de accesos para el archivo status con lainformación de control de accesos almacenada en el archivo acldefs, escriba lo siguiente:

aclput -i acldefs status

Para establecer la información de control de accesos para el archivo status con la misma información quese ha utilizado para el archivo plans, escriba lo siguiente:

aclget plans | aclput status

Ejemplo y descripción de la lista de control de accesoA continuación se presenta un ejemplo y la descripción de listas de control de acceso (ACL).

A continuación se muestra un ejemplo de una ACL:

attributes: SUIDbase permissions: owner(frank): rw- group(system): r-x others: ---extended permissions: enabled permit rw- u:dhs deny r-- u:chas, g:system specify r-- u:john, g:gateway, g:mail permit rw- g:account, g:finance

A continuación se muestran las partes de la ACL y sus significados:

• La primera línea indica que el bit setuid está activado.• La siguiente línea, que introduce los permisos base, es opcional.• Las tres líneas siguientes especifican los permisos base. El nombre del propietario y del grupo aparecen

entre paréntesis a título informativo solamente. Cambiar dichos nombres no altera el propietario delarchivo ni el grupo de archivos. Sólo el mandato chown y el mandato chgrp pueden cambiar estosatributos de archivo.

• La línea siguiente, que introduce los permisos ampliados, es opcional.• La línea siguiente indica que los permisos ampliados que se indican a continuación están habilitados.• Las últimas cuatro líneas son las entradas ampliadas. La primera entrada ampliada otorga al usuariodhs los permisos de lectura (r) y grabación (w) sobre el archivo.

• La segunda entrada ampliada deniega el acceso de lectura (r) al usuario chas sólo cuando es miembrodel grupo system.

• La tercera entrada ampliada especifica que mientras el usuario john sea miembro del grupo gateway ydel grupo mail, tiene acceso de lectura (r). Si el usuario john no es miembro de los dos gruposindicados, este permiso ampliado no tendrá aplicación.

• La última entrada ampliada otorga a cualquier usuario que sea miembro de los dos grupos account yfinance los permisos de lectura (r) y grabación (w).

Nota: A un proceso se le puede aplicar más de una entrada ampliada, donde las modalidadesrestrictivas tienen prioridad sobre las modalidades permisivas.

Consulte el mandato acledit para ver la sintaxis completa.

Conceptos relacionadosMandato para visualizar información de control de accesos (mandato aclget)El mandato aclget muestra la información de control de accesos para un archivo. La información que sevisualiza incluye atributos, permisos base y permisos ampliados.Tareas relacionadasEdición de la información de control de accesos (mandato acledit)

326 AIX Versión 7.2: Gestión del sistema operativo

Page 333: AIX Versión 7 - IBM

Utilice el mandato acledit para cambiar la información de control de accesos de un archivo. El mandatomuestra la información de control de accesos actual y permite al propietario del archivo modificarlo.

Edición de la información de control de accesos (mandato acledit)Utilice el mandato acledit para cambiar la información de control de accesos de un archivo. El mandatomuestra la información de control de accesos actual y permite al propietario del archivo modificarlo.

Antes de que los cambios sean permanentes, el mandato acledit le pregunta si desea continuar.

Nota: La variable de entorno EDITOR se debe especificar con un nombre de vía de acceso completo; de locontrario, el mandato acledit fallará.

que se visualiza es específica del tipo ACL e incluye una lista de atributos, permisos base y permisosampliados.

Por ejemplo, para editar la información de control de accesos del archivo plans, escriba lo siguiente:

acledit plans

Conceptos relacionadosEjemplo y descripción de la lista de control de accesoA continuación se presenta un ejemplo y la descripción de listas de control de acceso (ACL).

Bloqueo del terminal (mandato lock o xlock)Utilice el mandato lock para bloquear el terminal. El mandato lock solicita la contraseña, la lee y vuelvea solicitar la contraseña una segunda vez para verificarla.

Mientras tanto, el mandato bloquea el terminal y no elimina el bloqueo hasta que se recibe la contraseñapor segunda vez. El valor predeterminado de tiempo de espera es de 15 minutos, pero se puede cambiarcon el distintivo -Número.

Nota: si la interfaz es AIXwindows, utilice el mandato xlock siguiendo el mismo procedimiento.

Por ejemplo, para bloquear el terminal con el control de contraseña, escriba lo siguiente:

lock

La contraseña se solicita dos veces a fin de que el sistema la pueda verificar. Si la contraseña no se repiteen 15 minutos, el mandato excede el tiempo de espera.

Para reservar un terminal bajo control de contraseña con un intervalo de tiempo de espera de 10 minutos,escriba lo siguiente:

lock -10

Autenticación

El mandato xlock es un mandato del servidor X habilitado por PAM (Pluggable AuthenticationModule) que bloquea el servidor X hasta que el usuario escriba una contraseña. Soporta tantoautenticación UNIX local como autenticación PAM para desbloquear el servidor X.

Puede establecer la configuración de todo el sistema para utilizar PAM para la autenticaciónproporcionando el acceso de usuario root y modificando el valor del atributo auth_type a PAM_AUTHen la stanza usw del archivo /etc/security/login.cfg.

Los mecanismos de autenticación que se utilizan cuando PAM está habilitado dependen de laconfiguración del servicio de inicio de sesión en el archivo /etc/pam.conf. El mandato xlockrequiere la entrada de archivo /etc/pam.conf para los tipos de módulos autorización, cuenta,contraseña y sesión. La configuración siguiente está recomendada para la entrada de archivo /etc/pam.conf en el mandato xlock:

xlock auth required pam_aix

xlock account required pam_aix

Gestión del sistema operativo 327

Page 334: AIX Versión 7 - IBM

xlock password required pam_aix

xlock session required pam_aix

Resumen de mandatos para la seguridad de sistemas y archivosLos siguientes mandatos son para el sistema de archivos y la seguridad.

Elemento Descripción

acledit Edita la información de control de acceso de un archivo

aclget Visualiza la información de control de acceso de un archivo

aclput Establece la información de control de acceso de un archivo

chmod Cambia las modalidades de los permisos

chown Cambia el usuario que se asocia a un archivo

lock Reserva un terminal

lsgroup Visualiza los atributos de los grupos

xlock Bloquea la pantalla X local hasta que se escribe una contraseña

Entorno de usuarioCada nombre de inicio de sesión tiene su propio entorno del sistema.

El entorno del sistema es un área en la que se almacena la información común a todos los procesos quese ejecutan en una sesión. Para visualizar información acerca del sistema, puede utilizar varios mandatos.

Archivos de entorno de usuario y procedimientos de personalizaciónEstos archivos y procedimientos ayudan al usuario a personalizar el entorno del sistema.

Archivos de arranque del sistema

Elemento Descripción

/etc/profile Archivo del sistema que contiene mandatos que el sistema ejecutacuando se inicia la sesión.

/etc/environment Archivo del sistema que contiene variables que especifican el entornobásico para todos los procesos.

$HOME/.profile Archivo del directorio inicial que contiene mandatos que alterantemporalmente el archivo /etc/profile del sistema cuando se inicia lasesión. Para obtener más información, consulte el archivo .profile.

$HOME/.env Archivo del directorio inicial que altera temporalmente el archivo /etc/environment del sistema y que contiene variables que especifican elentorno básico para todos los procesos. Para obtener másinformación, consulte el archivo .env.

archivos de arranque de AIXwindows

Elemento Descripción

$HOME/.xinitrc Archivo del directorio inicial que controla las ventanas y aplicacionesque se inician cuando se inicia AIXwindows. Para obtener másinformación, consulte el archivo .xinitrc.

$HOME/.Xdefaults Archivo del directorio inicial que controla el aspecto visual o decomportamiento de los recursos de AIXwindows. Para obtener másinformación, consulte el apartado “Archivo .Xdefaults” en la página338.

328 AIX Versión 7.2: Gestión del sistema operativo

Page 335: AIX Versión 7 - IBM

Elemento Descripción

$HOME/.mwmrc Archivo del directorio inicial que define enlaces de teclas, enlaces debotones del ratón y definiciones de menú para el gestor de ventanas.Para obtener más información, consulte el apartado“Archivo .mwmrc” en la página 338.

Procedimientos de personalización

Elemento Descripción

PS1 Indicador normal del sistema

PS2 Indicador del sistema correspondiente a más entrada

PS3 Indicador del sistema raíz

chfont Cambia el font que una pantalla utiliza actualmente al rearrancarse el sistema

stty Establece, restablece e informa de los parámetros operativos de la estación detrabajo

Lista de dispositivos del sistema (mandato lscfg)Para visualizar el nombre, la ubicación y la descripción de cada dispositivo de la configuración actual,utilice el mandato lscfg. La lista se ordena por la ubicación de los dispositivos.

Por ejemplo, para listar los dispositivos configurados en el sistema, en el indicador escriba lo siguiente:

lscfg

El sistema muestra la salida similar a la siguiente:

INSTALLED RESOURCE LIST The following resources are installed on your machine. +/- = Added/Deleted from Diagnostic Test List. * = NOT Supported by Diagnostics.

Model Architecture: chrp Model Implementation: Multiple Processor, PCI bus

+ sysplanar0 00-00 CPU Planar+ fpa0 00-00 Floating Point Processor+ mem0 00-0A Memory Card+ mem1 00-0B Memory Card+ ioplanar0 00-00 I/O Planar+ rs2320 00-01 RS232 Card+ tty0 00-01-0-01 RS232 Card Port- tty1 00-01-0-02 RS232 Card Port .. .. ..

La lista de dispositivos no se ordena solo por la ubicación de dispositivos. Se ordena por la jerarquíapadre/hijo. Si el padre tiene varios hijos, los hijos se ordenan por ubicación de dispositivos. Si los hijostiene la misma ubicación de dispositivo, se muestran en el orden en que los obtiene el software. Paravisualizar información sobre un dispositivo específico, puede utilizar el distintivo -l. Por ejemplo, paralistar la información del dispositivo sysplanar0, en el indicador escriba lo siguiente:

lscfg -l sysplanar0

El sistema muestra la salida similar a la siguiente:

DISPOSITIVO UBICACIÓN DESCRIPCIÓN sysplanar0 00-00 CPU Planar

Gestión del sistema operativo 329

Page 336: AIX Versión 7 - IBM

También puede utilizar el mandato lscfg para visualizar datos vitales del producto (VPD) como, porejemplo, números de piezas, números de serie y niveles de cambios técnicos. Para algunos dispositivos,los datos vitales del producto se recopilan de modo automático y se añaden a la configuración delsistema. Para otros dispositivos, los datos vitales del producto se escriben manualmente. Cuando MEprecede a los datos, indica que los datos se han escrito manualmente.

Por ejemplo, para listar VPD para dispositivos configurados en el sistema, en el indicador escriba losiguiente:

lscfg -v

El sistema muestra la salida similar a la siguiente:

INSTALLED RESOURCE LIST WITH VPD

The following resources are installed in your machine.

Model Architecture: chrp Model Implementation: Multiple Processor, PCI bus

sysplanar0 00-00 CPU Planar

Part Number.........342522 EC Level............254921 Serial Number.......353535

fpa0 00-00 Floating Point Processormem0 00-0A Memory Card

EC Level............990221...

Visualización de nombres de consolaPara escribir el nombre del dispositivo de consola actual en salida estándar (por lo general, la pantalla),utilice el mandato lscons.

Por ejemplo, en el indicador de mandatos escriba lo siguiente:

lscons

El sistema muestra la salida similar a la siguiente:

/dev/lft0

Consulte el mandato lscons para ver la sintaxis completa.

Visualización del nombre de terminal (mandato tty)Para visualizar el nombre del terminal, utilice el mandato tty.

Por ejemplo, en el indicador de mandatos escriba lo siguiente:

tty

El sistema visualiza información similar a la siguiente:

/dev/tty06

En este ejemplo, tty06 es el nombre del terminal y /dev/tty06 es el archivo de dispositivo que contienela interfaz para este terminal.

330 AIX Versión 7.2: Gestión del sistema operativo

Page 337: AIX Versión 7 - IBM

Listado de los terminales disponibles (mandato lsdisp)Para listar los terminales actualmente en el sistema, proporcionando un nombre de identificación determinal, número de ranura, nombre de visualización y descripción de cada uno de los terminales, utiliceel mandato lsdisp.

Por ejemplo, para listar todos los terminales disponibles, escriba lo siguiente:

lsdisp

Lo siguiente es un ejemplo de la salida. La lista se muestra en orden ascendente según el número deranura.

Name Slot Name Descriptionppr0 00-01 POWER_G4 Midrange Graphics Adapter gda0 00-03 colorgda Color Graphics Display Adapterppr1 00-04 POWER_Gt3 Midrange Entry Graphics Adapter

Listado de los fonts disponibles (mandato lsfont)Para que se muestre una lista de los fonts disponibles para el terminal, utilice el mandato lsfont.

Por ejemplo, para que se listen todos los fonts disponibles para el terminal, escriba lo siguiente:

lsfont

Lo siguiente es un ejemplo de la salida, y muestra el identificador de font, el nombre de archivo, eltamaño de glifo y la codificación de font:

FONT FILE GLYPH FONT ID NAME SIZE ENCODING ==== ============== ===== ========= 0 Erg22.iso1.snf 12x30 ISO8859-1 1 Erg11.iso1.snf 8x15 ISO8859-1

Listado de la definición de teclado de software actual (mandato lskbd)Para visualizar el nombre absoluto de vía de acceso de la definición de teclado de software actual cargadaen el sistema, utilice el mandato lskbd.

Por ejemplo, para listar la definición de teclado actual, escriba lo siguiente:

lskbd

Lo siguiente es un ejemplo del listado que muestra el mandato lskbd:

La definición de teclado de software actual = /usr/lib/nls/loc/C.lftkeymap

Listado de los productos de software disponibles (mandato lslpp)Para visualizar información sobre los productos de software disponibles en el sistema, utilice el mandatolslpp.

Por ejemplo, para listar los productos de software del sistema, en el indicador escriba lo siguiente:

lslpp -l -a

Lo siguiente es un ejemplo de la salida:

Fileset Level State Description-------------------- ------- -------- -----------------Path: /usr/lib/objrepos X11_3d.gl.dev.obj APPLIED AIXwindows/3D GL Development UtilitiesFonts X11fnt.oldX.fnt APPLIED AIXwindows Miscellaneous X FontsX11mEn_US.msg APPLIED AIXwindows NL Message archivos

Gestión del sistema operativo 331

Page 338: AIX Versión 7 - IBM

.

.

.

Si la lista es muy larga, la parte superior se desplaza fuera de la pantalla. Para visualizar la lista de modoque se muestre una página (pantalla) cada vez, utilice el mandato lslpp conectado con el mandato pg.En el indicador de mandatos, escriba lo siguiente:

lslpp -l -a | pg

Lista de asignaciones de teclas de control para el terminal (mandato stty)Para visualizar los valores del terminal, utilice el mandato stty. Fíjese especialmente en las teclas queutiliza el terminal para teclas de control.

Por ejemplo, en el indicador de mandatos escriba lo siguiente:

stty -a

El sistema visualiza información similar a la siguiente:

.

.

.

intr = ^C; quit = ^\; erase = ^H; kill = ^U; eof = ^D; eol = ^@ start = ^Q; stop = ^S; susp = ^Z; dsusp = ^Y; reprint = ^R discard = ^O; werase = ^W; lnext = ^V

.

.

.

En este ejemplo, líneas como intr = ^C; quit = ^\; erase = ^H; muestran los valores de lasteclas de control. La tecla ^H es la tecla de retroceso y se establece para realizar la función de borrado.

Si la lista es muy larga, la parte superior se desplaza fuera de la pantalla. Para visualizar la lista de modoque se muestre una página (pantalla) cada vez, utilice el mandato stty conectado con el mandato pg. Enel indicador de mandatos, escriba lo siguiente:

stty -a | pg

Conceptos relacionadosCancelación de procesos en primer planoSi inicia un proceso en primer plano y, luego, decide que no desea que se complete, puede cancelarlopulsando la tecla de interrupción (Inter). Dicha tecla suele ser Control-C o Control-Retroceso.

Listado de las variables de entorno (mandato env)Para visualizar las variables de entorno actuales, utilice el mandato env. Una variable de entorno que seaaccesible para todos los procesos se denomina variable global.

Por ejemplo, para listar todas las variables de entorno y sus valores asociados, escriba lo siguiente:

env

332 AIX Versión 7.2: Gestión del sistema operativo

Page 339: AIX Versión 7 - IBM

Lo siguiente es un ejemplo de la salida:

TMPDIR=/usr/tmpmyid=deniseLANG=es_ESUNAME=barnardPAGER=/bin/pgVISUAL=viPATH=/usr/ucb:/usr/lpp/X11/bin:/bin:/usr/bin:/etc:/u/denise:/u/denise/bin:/u/bin1MAILPATH=/usr/mail/denise?denise has mail !!!MAILRECORD=/u/denise/.OutmailEXINIT=set beautify noflash nomesg report=1 showmode showmatchEDITOR=viPSCH=>HISTFILE=/u/denise/.historyLOGNAME=deniseMAIL=/usr/mail/denisePS1=denise@barnard:${PWD}> PS3=#PS2=>epath=/usr/binUSER=deniseSHELL=/bin/kshHISTSIZE=500HOME=/u/deniseFCEDIT=viTERM=lftMAILMSG=**YOU HAVE NEW MAIL. USE THE mail COMMAND TO SEE YOUR PWD=/u/deniseENV=/u/denise/.env

Si el listado es muy largo, la parte superior se desplaza fuera de la pantalla. Para visualizar la lista demodo que se muestre una página (pantalla) cada vez, utilice el mandato env conectado con el mandatopg. En el indicador de mandatos, escriba lo siguiente:

env | pg

Visualización de un valor de variable de entorno (mandato printenv)Para visualizar los valores de variables de entorno, utilice el mandato printenv.

Si especifica el parámetro Nombre, el sistema sólo imprime el valor asociado a la variable que hasolicitado. Si no especifica el parámetro Nombre, el mandato printenv muestra todas las variables deentorno actuales, y visualiza una secuencia Nombre =Valor por línea.

Por ejemplo, para buscar el valor actual de la variable de entorno MAILMSG, escriba lo siguiente:

printenv MAILMSG

El mandato devuelve el valor de la variable de entorno MAILMSG. Por ejemplo:

YOU HAVE NEW MAIL

Idiomas bidireccionales (mandato aixterm)El mandato aixterm da soporte al árabe y al hebreo, que son idiomas bidireccionales.

Los idiomas bidireccionales pueden leerse y escribirse en dos direcciones: de izquierda a derecha y dederecha a izquierda. Puede trabajar con aplicaciones en árabe y hebreo abriendo una ventana yespecificando un escenario árabe o hebreo.

Resumen de mandatos para entorno de usuario e información del sistemaLos siguientes mandatos son para información del entorno de usuario y el sistema.

Elemento Descripción

aixterm Le permite trabajar con idiomas bidireccionales

env Visualiza el entorno actual o establece el entorno para la ejecución de un mandato

lscfg Visualiza información de diagnósticos acerca de un dispositivo

lscons Visualiza el nombre de la consola actual

Gestión del sistema operativo 333

Page 340: AIX Versión 7 - IBM

Elemento Descripción

lsdisp Lista las pantallas que actualmente están disponibles en el sistema

lsfont Lista los fonts disponibles que puede utilizar la pantalla

lskbd Lista las correlaciones de teclado que actualmente se han cargado en el sistema

lslpp Lista los productos de software

printenv Visualiza los valores de las variables de entorno

stty Visualiza los valores del sistema

tty Visualiza el nombre completo de la vía de acceso del terminal

Personalización del entorno de usuarioEl sistema operativo proporciona diversos mandatos y archivos de inicialización que le permitepersonalizar el comportamiento y el aspecto del entorno de usuario.

También puede personalizar algunos de los recursos por omisión de las aplicaciones que utiliza en elsistema. El programa inicia los valores predeterminados en el arranque. Cuando cambie los valorespredeterminados, deberá salir y, a continuación, volver a iniciar el programa para que los nuevos valorespredeterminados entren en vigor.

Para obtener información acerca de la personalización del comportamiento y del aspecto del CommonDesktop Environment, consulte la publicación Common Desktop Environment 1.0: Advanced User's andSystem Administrator's Guide.

Archivos de arranque del sistemaAl iniciar la sesión, el shell define el entorno de usuario leyendo los archivos de inicialización que elusuario ha definido. Las características del entorno del usuario se definen utilizando los valoresproporcionados a las variables de entorno. El usuario conserva este entorno hasta que finaliza la sesióndel sistema.

El shell utiliza dos tipos de archivos de perfil cuando se inicia la sesión en el sistema operativo. Evalúa losmandatos incluidos en los archivos y a continuación ejecuta los mandatos para definir el entorno delsistema. Los archivos tienen funciones similares, con la excepción de que el archivo /etc/profilecontrola las variables de los perfiles para todos los usuarios de un sistema, mientras que elarchivo .profile le permite personalizar su propio entorno.

El shell primero ejecuta los mandatos para configurar el entorno del sistema en el archivo /etc/environment y, a continuación, evalúa los mandatos que contiene el archivo /etc/profile. Tras laejecución de tales archivos, el sistema comprueba si se dispone de un archivo .profile en el directorioinicial. Si el archivo .profile existe, el sistema ejecuta dicho archivo. El archivo .profile especificarási también existe un archivo de entorno. Si existe un archivo de entorno (normalmentedenominado .env), el sistema ejecutará este archivo y configurará las variables de entorno.

Los archivos /etc/environment, /etc/profile y .profile se ejecutan una vez durante el inicio desesión. El archivo .env, por su parte, se ejecuta cada vez que abre un nuevo shell o ventana.

Archivo /etc/environmentEl primer archivo que el sistema operativo utiliza al iniciar la sesión es el archivo /etc/environment. Elarchivo /etc/environment contiene variables que especifican el entorno básico de todos los procesos.

Cuando empieza un nuevo proceso, la subrutina exec pone a disposición una matriz de series con elformato Nombre=Valor. Esta matriz de series se denomina entorno. Cada nombre definido por una de lasseries se denomina variable de entorno o variable de shell. La subrutina exec permite establecer todo elentorno a la vez.

Cuando se inicia la sesión, el sistema establece las variables de entorno del archivo /etc/environmentantes de leer el perfil de inicio de sesión, denominado .profile. Las siguientes variables forman enentorno básico:

334 AIX Versión 7.2: Gestión del sistema operativo

Page 341: AIX Versión 7 - IBM

Elemento Descripción

HOME Nombre completo de la vía de acceso del directorio HOME o de inicio de sesióndel usuario. El programa login establece este valor en el nombre que seespecifica en el archivo /etc/passwd.

LANG El nombre del escenario en vigor actualmente. La variable LANG se estableceinicialmente en el archivo /etc/profile durante la instalación.

NLSPATH El nombre completo de la vía de acceso para catálogos de mensajes.

LOCPATH Nombre completo de la vía de acceso de la ubicación de las tablas del Soportede idioma nacional.

PATH Secuencia de directorios en la que mandatos tales como sh, time, nice ynohup buscan cuando existe un mandato cuyo nombre de vía de acceso noestá completo.

TZ La información de huso horario. La variable de entorno TZ se estableceinicialmente mediante el archivo /etc/profile, el perfil de inicio de sesióndel sistema.

Para obtener información detallada acerca del archivo /etc/environment, consulte la publicaciónReferencia de archivos.

Archivo /etc/profileEl segundo archivo que el sistema operativo utiliza al iniciar la sesión es el archivo /etc/profile.

El archivo /etc/profile controla las variables predeterminadas de todo el sistema como, por ejemplo:

• Variables de exportación• Máscara de creación de archivos (umask)• Tipos de terminal• Mensajes de correo para indicar cuándo ha llegado nuevo correo

El administrador del sistema configura el archivo /etc/profile para todos los usuarios del sistema.Únicamente el administrador del sistema puede modificar este archivo.

A continuación se muestra un ejemplo de un archivo /etc/profile típico:

#Set file creation maskumask 022#Tell me when new mail arrivesMAIL=/usr/mail/$LOGNAME#Add my /bin directory to the shell search sequencePATH=/usr/bin:/usr/sbin:/etc::#Set terminal typeTERM=lft#Make some environment variables globalexport MAIL PATH TERM

Para obtener información detallada acerca del archivo /etc/profile, consulte la publicaciónReferencia de archivos .

Archivo .profileEl archivo .profile se encuentra en el directorio inicial ($HOME) y le permite personalizar el entorno detrabajo individual.

Puesto que el archivo .profile está oculto, utilice el mandato ls -a para listarlo.

Después de que el programa login añada las variables LOGNAME (nombre de inicio de sesión) y HOME(directorio de inicio de sesión) al entorno, se ejecutan los mandatos del archivo $HOME/.profile si elarchivo está presente. El archivo .profile contiene el perfil individual que altera temporalmente lasvariables que se han establecido en el archivo /etc/profile. Con frecuencia, el archivo .profile seutiliza para establecer variables de entorno exportadas y modalidades de terminal. Puede personalizar el

Gestión del sistema operativo 335

Page 342: AIX Versión 7 - IBM

entorno modificando el archivo .profile. Utilice el archivo .profile para controlar los siguientesvalores predeterminados:

• Shells que han de abrirse• Aspecto del indicador• Sonido del teclado

En el ejemplo siguiente se muestra un archivo .profile típico:

PATH=/usr/bin:/etc:/home/bin1:/usr/lpp/tps4.0/user::epath=/home/gsc/e3:export PATH epathcsh

Este ejemplo ha definido dos variables de vía de acceso (PATH y epath), las ha exportado y ha abierto unshell C (csh).

También puede utilizar el archivo .profile (o, si no existe, el archivo /etc/profile) para determinarvariables de shell de inicio de sesión. También puede personalizar otros entornos de shell. Por ejemplo,utilice el archivo .cshrc y el archivo .kshrc para personalizar un shell C y un shell Korn,respectivamente, cuando se inicie cada tipo de shell.

Archivo .envUn cuarto archivo que el sistema operativo utiliza en el inicio de sesión es el archivo .env, si .profilecontiene la línea siguiente: export ENV=$HOME/.env

El archivo .env le permite personalizar las variables de entorno de trabajo individuales. Puesto que elarchivo .env está oculto, utilice el mandato ls -a para listarlo. Para obtener información acerca delmandato ls, consulte ls. El archivo .env contiene las variables de entorno de usuario individuales quealteran temporalmente las variables que se han establecido en el archivo /etc/environment. Puedepersonalizar las variables de entorno como desee modificando el archivo .env.

En el ejemplo siguiente se muestra un archivo .env típico:

export myid=`id | sed -n -e 's/).*$//' -e 's/^.*(//p'`#set prompt: login & nombre sistema & vía de acceso if [ $myid = root ] then typeset -x PSCH='#:\${PWD}> ' PS1="#:\${PWD}> " else typeset -x PSCH='>' PS1="$LOGNAME@$UNAME:\${PWD}> " PS2=">" PS3="#?"fiexport PS1 PS2 PS3#definir mis alias de mandatosalias ls="/bin/ls -CF" \ d="/bin/ls -Fal | pg" \ rm="/bin/rm -i" \ up="cd .."

Nota: Al modificar el archivo .env, asegúrese de que las variables de entorno que acaba de crear noentran en conflicto con las variables estándar como MAIL, PS1, PS2 y IFS.

Archivos de arranque de AIXwindowsLos distintos sistemas tienen diferentes formas de iniciar el Servidor X y AIXwindows.

Puesto que los distintos sistemas tienen distintas formas de iniciar el Servidor X y AIXwindows, consulteal administrador del sistema cómo debe iniciarlos. Normalmente, el Servidor X y AIXwindows se iniciandesde un script de shell que se ejecuta automáticamente al iniciar la sesión. Sin embargo, puede quetenga que iniciar el Servidor X o AIXwindows, o ambos.

Si inicia la sesión y observa que la pantalla sólo funciona como un terminal, sin que es visualice ningunaventana, puede iniciar el Servidor X escribiendo lo siguiente:

xinit

336 AIX Versión 7.2: Gestión del sistema operativo

Page 343: AIX Versión 7 - IBM

Nota: Antes de especificar este mandato, asegúrese de que el puntero se encuentra dentro de unaventana que contenga un indicador del sistema.

Si este mandato no inicia el Servidor X, consulte al administrador del sistema para asegurarse de que lavía de acceso de búsqueda contiene el directorio X11 que contiene los programas ejecutables. La vía deacceso adecuada podría variar de un sistema a otro.

Si inicia la sesión y observa que una o más ventanas aparecen sin los marcos, puede iniciar el Gestor deventanas de AIXwindows escribiendo lo siguiente:

mwm &

Puesto que AIXwindows permite que los programadores que escriben aplicaciones de AIXwindows y losusuarios realicen personalizaciones, puede que los botones del ratón u otras funciones no funcionencomo espera que lo hagan tras haber leído esta documentación. Puede restablecer el entorno deAIXwindows en su comportamiento por omisión pulsando y manteniendo pulsadas las cuatro teclassiguientes:

Alt-Control-Mayús-!

Puede volver al comportamiento personalizado pulsando de nuevo esta secuencia de teclas. Si el sistemano permite esta combinación de teclas, también puede restaurar el comportamiento por omisión desde elmenú raíz por omisión.

Archivo .xinitrcEl mandato xinit utiliza un script de shell personalizable que lista los programas Cliente X que debeniniciarse. El archivo .xinitrc del directorio inicial controla las ventanas y las aplicaciones que se inicianal iniciar AIXwindows.

El mandato xinit funciona con scripts de shell en el orden siguiente:

1. En primer lugar, el mandato xinit busca la variable de entorno $XINITRC para iniciar AIXwindows.2. Si no se encuentra la variable de entorno $XINITRC, el mandato xinit busca el script de shell$HOME/.xinitrc.

3. Si no se encuentra el script de shell $HOME/.xinitrc, el mandato xinit inicia el script deshell /usr/lib/X11/$LANG/xinitrc.

4. Si no se encuentra /usr/lib/X11/$LANG/xinitrc, busca el script de shell /usr/lpp/X11/defaults/$LANG/xinitrc. Si dicho script no se encuentra, busca el script deshell /usr/lpp/X11/defaults/xinitrc.

5. El script de shell xinitrc inicia mandatos como, por ejemplo, los mandatos mwm (Gestor de ventanasde AIXwindows), mandatos aixterm y xclock.

El mandato xinit realiza las operaciones siguientes:

• Inicia un Servidor X en la pantalla actual• Establece la variable de entorno $DISPLAY• Ejecuta el archivo xinitrc para iniciar los programas Cliente X

El ejemplo siguiente muestra la parte del archivo xinitrc que puede personalizar:

# /usr/lpp/X11/bin/xinit llama a este script. ...#***************************************************************# Inicie los clientes X. Cambie las siguientes líneas a *# los mandatos que desee. *# Los clientes por omisión son un reloj analógico *# (xclock), un emulador de terminal lft# (aixterm) y *# (mwm). *#****************************************************************exec mwm

Gestión del sistema operativo 337

Page 344: AIX Versión 7 - IBM

Archivo .XdefaultsSi trabaja en una interfaz AIXwindows, puede personalizar esta interfaz con el archivo .Xdefaults.AIXwindows permite especificar las preferencias de las características visuales, por ejemplo, colores yfonts.

La mayor parte de los factores relacionados con el aspecto y el comportamiento de una aplicación basadaen el sistema operativo Windows se controlan por medio de variables denominadas resources. El aspectovisual o de comportamiento de un recurso está determinado por su valor asignado. Existen distintos tiposde valores para los recursos. Por ejemplo, a los recursos que controlan el color pueden asignarse valorescomo DarkSlateBlue o Black. A los recursos que especifican dimensiones se asignan valores numéricos.Algunos recursos toman valores booleanos (True o False).

Si no dispone de un archivo .Xdefaults en el directorio inicial, puede crear uno con cualquier editor detexto. Cuando tenga este archivo en el directorio inicial, puede establecer los valores de los recursos deéste como desee. Existe un archivo por omisión de ejemplo denominado Xdefaults.tmpl en eldirectorio /usr/lpp/X11/defaults.

En el ejemplo siguiente se muestra una parte de un archivo .Xdefaults típico:

*AutoRaise: on*DeIconifyWarp: on*warp:on*TitleFont:andysans12*scrollBar: true*font: Rom10.500Mwm*menu*foreground: blackMwm*menu*background: CornflowerBlueMwm*menu*RootMenu*foreground: blackMwm*menu*RootMenu*background: CornflowerBlueMwm*icon*foreground: grey25Mwm*icon*background: LightGrayMwm*foreground: blackMwm*background: LightSkyBlueMwm*bottomShadowColor: Blue1Mwm*topShadowColor: CornflowerBlueMwm*activeForeground: whiteMwm*activeBackground: Blue1Mwm*activeBottomShadowColor: blackMwm*activeTopShadowColor: LightSkyBlueMwm*border: blackMwm*highlight:white

aixterm.foreground: greenaixterm.background: blackaixterm.fullcursor: trueaixterm.ScrollKey: onaixterm.autoRaise: trueaixterm.autoRaiseDelay: 2aixterm.boldFont:Rom10.500aixterm.geometry: 80x25aixterm.iconFont: Rom8.500aixterm.iconStartup: falseaixterm.jumpScroll: trueaixterm.reverseWrap: trueaixterm.saveLines: 500aixterm.scrollInput: trueaixterm.scrollKey: falseaixterm.title: AIX

Archivo .mwmrcLa mayoría de las funciones que deseará personalizar pueden establecerse con los recursos delarchivo .Xdefaults. Sin embargo, los enlaces de teclas, los enlaces de botones del ratón y lasdefiniciones de los menús del gestor de ventanas se especifican en el archivo .mwmrc complementario, alque los recursos hacen referencia en el archivo .Xdefaults.

Si no dispone de un archivo .mwmrc en el directorio inicial, puede copiarlo como se indica a continuación:

cp /usr/lib/X11/system.mwmrc .mwmrc

338 AIX Versión 7.2: Gestión del sistema operativo

Page 345: AIX Versión 7 - IBM

Puesto que el archivo .mwmrc altera temporalmente los efectos del archivo system.mwmrc en todo elsistema, las especificaciones propias no interferirán con las especificaciones de los otros usuarios.

En el ejemplo siguiente se muestra parte de un archivo system.mwmrc típico:

# ARCHIVO DE DESCRIPCIÓN DE RECURSOS mwm(system.mwmrc)## descripciones de paneles de menú## Descripción del menú raíz

Menu RootMenu{ "Root Menu" f.title no-label f.separator "New Window" f.exec "aixterm &" "Shuffle Up" f.circle_up "Shuffle Down" f.circle_down "Refresh" f.refresh no-label f.separator "Restart" f.restart "Quit" f.quit_mwm}

# Descripción de Menú de Ventanas Por Omisión Menu DefaultWindowMenu MwmWindowMenu{ "Restore" _R Alt<Key>F5 f.normalize "Move" _M Alt<Key>F7 f.move "Size" _S Alt<Key>F8 f.resize "Minimize" _n Alt<Key>F9 f.minimize "Maximize" _x Alt<Key>F10 f.maximize "Lower" _L Alt<Key>F3 f.lower no-label f.separator "Close" _C Alt<Key>F4 f.kill}

# sin menú de ventanas aceleradorasMenu NoAccWindowMenu{ "Restore" _R f.normalize "Move" _M f.move "Size" _S f.resize "Minimize" _n f.minimize "Maximize" _x f.maximize "Lower" _L f.lower no-label f.separator "Close" _C f.kill}

Keys DefaultKeyBindings{ Shift<Key>Escape icon|window f.post_wmenu Meta<Key>space icon|window f.post_wmenu Meta<Key>Tab root|icon|window f.next_key Meta Shift<Key>Tab root|icon|window f.prev_key Meta<Key>Escape root|icon|window f.next_key Meta Shift<Key>Escape root|icon|window f.prev_key Meta Ctrl Shift<Key>exclam root|icon|window f.set_behavior}

## descripciones de enlaces de botones#

Buttons DefaultButtonBindings{ <Btn1Down> frame|icon f.raise <Btn3Down> frame|icon f.post_wmenu <Btn1Down> root f.menu RootMenu <Btn3Down> root f.menu RootMenu Meta<Btn1Down> icon|window f.lower Meta<Btn2Down> window|icon f.resize

Gestión del sistema operativo 339

Page 346: AIX Versión 7 - IBM

Meta<Btn3Down> window f.move}

Buttons PointerButtonBindings{ <Btn1Down> frame|icon f.raise <Btn2Down> frame|icon f.post_wmenu <Btn3Down> frame|icon f.lower <Btn1Down> root f.menu RootMenu Meta<Btn2Down> window|icon f.resize Meta<Btn3Down> window|icon f.move}

## FIN DE ARCHIVO DE DESCRIPCIÓN DE RECURSOS mwm#

Exportación de variables de shell (mandato export shell)Una variable de shell local es una variable que sólo puede reconocer el shell que la ha creado. Si inicia unnuevo shell, dicho shell no conoce las variables del shell antiguo. Si desea que los nuevos shells que abrautilicen las variables de un shell antiguo, exporte las variables para que éstas sean globales.

Para convertirlas en variables globales, puede utilizar el mandato export. Para que las variables del shellsean globales automáticamente, expórtelas en el archivo .profile.

Nota: Las variables se pueden exportar a los shells hijo pero no a los shells padre.

Vea los ejemplos siguientes:

• Para convertir la variable de shell local PATH en global, escriba lo siguiente:

export PATH

• Para listar todas las variables exportadas, escriba lo siguiente:

export

El sistema mostrará una información parecida a esta:

DISPLAY=unix:0EDITOR=viENV=$HOME/.envHISTFILE=/u/denise/.historyHISTSIZE=500HOME=/u/deniseLANG=es_ESLOGNAME=deniseMAIL=/usr/mail/deniseMAILCHECK=0MAILMSG=**YOU HAVE NEW MAIL. USE THE mail COMMAND TO SEE YOUR MAILPATH=/usr/mail/denise?denise has mail !!!MAILRECORD=/u/denise/.OutmailPATH=/usr/ucb:/usr/lpp/X11/bin:/bin:/usr/bin:/etc:/u/denise:/u/denise/bin:/u/bin1PWD=/u/deniseSHELL=/bin/ksh

Cambio del font de por omisión (mandato chfont)Para cambiar el font por omisión durante el arranque del sistema, utilice el mandato chfont o elmandato smit. Una paleta de fonts es un archivo que el sistema utiliza para definir e identificar los fontsde que dispone.

Nota: Para ejecutar el mandato chfont, debe tener autorización de root.

Mandato chfont

Vea los ejemplos siguientes sobre cómo utilizar el mandato chfont:

• Para cambiar el font activo por el quinto font de la paleta de fonts, escriba lo siguiente:

340 AIX Versión 7.2: Gestión del sistema operativo

Page 347: AIX Versión 7 - IBM

chfont -a5

• Para cambiar el font por un tipo de letra en cursiva, roman y en negrita del mismo tamaño, escribalo siguiente:

chfont -n /usr/lpp/fonts/It114.snf /usr/lpp/fonts/Bld14.snf /usr/lpp/fonts/Rom14.snf

mandato smit

El mandato chfont también se puede ejecutar utilizando smit.

Para seleccionar el font activo, escriba lo siguiente:

smit chfont

Para seleccionar la paleta de fonts, escriba lo siguiente:

smit chfontpl

Cambio de las teclas de control (mandato stty)Para cambiar las teclas que el terminal utiliza para teclas de control, utilice el mandato stty.

Los cambios que realice en las teclas de control seguirán en vigor hasta que finalice la sesión. Para quelos cambios sean permanentes, colóquelos en el archivo .profile.

Vea los ejemplos siguientes:

• Para asignar Control-Z como tecla de interrupción, escriba lo siguiente:

stty intr ^Z

Asegúrese de situar un carácter de espacio entre intr y ^Z.• Para restablecer todas las teclas de control a sus valores predeterminados, escriba lo siguiente:

stty sane

• Para visualizar los valores actuales, escriba lo siguiente:

stty -a

Cambio del indicador del sistemaPuede cambiar el indicador del sistema.

El shell utiliza las variables de indicador siguientes:

Elemento Descripción

PS1 Indicador que se utiliza como indicador normal del sistema

PS2 Indicador que se utiliza cuando el shell espera más entrada

PS3 Indicador que se utiliza cuando el usuario dispone de autorización de usuarioroot

Puede cambiar cualquiera de las características del indicador cambiando el valor de su variable de shell.Los cambios que ha realizado en el indicador seguirán en vigor hasta que finalice la sesión. Para que loscambios sean permanentes, colóquelos en el archivo .env .

Vea los ejemplos siguientes:

• Para visualizar el valor actual de la variable PS1, escriba lo siguiente:

echo "El indicador es $PS1"

Gestión del sistema operativo 341

Page 348: AIX Versión 7 - IBM

El sistema mostrará una información parecida a esta:

prompt is $

• Para cambiar el indicador a Ready>, escriba lo siguiente:

PS1="Ready> "

• Para cambiar el indicador de continuación a Enter more->, escriba lo siguiente:

PS2="Enter more->"

• Para cambiar el indicador de root a Root->, escriba lo siguiente:

PS3="Root-> "

Consulta de sistemas BSDEste apéndice está dirigido a los administradores del sistema que están familiarizados con los sistemasoperativos 4.3 BSD UNIX o System V. Esta información explica las diferencias y similitudes entre estossistemas y AIX.

Los temas que se explican en este apéndice son:

Conceptos de BSDAntes de empezar a trabajar con Berkeley Software Distribution (BSD), debe conocer algunas de lasdiferencias entre BSD y AIX.

Introducción a AIX para los gestores del sistema BSDLas siguientes sugerencias pueden ayudar a los gestores del sistema Berkeley Software Distribution(BSD) a empezar la gestión de AIX.

• Empiece por iniciar la sesión como root en la consola gráfica.

• Realice la gestión del sistema desde la consola del sistema hasta que tenga experiencia. Es más fáciltrabajar desde la consola del sistema que desde un terminal remoto. Una vez tenga experiencia con elsistema, puede trabajar remotamente desde un xterm o un terminal ASCII.

• Aproveche las ventajas de los distintos recursos de AIX para las tareas de gestión del sistema.Incluyen:

– System Management Interface Tool (SMIT). SMIT proporciona una interfaz entre los gestores delsistema y los mandatos de configuración y gestión. SMIT puede ayudar a los gestores del sistema arealizar la mayoría de tareas de administración del sistema.

– Gestor de Datos Objeto (ODM). ODM proporciona rutinas que acceden a objetos de las bases dedatos ODM. Las bases de datos ODM contienen información de configuración de dispositivo.

– Controlador de Recursos del Sistema (SRC). SRC proporciona el acceso y control de daemons y otrosrecursos del sistema mediante una sola interfaz.

Conceptos relacionadosControlador de recursos del sistemaEl Controlador de recursos del sistema (SRC) proporciona un conjunto de mandatos y subrutinas parafacilitar la creación y control de subsistemas al gestor y programador del sistema.Información relacionadaConfiguración de un gran número de dispositivos

Principales diferencias entre 4.3 BSD y AIXA continuación se presenta un resumen de las principales diferencias entre los sistemas AIX y 4.3 BSD.

342 AIX Versión 7.2: Gestión del sistema operativo

Page 349: AIX Versión 7 - IBM

En AIX, los daemons de red se inician desde el archivo /etc/rc.tcpip, no desde el archivo /etc/rc.local. El script de shell /etc/rc.tcpip se invoca desde el archivo /etc/inittab, no desde elarchivo /etc/rc.

Si el Controlador de Recursos del Sistema (SRC) está en ejecución, los daemons TCP/IP se ejecutan bajoel control de SRC. Si no desea que los daemons TCP/IP se ejecuten bajo el control de SRC, utilice la víarápida smit setbootup_option para cambiar el sistema a la configuración rc de estilo BSD.

AIX soporta estas funciones de gestión de red disponibles en 4.3 BSD:

• Recursos de inicio de sesión SYSLOG a nivel de kernel• Derechos de acceso para zócalos de dominio UNIX.

Almacenamiento de datos de configuración

Normalmente, 4.3 BSD almacena los datos de configuración en archivos ASCII. Los fragmentos deinformación relacionados se conservan en la misma línea y se puede realizar el proceso de registros(clasificación y búsqueda) en el propio archivo ASCII. Los registros pueden variar de longitud y seterminan en un salto de línea. 4.3 BSD proporciona herramientas para convertir los archivos ASCIIpotencialmente grandes en formato de base de datos (dbm). Las funciones de biblioteca importantesbuscan en el par de archivos dbm si existen, pero buscan en el archivo ASCII original si no seencuentran los archivos dbm.

Algunos datos de configuración para AIX se almacenan en archivos ASCII, pero con frecuencia en unformato de stanza. Una stanza es un conjunto de fragmentos de información relacionadosalmacenados en un grupo de varias líneas. Cada fragmento de información tiene una etiqueta paraque se pueda comprender mejor el contenido.

AIX también soporta versiones dbm de la información de contraseña y usuario. Además, losarchivos /etc/passwd, /etc/group y /etc/inittab son ejemplos de archivos para AIX donde lainformación se almacena en formato tradicional en lugar de formato de stanza.

Otros datos de configuración para AIX se almacenan en archivos mantenidos por el Gestor de DatosObjeto (ODM). System Management Interface Tool (SMIT) puede manipular y mostrar información enarchivos ODM. Alternativamente, puede utilizar mandatos ODM directamente para ver estos archivos.Para consultar los archivos ODM, utilice los mandatos siguientes:

• odmget• odmshow.

Los siguientes mandatos ODM modifican los archivos ODM:

• odmadd• odmcreate• odmdrop• odmchange• odmdelete.

Atención: La modificación de archivos ODM puede dar lugar a que el sistema falleincorrectamente, y puede impedirle reiniciar el sistema satisfactoriamente. Utilice únicamentemandatos ODM directamente en archivos ODM cuando los mandatos específicos de la tarea,como los generados por SMIT, no sean satisfactorios.

Gestión de configuración

Cuando se inicia un sistema que ejecuta AIX, el Gestor de configuración invoca un conjunto demandatos específicos de la configuración. Estos mandatos específicos de la configuración sedenominan métodos. Los métodos identifican los dispositivos del sistema y actualizan los archivosODM adecuados en el directorio /etc/objrepos.

Los archivos especiales de dispositivo directamente en /dev, no están preinstalados. Algunosarchivos especiales como, por ejemplo, para discos duros, se crean automáticamente durante elproceso de configuración de arranque. Otros archivos especiales, como aquello para terminales

Gestión del sistema operativo 343

Page 350: AIX Versión 7 - IBM

ASCII, debe crearlos el administrador del sistema utilizando el menú Dispositivos de SMIT. Estainformación se mantiene en el ODM para que el sistema la pueda utilizar más tarde.

Gestión de discos

En AIX, las unidades de disco se denominan volúmenes físicos. Se hace referencia a las particionescomo volúmenes lógicos. Igual que en 4.3 BSD, un solo volumen físico puede tener múltiplesvolúmenes lógicos. Sin embargo, a diferencia de 4.3 BSD, un solo volumen lógico de AIX puedeabarcar múltiples volúmenes físicos. Para ello, debe convertir varios volúmenes físicos en un grupo devolúmenes y crear volúmenes lógicos en el grupo de volúmenes.

Los mandatos de AIX utilizados para el sistema de archivos y la gestión de volúmenes incluyen:

• crfs• varyonvg• varyoffvg• lsvg• importvg• exportvg.

Los siguientes mandatos 4.3 BSD también están disponibles:

• mkfs• fsck• fsdb• mount• umount.

Las diferencias entre estos mandatos para 4.3 BSD y para AIX se explican en el apartado “Sistemasde archivos para gestores del sistema BSD 4.3” en la página 364.

4.3 BSD mantiene una lista de sistemas de archivos en el archivo /etc/fstab. AIX mantiene unastanza para cada sistema de archivos del archivo /etc/filesystems.

Mandato tn3270

El mandato tn3270 es un enlace con el mandato telnet, pero utiliza el archivo /etc/map3270 y elvalor de variable de entorno TERM para proporcionar las correlaciones de teclado 3270. Por lo tanto,el mandato tn3270 funciona exactamente como la versión BSD.

Si desea cambiar las secuencias de escape de los valores predeterminados utilizados por losmandatos tn3270, telnet o tn, establezca la variable de entorno TNESC antes de iniciar estosmandatos.

Nuevos mandatosPara manejar la nueva configuración y los sistemas de gestión de disco, AIX tiene aproximadamente150 mandatos nuevos para los administradores de 4.3 BSD.

ArranqueAIX soporta la identificación y configuración automática de los dispositivos. En consecuencia, elproceso de arranque es muy diferente de los sistemas 4.3 BSD. Además del kernel, una imagen de unsistema de archivos de arranque y la información de configuración de dispositivo base anterior secarga en un disco de RAM. En la primera fase del arranque, se carga suficiente información deconfiguración y se comprueba para permitir el acceso a volúmenes lógicos. Se identifica el dispositivode espacio de paginación en el kernel y se comprueba el sistema de archivos raíz del disco duro. Eneste momento, el sistema operativo cambia el sistema de archivos raíz del disco RAM al disco duro yse completa el procedimiento de arranque, incluyendo la configuración de los demás dispositivos.

344 AIX Versión 7.2: Gestión del sistema operativo

Page 351: AIX Versión 7 - IBM

Autorización de usuario

Los sistemas operativos 4.3 BSD y versiones de AT&T UNIX anteriores a SVR4, almacenan toda lainformación de autentificación de usuario, incluyendo las contraseñas cifradas, en el archivo /etc/passwd. Tradicionalmente, todos podían leer el archivo /etc/passwd.

En sistemas SVR4, las contraseñas cifradas se eliminan del archivo /etc/passwd y se almacenan enel archivo /etc/shadow. Sólo los usuarios con autorización de root y los programas fiables (porejemplo, el programa /bin/login) pueden leer el archivo /etc/shadow.

AIX almacena las contraseñas cifradas en el archivo /etc/security/passwd. Otros archivos deldirectorio /etc/security son user y limits. Estos tres archivos definen la manera en que elusuario tiene permitido acceder al sistema (por ejemplo, utilizando los mandatos rlogin o telnet)y los límites de recursos del usuario (por ejemplo, el tamaño de archivo y el espacio de direcciones).

Impresión

Están soportados la mayoría de mandatos de impresión de 4.3 BSD con leves diferencias. Unadiferencia es que el archivo /etc/qconfig es el archivo de configuración en AIX.

El sistema de impresión de líneas para AIX puede interoperar con el sistema de impresión de líneasde 4.3 BSD, tanto para someter trabajos de impresión a sistemas 4.3 BSD como para imprimirtrabajos de impresión sometidos desde un sistema 4.3 BSD.

Shells

AIX soporta el shell Bourne, el shell C y el shell Korn. El nombre completo de vía de acceso para elprograma de shell Bourne es /bin/bsh. El archivo /bin/sh es un enlace fijo para el archivo /bin/ksh. El administrador puede cambiar este archivo.

AIX no soporta setuid ni setgid para los scripts de shell en ningún shell.

Nota:

1. AIX no tiene scripts de shell que se basen en /bin/sh. Sin embargo, muchos scripts de shell deotros sistemas se basan en /bin/sh como shell Bourne.

2. Aunque el shell Bourne y el shell Korn sean similares, éste no es un superconjunto perfecto delshell Bourne.

Referencia relacionadaMandatos de administración del sistema para gestores del sistema BSD 4.3Esta lista contiene mandatos que sirven específicamente para administrar el entorno para AIX.

Tabla de comparación de archivos para 4.3 BSD, SVR4 y AIXLa tabla siguiente compara los nombres de archivos y funciones entre 4.3 BSD, SVR4 y AIX.

Tabla 62. Tabla de comparación de archivos

Archivo 4.3 BSD Archivo SVR4 Archivo para AIX Base de datos Tipo (odm/dbm)

L-Devices Devices Devices no

L-dialcodes Dialcodes Dialcodes no

L.cmds Permissions Permissions no

L.sys Systems Systems no

USERFILE Permissions Permissions no

aliases mail/namefiles

aliases aliasesDB/DB dbm

fstab vfstab filesystems no

ftpusers ftpusers ftpusers no

Gestión del sistema operativo 345

Page 352: AIX Versión 7 - IBM

Tabla 62. Tabla de comparación de archivos (continuación)

Archivo 4.3 BSD Archivo SVR4 Archivo para AIX Base de datos Tipo (odm/dbm)

gettytab N/D

group group group no

hosts hosts hosts no

hosts.equiv hosts.equiv hosts.equiv no

inetd.conf inetd.conf inetd.conf no

map3270 N/D map3270 no

motd motd motd no

mtab mnttab N/D no

named.boot named.boot named.boot no

named.ca named.ca no

named.hosts named.data (Véase nota) no

named.local named.local no

named.pid named.pid named.pid no

named.rev named.rev no

networks networks networks no

passwd passwd passwd no

printcap qconfig qconfig

protocols protocols no

remote remote remote no

resolv.conf resolv.conf resolv.conf no

sendmail.cf sendmail.cf sendmail.cf sendmail.cfDB neither

services services no

shells shells N/D

stab N/D

syslog.conf syslog.conf no

syslog.pid syslog.pid no

termcap terminfo terminfo

ttys ttys N/D sí odm

types N/D

utmp utmp utmp

vfont N/D

vgrindefs vgrindefs

wtmp wtmp wtmp

346 AIX Versión 7.2: Gestión del sistema operativo

Page 353: AIX Versión 7 - IBM

Nota: Los nombres de archivos named.ca, named.hosts, named.local y named.rev se puedendefinir por el usuario en el archivo named.boot. Sin embargo, son los nombres utilizados para estosarchivos en la documentación de AIX.

Resolución de nombre y direcciónLas subrutinas gethostbyname y gethostbyaddr de la biblioteca libc proporcionan soporte para elServicio de nombres de dominio, los Servicios de información de red (NIS, anteriormente Páginasamarillas) y la base de datos /etc/hosts.

Si existe el archivo /etc/resolv.conf, el servidor de nombres siempre se comprueba primero. Si elnombre no se resuelve y NIS está en ejecución, se comprueba NIS. Si NIS no está en ejecución, secomprueba el archivo /etc/hosts.

Documentación en línea y mandato man para gestores del sistema BSD 4.3AIX soporta los mandatos man-k, apropos y whatis, pero primero se debe crear la base de datosutilizada por estos mandatos con el mandato catman-w.

El mandato man busca en primer lugar páginas de texto plano en los archivos /usr/man/cat? . Después,busca páginas con formato nroff en archivos /usr/man/man? . Las nuevas páginas man se puedenañadir en texto plano o formato nroff.

Nota:

• Las páginas de texto del mandato man no se proporcionan con el sistema. El mandato catman crea labase de datos a partir de estas páginas de texto. Estas páginas pueden ser páginas de texto planasalmacenadas en los archivos /usr/man/cat? o páginas formateadas en nroff almacenadas en losarchivos /usr/man/man? .

• Debe estar instalado el programa bajo licencia Formateo de texto a fin de que el mandato nroff estédisponible para que el mandato man lea páginas man formateadas en nroff.

Para obtener más información acerca de estos mandatos, consulte man, apropos, whatis y catman.

NFS y NIS (anteriormente Páginas Amarillas) para gestores del sistema BSD 4.3A continuación se describen NFS y NIS para gestores del sistema BSD 4.3.

Los daemons de Network File System (NFS) y Network Information Services (NIS) se inician desde elarchivo /etc/rc.nfs. Sin embargo, antes de que los daemons NFS y NIS se puedan iniciar, se debeiniciar el daemon portmap en el archivo /etc/rc.tcpip. De forma predeterminada, el archivo /etc/inittab no invoca el archivo /etc/rc.nfs. Si añade una línea al archivo /etc/inittab para invocarel script /etc/rc.nfs, se debe invocar después del script /etc/rc.tcpip.

Si NIS está activo, incluya una entrada de root antes de la entrada +:: (signo más, dos puntos, dospuntos) en el archivo /etc/passwd y una entrada del sistema antes de la entrada +:: en elarchivo /etc/group. Esto permite al administrador del sistema iniciar la sesión como root y realizarcambios si el sistema no se puede comunicar con el servidor NIS.

NFS se puede configurar utilizando la vía rápida de SMIT, smit nfs. Los menús del y SMIT hacenreferencia a NIS (anteriormente Páginas Amarillas) como NIS. Muchos de los mandatos de NFS y NIS seencuentran en los directorios /etc y /usr/etc.

Algunos entornos NFS utilizan un mandato arch para identificar las familias de máquinas y tipos demáquinas. Por ejemplo, si utiliza IBM RS/6000, especifique el identificador power para la familia (CPU) yel identificador ibm6000 para el tipo (máquina).

Contraseñas de usuario para gestores del sistema BSD 4.3Cuando se utiliza el mandato /bin/passwd para AIX como usuario root, se solicita la contraseña deusuario root actual.

Un ejemplo de utilización del mandato /bin/passwd es el siguiente:

# passwd cslaterChanging password for "cslater"Enter root's Password orcslater's Old password:

Gestión del sistema operativo 347

Page 354: AIX Versión 7 - IBM

cslater's New password:Re-enter cslater'snew password:#

La versión 4.3 BSD no solicita la contraseña de usuario root actual. Un ejemplo de la versión 4.3 BSD es elsiguiente:

# passwd cslaterNew password:Retype new password:#

Administración de BSDExisten varios mandatos para BSD que puede utilizar para medir el rendimiento, imprimir y gestionar elsistema.

Contabilidad para los gestores del sistema BSD 4.3Los archivos de contabilidad del directorio /usr/lib/acct y las herramientas de informe de la actividaddel sistema del directorio /usr/lib/sa para AIX son idénticos a los disponibles con AT&T System VRelease 4 (SVR4) con la adición de los programas de utilidad de contabilidad de 4.3 BSD.

Muchos mandatos de contabilidad se encuentran en el directorio /usr/lib/acct. Para iniciar lacontabilidad del sistema, utilice el mandato /usr/lib/acct/startup. Si no se inicia la contabilidad,los mandatos como lastcomm(1) no pueden devolver información.

AIX proporciona estos recursos de contabilidad 4.3 BSD:

Elemento Descripción

last(1) Indica los últimos inicios de sesión de usuarios y terminales

lastcomm(1) Muestra los últimos mandatos ejecutados, por orden invertido

acct(3) Habilita e inhabilita la contabilidad de procesos

ac(8) Contabilidad de inicio de sesión

accton(8) Activa o desactiva la contabilidad del sistema

sa(8) Generalmente mantiene archivos de contabilidad del sistema.

AIX también proporciona estos mandatos de contabilidad y funciones de biblioteca de System V InterfaceDefinition (SVID) Issue II:

Elemento Descripción

acctcms(1) Produce resúmenes del uso de mandatos a partir de registros de contabilidad

acctcom(1) Visualiza resúmenes de registros de contabilidad de procesos seleccionados

acctcon1(1) Convierte registros de inicio/fin de sesión en registros de sesión

acctcon2(1) Convierte registros de inicio/fin de sesión en registros totales de contabilidad

acctdisk(1) Genera registros de totales de contabilidad a partir de la salida del mandatodiskusg(1)

acctmerg(1) Fusiona archivos de totales de contabilidad en un archivo intermedio

accton(1) Activa la contabilidad

acctprc1(1) Procesa la información de contabilidad del mandato acct(3)

acctprc2(1) Procesa la salida del mandato acctprc1(1) en registros de totales decontabilidad

acctwtmp(1) Manipula los registros de contabilidad de tiempo de conexión

348 AIX Versión 7.2: Gestión del sistema operativo

Page 355: AIX Versión 7 - IBM

Elemento Descripción

chargefee(1) Efectúa cargos en el nombre de inicio de sesión

ckpacct(1) Comprueba el tamaño del archivo /usr/adm/pacct

diskusg(1) Genera información de contabilidad de disco

dodisk(1) Realiza la contabilidad de disco

fwtmp(1) Convierte registros binarios (archivo wtmp) en ASCII formateado.

Nota: El archivo wtmp se encuentra en el directorio /var/adm.

lastlogin(1) Actualiza la última fecha en que cada persona ha iniciado la sesión.

monacct(1) Crea archivos de resumen mensuales

prctmp(1) Imprime el archivo de registros de sesión producido por el mandatoacctcon1(1)

prdaily(1) Formatea un informe de la información de contabilidad del día anterior

prtacct(1) Formatea e imprime cualquier archivo de totales de contabilidad

runacct(1) Ejecuta la contabilidad diaria

shutacct(1) El cierre del sistema lo llama para detener la contabilidad y registrar la razón

startup(1) La inicialización del sistema lo llama para iniciar la contabilidad

turnacct(1) Activa o desactiva la contabilidad de procesos

wtmpfix(1) Corrige las indicaciones de fecha y hora de un archivo utilizando el formatowtmp

Copia de seguridad para los gestores del sistema BSD 4.3Los gestores del sistema BSD 4.3 pueden hacer copia de seguridad de datos.

Los mandatos tar y cpio pueden mover datos entre sistemas. El mandato tar para AIX no escompletamente compatible con el mandato tar de 4.3 BSD. El mandato tar para AIX necesita eldistintivo -B (bloqueo de entrada) si lee un conducto. El mandato cpio de AT&T es compatible con estaversión.

AIX puede leer y grabar en formato de mandato dump y restore. Por ejemplo, el mandato backup paraAIX con la sintaxis:

backup -0uf Device NombreSistemaArchivos

es igual al mandato dump de 4.3 BSD con la sintaxis:

dump 0uf Device NombreSistemaArchivos

De forma similar, el mandato restore para AIX con la sintaxis:

restore -mivf Device

es igual que el mandato restore de 4.3 BSD con la sintaxis:

restore ivf Device

Gestión del sistema operativo 349

Page 356: AIX Versión 7 - IBM

AIX también tiene los mandatos rdump y rrestore de 4.3 BSD. La única diferencia entre las dosversiones es que en AIX, cada argumento debe ir precedido por un carácter - (guión). Por ejemplo, elmandato siguiente:

rdump -0 -f orca:/dev/rmt0 /dev/hd2

es equivalente al mandato de 4.3 BSD:

rdump 0f orca:/dev/rmt0 /dev/hd2

El mandato backup para AIX con la sintaxis siguiente:

backup -0f /dev/rmt0 /dev/hd2

es equivalente al mandato dump de 4.3 BSD con esta sintaxis:

dump 0f /dev/rmt0 /dev/hd2

Soporte de cintas SCSI distinto de IBM

AIX no soporta directamente unidades de cintas SCSI no IBM. Sin embargo, puede añadir su propiacabecera e interfaz que utilizan el controlador SCSI de IBM.

Conceptos relacionadosCopia de seguridad del sistemaUna vez que el sistema esté en marcha, la siguiente consideración que debe tener en cuenta debe serhacer copia de seguridad de los sistemas de archivos, directorios y archivos. Si hace copia de seguridadde los sistemas de archivos, puede restaurar los archivos o los sistemas de archivos en caso de que eldisco duro se cuelgue. Hay métodos diferentes para hacer copia de seguridad de la información.Información relacionadaAdición de un dispositivo no soportado al sistema

Arranque para gestores del sistema BSD 4.3A continuación se explica el arranque del sistema AIX para los gestores del sistema BSD 4.3.

En los sistemas 4.3 BSD, el programa init es el último paso del procedimiento de arranque. La funciónprincipal del programa init es crear procesos para cada puerto de terminal disponible. Los puertos determinal disponibles se encuentran leyendo el archivo /etc/ttys.

En System V, el programa init se inicia en la inicialización del sistema. El proceso init inicia procesosde acuerdo a las entradas del archivo /etc/inittab.

AIX sigue el procedimiento de inicialización de System V. Puede editar el archivo /etc/inittabeditando directamente el archivo, utilizando el mandato telinit o utilizando los mandatos siguientes:

Elemento Descripción

chitab(1) Cambia los registros del archivo /etc/inittab

lsitab(1) Lista los registros del archivo /etc/inittab

mkitab(1) Crea registros en el archivo /etc/inittab

rmitab(1) Elimina registros del archivo /etc/inittab

Los cambios realizados en el archivo /etc/inittab surten efecto la próxima vez que se rearranca elsistema, o cuando se ejecuta el mandato telinit q.

Búsqueda y examen de archivos para gestores del sistema BSD 4.3La siguiente lista relaciona los mandatos del archivo BSD que AIX soporta.

AIX soporta los siguientes mandatos de archivo 4.3 BSD:

• which

350 AIX Versión 7.2: Gestión del sistema operativo

Page 357: AIX Versión 7 - IBM

• whereis• what• file.

AIX no soporta la sintaxis fast find del mandato find de 4.3 BSD. En este momento, no existe función desustitución. Se puede utilizar el siguiente script de shell ffind para simular la funcionalidad:

#!/bin/bshPATH=/binfor dir in /bin /etc /lib /usrdofind $dir -print | egrep $1done

La sintaxis para el script ffind es:

ffind NombreArchivo

Espacio de paginación para gestores del sistema BSD 4.3Los siguientes mandatos ayudan a gestionar el espacio de paginación (también denominado espacio deintercambio).

Elemento Descripción

chps(1) Cambia los atributos de un espacio de paginación

lsps(1) Lista los atributos de un espacio de paginación

mkps(1) Añade un espacio de paginación adicional al sistema

rmps(1) Elimina un espacio de paginación del sistema

swapoff(1) Desactiva uno o varios espacios de paginación

swapon(1) Especifica dispositivos adicionales para la paginación y el intercambio

Si se necesita un espacio de paginación grande, coloque un volumen lógico de paginación para cada discoduro. Esto permite la planificación de la paginación a través de múltiples unidades de disco.

Cambio del arranque predeterminado para permitir la configuración ASCII de 4.3 BSDPuede administrar las interfaces de red para AIX mediante SMIT y archivos ODM, o mediante archivos deconfiguración ASCII de 4.3 BSD.

Para administrar las interfaces de red mediante archivos de configuración ASCII de 4.3 BSD, quite lamarca de comentario de los mandatos del archivo /etc/rc.net que se encuentran bajo la cabecera:

# Part II - TraditionalConfiguration

Después si desea la configuración de archivos planos y el soporte de SRC, edite el archivo /etc/rc.nety quite la marca de comentario de los mandatos hostname, ifconfig y route con los parámetrosadecuados.

Si desea la configuración de archivos planos sin el soporte de SRC, utilice la vía rápida smitsetbootup_option para cambiar el sistema a la configuración rc de estilo BSD. Esta opción configura elsistema para que utilice el archivo /etc/rc.bsdnet en el arranque. También tiene que editar elarchivo /etc/rc.bsdnet y quitar la marca de comentario de los mandatos hostname, ifconfig yroute con los parámetros adecuados.

Opciones adicionales para los mandatos ifconfig y netstatLa siguiente lista indica las opciones adicionales para los mandatos ifconfig y netstat.

El mandato ifconfig para AIX tiene las opciones adicionales siguientes:

Gestión del sistema operativo 351

Page 358: AIX Versión 7 - IBM

mtuLa variable mtu especifica la unidad de transmisión máxima (MTU) utilizada en la red local (y lassubredes locales) y la MTU utilizada para redes remotas. Para maximizar la compatibilidad conEthernet y otras redes, establezca el valor predeterminado de mtu de Red en Anillo y Ethernet en1500.

allcastEl distintivo allcast establece la estrategia de difusión de Red en Anillo. El establecimiento deldistintivo allcast optimiza la conectividad a través de puentes de Red en Anillo. Si se borra eldistintivo allcast (especificando -allcast) se minimiza el exceso de tráfico en el anillo.

El mandato netstat para AIX tiene el distintivo -v. El mandato netstat -v imprime las estadísticas delcontrolador como, por ejemplo, el número de bytes de transmisión, el número de errores de transmisión,el número de bytes de recepción y el número de errores de recepción. Para obtener más informaciónacerca de los mandatos ifconfig y netstat, consulte ifconfig y netstat.

Mandatos adicionales de gestión de redLos siguientes mandatos adicionales están soportados en AIX.

Elemento Descripción

securetcpip El script de shell securetcpip habilita la modalidad de acceso controlado,que proporciona una seguridad de red mejorada. No permite la ejecución devarios programas TCP/IP no seguros como, por ejemplo, tftp, rcp, rloginy rsh. También restringe el uso del archivo .netrc.

gated El mandato gated proporciona el soporte de MIB para SNMP.

352 AIX Versión 7.2: Gestión del sistema operativo

Page 359: AIX Versión 7 - IBM

Elemento Descripción

no El mandato no establece opciones de red que incluyen:dogticks

Establece la granularidad del temporizador para rutinas ifwatchdogsubnetsarelocal

Determina si la dirección del paquete se encuentra en la red localipsendredirects

Especifica si el kernel debe enviar señales de redirecciónipforwarding

Especifica si el kernel debe reenviar paquetestcp_ttl

Especifica el tiempo-de-vida para paquetes de Transmission ControlProtocol (TCP)

udp_ttlEspecifica el tiempo-de-vida para los paquetes de User DatagramProtocol (UDP)

maxttlEspecifica el tiempo-de-vida para paquetes de Routing InformationProtocol (RIP)

ipfragttlEspecifica el tiempo-de-vida para fragmentos de Internet Protocol (IP)

lowclustEspecifica el nivel mínimo para la agrupación mbuf de clústeres

lowmbufEspecifica un nivel mínimo para la agrupación mbuf

thewallEspecifica la cantidad máxima de memoria que se asigna a mbuf y a laagrupación mbuf de clústeres

arpt_killcEspecifica el tiempo en minutos que debe transcurrir para suprimir unaentrada de Protocolo de resolución de direcciones (ARP) inactiva

iptrace El mandato iptrace proporciona el rastreo de paquetes a nivel de interfazpara protocolos de Internet.

ipreport El mandato ipreport formatea el rastreo en un formato que las personaspueden leer. Un ejemplo de la utilización de este mandato es el siguiente:

iptrace -i en0 /tmp/iptrace.log# kill iptrace daemonkill `ps ax | grep iptrace | awk '{ print $1 }'`ipreport /tmp/iptrace.log | more

Importación de un archivo de contraseñas de BSD 4.3Puede importar un archivo de contraseñas de BSD 4.3 a AIX.

Para importar un archivo de contraseñas de BSD 4.3, siga los pasos siguientes:

1. Copie el archivo de contraseñas de BSD 4.3 en el archivo /etc/passwd y especifique:

pwdck -y ALL

2. Actualice el archivo /etc/security/limits con una stanza nula para cualquier usuario nuevo.

Gestión del sistema operativo 353

Page 360: AIX Versión 7 - IBM

El mandato usrck realiza esta acción, pero el uso del mandato usrck puede provocar problemas amenos que se importe el archivo /etc/group con el archivo /etc/passwd. Para obtener másinformación acerca del mandato usrck, consulte usrck.

Atención: Si se modifica el archivo /etc/security/limits, la pila no debe exceder de65.536 bytes. Si es mayor, la ejecución del mandato usrck puede provocar problemas.Cambie el tamaño de pila por 65.536 y ejecute el mandato usrck de nuevo.

3. Ejecute los mandatos grpck y usrck para verificar los atributos de grupo y usuario.

Edición del archivo de contraseñas para gestores del sistema BSD 4.3La siguiente explicación indica cómo cambiar las entradas del archivo de contraseñas y cómo administrarlas contraseñas en AIX de manera BSD 4.3.

En AIX, se proporcionan los mandatos lsuser, mkuser, chuser y rmuser para gestionar lascontraseñas. Todos estos mandatos se pueden utilizar mediante la ejecución de SMIT. Sin embargo,todos estos mandatos sólo tratan un usuario cada vez.

Para obtener más información acerca de estos mandatos, consulte lsuser, mkuser, chuser y rmuser.

Nota: La utilización de un editor para cambiar varias entradas de nombres de usuario a la vez necesita laedición de varios archivos simultáneamente, porque estas contraseñas están almacenadas en elarchivo /etc/security/passwd, la información de autorización se almacena en el archivo /etc/security/user y el resto de los datos de usuario se almacena en el archivo /etc/passwd.

AIX no soporta el mandato vipw pero soporta el mandato mkpasswd. Sin embargo, todavía puedeadministrar contraseñas en AIX de manera BSD 4.3. Utilice el procedimiento siguiente:

1. Coloque un archivo de contraseñas BSD 4.3 en el archivo /etc/shadow.2. Cambie los permisos para el archivo especificando:

chmod 000 /etc/shadow

3. Coloque el siguiente script de shell vipw en el directorio /etc:

---------------------------------------------------------#!/bin/bsh## vipw. Uses pwdck for now. May use usrck someday#PATH=/bin:/usr/bin:/etc:/usr/ucb # Add to this if your editor is # some place elseif [ -f /etc/ptmp ] ; then echo "/etc/ptmp exists. Is someone else using vipw?" exit 1fiif [ ! -f /`which "$EDITOR" | awk '{ print $1 }'` ] ; then EDITOR=vificp /etc/shadow /etc/ptmpif (cmp /etc/shadow /etc/ptmp) ; then $EDITOR /etc/ptmpelse echo cannot copy shadow to ptmp exit 1fiif (egrep "^root:" /etc/ptmp >/dev/null) ; then cp /etc/ptmp /etc/shadow ; cp /etc/ptmp /etc/passwd chmod 000 /etc/passwd /etc/shadow pwdck -y ALL 2>1 >/dev/null # return code 114 may change rc=$? if [ $rc -eq 114 ]; then chmod 644 /etc/passwd rm -f /etc/passwd.dir /etc/passwd.pag mkpasswd /etc/passwd # update /etc/security/limits, or ftp # will fail else pwdck -y ALL fielse

354 AIX Versión 7.2: Gestión del sistema operativo

Page 361: AIX Versión 7 - IBM

echo bad entry for root in ptmpfirm /etc/ptmp-----------------------------------------------------------

4. Si utiliza el script de shell vipw o el mandato mkpasswd, tenga en cuenta que SMIT, y los mandatosmkuser, chuser y rmuser no utilizan el mandato mkpasswd. Debe ejecutar:

mkpasswd /etc/passwd

para actualizar los archivos /etc/passwd.dir y /etc/passwd.pag.

Atención: La inicialización de la variable IFS y las sentencias trap protegen contra algunos delos métodos comunes utilizados para explotar los vacíos de seguridad inherentes en lacaracterística setuid. Sin embargo, los scripts de shell vipw y passwd están pensados paraentornos relativamente abiertos donde la compatibilidad es un punto importante a considerar.Si desea un entorno más seguro, utilice solamente los mandatos estándar para AIX.

5. Coloque el siguiente script de shell passwd en el directorio /usr/ucb:

-----------------------------------------------------#!/bin/ksh## matches changes to /etc/security/passwd file with changes to#/etc/shadow#IFS=" "PATH=/bintrap "exit 2" 1 2 3 4 5 6 7 8 10 12 13 14 15 16 17 18 21 22 \ 23 24 25 27 28 29 30 31 32 33 34 35 36 60 61 62if [ -n "$1" ]; then USERNAME=$1else USERNAME=$LOGNAMEfiif [ -f /etc/ptmp ]; then echo password file busy exit 1fi trap "rm /etc/ptmp; exit 3" 1 2 3 4 5 6 7 8 10 12 13 \ 14 15 16 17 18 21 22 23 24 25 27 28 29 30 31 \ 32 33 34 35 36 60 61 62if (cp /etc/security/passwd /etc/ptmp) ; then chmod 000 /etc/ptmp else rm -f /etc/ptmp exit 1fiif ( /bin/passwd $USERNAME ) ; then PW=` awk ' BEGIN { RS = "" } $1 == user { print $4 } ' user="$USERNAME:" \/etc/security/passwd `else rm -f /etc/ptmp exit 1firm -f /etc/ptmpawk -F: '$1 == user { print $1":"pw":"$3 ":"$4":"$5":"$6":"$7 } $1 != user { print $0 }' user="$USERNAME" pw="$PW" \ /etc/shadow > /etc/ptmpchmod 000 /etc/ptmpmv -f /etc/ptmp /etc/shadow---------------------------------------------------------

6. Cambie los permisos para el script passwd especificando:

chmod 4711 /usr/ucb/passwd

7. Asegúrese de que cada variable de entorno PATH del usuario especifica el directorio /usr/ucb en elque se debe buscar antes del directorio /bin.

Medición y ajuste del rendimiento para gestores del sistema BSD 4.3A continuación se explican los atributos de dispositivo AIX y la medición y ajuste del rendimiento.

Gestión del sistema operativo 355

Page 362: AIX Versión 7 - IBM

Todos los dispositivos de AIX tienen atributos asociados. Para ver los atributos de dispositivo,especifique:

lsattr -E -l nombredispositivo

Cualquier atributo con el valor True se puede modificar con el mandato:

chdev -l nombredispositivo -a attr=value

Atención: El cambio incorrecto de parámetros de dispositivo puede dañar el sistema.

De forma predeterminada, el número máximo de procesos por usuario es 40. El valor predeterminadopuede ser muy bajo para los usuarios que tienen muchas ventanas abiertas simultáneamente. El mandatosiguiente se puede utilizar para cambiar el valor en todo el sistema:

hdev -l sys0 -a maxuproc=100

Este ejemplo cambia el número máximo a 100. El nuevo valor se establece al reiniciar el sistema.

Para ver el valor actual de este y de otros atributos del sistema, escriba:

lsattr -E -l sys0

El atributo maxmbuf no está soportado actualmente por los servicios mbuf.

AIX soporta los mandatos vmstat y iostat, pero no el mandato systat ni promedios de carga. Paraobtener más información acerca de estos mandatos, consulte vmstat y iostat.

Impresora para gestores del sistema BSD 4.3El sistema operativo AIX soporta dos subsistemas de impresión: 4.3 BSD y System V.

El estilo System V de subsistema de impresión utiliza los mandatos, las colas y los archivos de System VRelease 4, y se administra del mismo modo. Los siguientes párrafos describen lo que necesita paragestionar el subsistema de impresión de estilo 4.3 BSD. El subsistema que se activa se controla medianteSMIT. Sólo puede estar activo un sistema a la vez.

La impresión se gestiona por programas y configuraciones del directorio /usr/lpd. El diseño, laconfiguración, el mecanismo de puesta en cola y los procesos de daemon de 4.3 BSD y los subsistemasde impresora para AIX son diferentes. Sin embargo, ambos utilizan el protocolo lpd para la impresiónremota. Ambos sistemas utilizan /etc/hosts.lpd, si existe o, de lo contrario, /etc/host.equiv. Elsubsistema de impresora para AIX ofrece una pasarela para subsistemas de impresora 4.3 BSD, por loque los sistemas que utilizan AIX pueden someter trabajos de impresión a sistemas 4.3 BSD y aceptartrabajos de impresión sometidos por sistemas 4.3 BSD.

El archivo /etc/printcap de 4.3 BSD no existe en AIX. Este archivo es una combinación de laconfiguración de spooler y la base de datos de posibilidades de impresora. Los usuarios debencomprender el formato y las palabras clave del archivo printcap para configurar correctamente unaimpresora.

El archivo /etc/qconfig de AIX sólo contiene la información de configuración de spooler. Lasposibilidades de la impresora se definen en la base de datos ODM predefinida o personalizada. Puedeutilizar el mandato mkvirprt (crear impresora virtual) para definir las posibilidades de una impresoradeterminada en el sistema.

Para que la impresora lp0 esté disponible para imprimir en el sistema principal remoto viking, coloque losiguiente en un archivo /etc/printcap del sistema BSD:

lp0|Print on remote printer attached toviking:Z:lp=:rm=viking:rp=lp:st=/usr/spool/lp0d

356 AIX Versión 7.2: Gestión del sistema operativo

Page 363: AIX Versión 7 - IBM

Para hacer lo mismo en AIX, coloque lo siguiente en el archivo /etc/qconfig:

lp0: device = dlp0 host = viking rq = lpdlp0: backend = /usr/lib/lpd/rembak

AIX soporta los siguientes mandatos de impresora y funciones de biblioteca:

Elemento Descripción

cancel(1) Cancela las peticiones de una impresora de líneas

chquedev(1) Cambia los nombres de dispositivos de cola de impresora o trazador

chvirprt(1) Cambia los valores de atributos de una impresora virtual

disable(1) Inhabilita una cola de impresora

enable(1) Habilita una cola de impresora

hplj(1) Procesa la salida de troff para HP LaserJetII con el cartucho K

ibm3812(1) Procesa la salida de troff para IBM 3812 Mod 2 Pageprinter

ibm3816(1) Procesa la salida de troff para IBM 3816 Pageprinter

ibm5587G(1) Procesa la salida de troff para IBM 5587G con un cartucho 32x32/24x24

lp(1) Envía peticiones a una impresora de líneas

lpr(1) Pone en cola trabajos de impresión

lprm(1) Elimina trabajos de la cola de spooling de la impresora de líneas

lpstat(1) Visualiza información del estado de la impresora de líneas

lptest(1) Genera el patrón de onda de la impresora de líneas

lsallqdev(1) Lista todos los nombres de dispositivos de cola de impresora configurados enuna cola

lsvirprt(1) Visualiza los valores de atributo para una impresora virtual

mkque(1) Añade una cola de impresora al sistema

mkquedev(1) Añade un dispositivo de cola de impresora al sistema

mkvirprt(1) Crea una impresora virtual

pac(1) Prepara registros de contabilidad de impresora/trazador

piobe(1) Gestor de trabajos de impresión para el componente de fondo de impresora

pioburst(1) Genera páginas de separación (páginas de cabecera y final) para la salida deimpresora

piocmdout(3) Subrutina que genera una serie de atributos para un formateador deimpresora

piodigest(1) Resume los valores de atributos para una definición de impresora virtual y losalmacena

pioexit(3) Subrutina que sale de un formateador de impresora

pioformat(1) Dirige un formateador de impresoras

piofquote(1) Convierte determinados caracteres de control destinados para impresorasPostScript

Gestión del sistema operativo 357

Page 364: AIX Versión 7 - IBM

Elemento Descripción

piogetstr(3) Subrutina que recupera una serie de atributos para un formateador deimpresoras

piogetvals(3) Subrutina que inicializa las variables de base de datos de atributos deimpresora para el formateador de impresoras

piomsgout(3) Subrutina que envía un mensaje desde un formateador de impresoras

pioout(1) Programa de interfaz de controlador de dispositivo del componente de fondode impresora

piopredef(1) Crea una definición de secuencia de datos de impresora predefinida

proff(1) Formatea texto para impresoras con secuencias de datos de impresorapersonales

qadm(1) Realiza la administración del sistema para el sistema de spooling deimpresora

qconfig(4) Configura un sistema de puesta en cola de impresora

qstatus(1) Proporciona el estado de impresora para el sistema de spooling de impresión

restore(3) Restaura la impresora en su estado predeterminado

rmque(1) Elimina una cola de impresora del sistema

rmquedev(1) Elimina un dispositivo de cola de impresora o trazador del sistema

rmvirprt(1) Elimina una impresora virtual

splp(1) Cambia o visualiza valores de controlador de impresora

xpr(1) Formatea un archivo de vuelco de ventana para la salida a una impresora

Información relacionadaVisión general de la impresión para la gestión del sistema

Mandatos de administración del sistema para gestores del sistema BSD 4.3Esta lista contiene mandatos que sirven específicamente para administrar el entorno para AIX.

Elemento Descripción

bosboot(1) Inicializa un dispositivo de arranque.

bootlist(1) Altera la lista de dispositivos de arranque (o el orden de estos dispositivos enla lista) disponible para el sistema.

cfgmgr(1) Configura dispositivos ejecutando los programas del directorio /etc/methods.

chcons(1) Redirige la consola del sistema a un dispositivo o archivo, efectivo en elsiguiente arranque.

chdev(1) Cambia las características de un dispositivo.

chdisp(1) Cambia la pantalla utilizada por el subsistema de terminal de funcionesreducidas (LFT).

checkcw(1) Prepara texto de ancho constante para el mandato troff.

checkeq(1) Comprueba documentos formateados con macros de memorándum.

checkmm(1) Comprueba documentos formateados con macros de memorándum.

checknr(1) Comprueba los archivos nroff y troff.

chfont(1) Cambia el font predeterminado seleccionado al arrancar.

358 AIX Versión 7.2: Gestión del sistema operativo

Page 365: AIX Versión 7 - IBM

Elemento Descripción

chfs(1) Cambia los atributos de un sistema de archivos.

chgroup(1) Cambia los atributos para grupos.

chgrpmem(1) Cambia los administradores o los miembros de un grupo.

chhwkbd(1) Cambia los atributos de teclado del terminal de funciones reducidas (LFT)almacenados en la base de datos del Gestor de Datos Objeto (ODM).

chitab(1) Cambia los registros del archivo /etc/inittab.

chkbd(1) Cambia la correlación predeterminada del teclado para el terminal defunciones reducidas (LFT) en el arranque del sistema.

chkey(1) Cambia la clave de cifrado.

chlang Establece la variable de entorno LANG en el archivo /etc/environmentpara el siguiente inicio de sesión.

chlicense(1) Hay dos tipos de licencia de usuario, fija y flotante. La licencia fija siempreestá habilitada, y el número de licencias se puede cambiar mediante eldistintivo -u. La licencia flotante se puede habilitar o inhabilitar (activar odesactivar) utilizando el distintivo -f

chlv(1) Cambia las características de un volumen lógico.

chnamsv(1) Cambia la configuración del servicio de nombres basado en TCP/IP de unsistema principal.

chprtsv(1) Cambia una configuración de servicio de impresión de un cliente o máquinade servidor

chps(1) Cambia los atributos de un espacio de paginación.

chpv(1) Cambia las características de un volumen físico de un grupo de volúmenes.

chque(1) Cambia el nombre de cola.

chquedev(1) Cambia los nombres de dispositivo de cola de impresora o trazador.

chssys(1) Cambia la definición de un subsistema en la clase de objeto de subsistema.

chtcb(1) Cambia o consulta el atributo de base de cálculo fiable de un archivo.

chtz Cambia la información de zona horaria del sistema.

chuser(1) Cambia los atributos para el usuario especificado.

chvfs(1) Cambia las entradas del archivo /etc/vfs.

chvg(1) Establece las características de un grupo de volúmenes.

chvirprt(1) Cambia los valores de atributos de una impresora virtual.

crfs(1) Añade un sistema de archivos.

crvfs(1) Crea entradas en el archivo /etc/vfs.

exportvg(1) Exporta la definición de un grupo de volúmenes desde un conjunto devolúmenes físicos.

extendvg(1) Añade volúmenes físicos a un grupo de volúmenes.

grpck(1) Verifica la corrección de una definición de grupo.

importvg(1) Importa una nueva definición de grupo de volúmenes de un conjunto devolúmenes físicos.

lsallq(1) Lista los nombres de todas las colas configuradas.

Gestión del sistema operativo 359

Page 366: AIX Versión 7 - IBM

Elemento Descripción

lsallqdev(1) Lista todos los nombres de dispositivos de cola de impresora y trazadorconfigurados en una cola especificada.

lsdisp(1) Lista las pantallas disponibles actualmente en el sistema.

lsfont(1) Lista los fonts disponibles para que la pantalla los utilice.

lsfs(1) Visualiza las características de los sistemas de archivos.

lsgroup(1) Visualiza los atributos de grupos.

lsitab(1) Lista los registros del archivo /etc/inittab.

lskbd(1) Lista las correlaciones de teclado disponibles actualmente para el subsistemade terminal de funciones reducidas (LFT).

lslicense(1) Visualiza el número de licencias fijas y el estado de licencias flotantes.

lslpp(1) Lista productos de programa opcionales.

lsnamsv(1) Muestra información del servicio de nombres almacenada en la base dedatos.

lsprtsv(1) Muestra información del servicio de impresión almacenada en la base dedatos.

lsps Lista el espacio de paginación y los atributos.

lsque(1) Visualiza el nombre de stanza de cola.

lsquedev(1) Visualiza el nombre de stanza de dispositivo.

lssrc(1) Obtiene el estado de un subsistema, un grupo de subsistemas o unsubservidor.

lsuser(1) Visualiza los atributos de cuentas de usuario.

lsvfs(1) Lista las entradas del archivo /etc/vfs.

mkcatdefs(1) Preprocesa un archivo de origen de mensajes.

runcat(1) Conduce los datos de salida del mandato mkcatdefs al mandato gencat.

mkdev(1) Añade un dispositivo al sistema.

mkfont(1) Añade el código de font asociado a una pantalla al sistema.

mkfontdir(1) Crea un archivo fonts.dir desde un directorio de archivos de font.

mkgroup(1) Crea un nuevo grupo.

mkitab(1) Crea registros en el archivo /etc/inittab.

mklv(1) Crea un volumen lógico.

mklvcopy(1) Añade copias a un volumen lógico.

mknamsv(1) Configura el servicio de nombres basado en TCP/IP en un sistema principalpara un cliente.

mknotify(1) Añade una definición de método de notificación a la clase de objeto denotificación.

mkprtsv(1) Configura el servicio de impresión basado en TCP/IP en un sistema principal.

mkps(1) Añade un espacio de paginación adicional al sistema.

mkque(1) Añade una cola de impresora al sistema.

mkquedev(1) Añade un dispositivo de cola de impresora al sistema.

mkserver(1) Añade una definición de subservidor a la clase de objeto de subservidor.

360 AIX Versión 7.2: Gestión del sistema operativo

Page 367: AIX Versión 7 - IBM

Elemento Descripción

mkssys(1) Añade una definición de subsistema a la clase de objeto de subsistema.

mksysb Hace copia de seguridad de los sistemas de archivos montados en el grupo devolúmenes rootvg para una reinstalación subsiguiente.

mkszfile Registra el tamaño de los sistemas de archivos montados en el grupo devolúmenes rootvg para la reinstalación.

mktcpip(1) Establece los valores necesarios para iniciar TCP/IP en un sistema principal.

mkuser(1) Crea una nueva cuenta de usuario.

mkuser.sys(1) Personaliza una nueva cuenta de usuario.

mkvg(1) Crea un grupo de volúmenes.

mkvirprt(1) Crea una impresora virtual.

odmadd(1) Añade objetos a clases de objetos creadas.

odmchange(1) Cambia el contenido de un objeto seleccionado en la clase de objetoespecificada.

odmcreate(1) Produce los archivos .c (origen) y .h (inclusión) necesarios para el desarrollode aplicaciones ODM y crea clases de objetos vacías.

odmdelete(1) Suprime los objetos seleccionados de una clase de objeto especificada.

odmdrop(1) Elimina una clase de objeto.

odmget(1) Recupera objetos de las clases de objetos especificadas y los coloca en unarchivo de entrada odmadd.

odmshow(1) Visualiza una definición de clase de objeto en la pantalla.

pwdck(1) Verifica la corrección de la información de autentificación local.

redefinevg Vuelve a definir el conjunto de volúmenes físicos del grupo de volúmenesdeterminado en la base de datos de configuración de dispositivos.

reducevg(1) Elimina volúmenes físicos de un grupo de volúmenes. Cuando se eliminantodos los volúmenes físicos del grupo de volúmenes, éste se suprime.

reorgvg(1) Reorganiza la asignación de particiones físicas para un grupo de volúmenes.

restbase(1) Restaura la información personalizada desde la imagen de arranque.

rmdel(1) Elimina un delta de un archivo del Sistema de Control de Código Fuente(SCCS).

rmdev(1) Elimina un dispositivo del sistema.

rmf(1) Elimina carpetas y los mensajes que contienen.

rmfs(1) Elimina un sistema de archivos.

rmgroup(1) Elimina un grupo.

rmitab(1) Elimina registros del archivo /etc/inittab.

rmlv(1) Elimina volúmenes lógicos de un grupo de volúmenes.

rmlvcopy(1) Elimina copias de un volumen lógico.

rmm(1) Elimina mensajes.

rmnamsv(1) Elimina la configuración del servicio de nombres basado en TCP/IP de unsistema principal.

rmnotify(1) Elimina una definición de método de notificación de la clase de objeto denotificación.

Gestión del sistema operativo 361

Page 368: AIX Versión 7 - IBM

Elemento Descripción

rmprtsv(1) Elimina la configuración de un servicio de impresión de un cliente o máquinade servidor.

rmps(1) Elimina un espacio de paginación del sistema.

rmque(1) Elimina una cola de impresora del sistema.

rmquedev(1) Elimina un dispositivo de cola de impresora o trazador del sistema.

rmserver(1) Elimina una definición de subservidor de la clase de objeto de subservidor.

rmssys(1) Elimina una definición de subsistema de la clase de objeto de subsistema.

rmuser(1) Elimina una cuenta de usuario.

rmvfs(1) Elimina entradas del archivo /etc/vfs.

rmvirprt(1) Elimina una impresora virtual.

savebase(1) Guarda datos base de dispositivo personalizado en el ODM del dispositivo dearranque.

swapoff(1) Desactiva uno o varios espacios de paginación.

swapon(1) Especifica dispositivos adicionales para la paginación y el intercambio.

syncvg(1) Sincroniza las copias de volúmenes lógicos que no están actualizadas.

usrck(1) Verifica la corrección de una definición de usuario.

varyoffvg(1) Desactiva un grupo de volúmenes.

varyonvg(1) Activa un grupo de volúmenes.

Conceptos relacionadosPrincipales diferencias entre 4.3 BSD y AIXA continuación se presenta un resumen de las principales diferencias entre los sistemas AIX y 4.3 BSD.

Cron para gestores del sistema BSD 4.3El daemon cron para este sistema operativo es similar al daemon cron de System V Release 2.

Una entrada en el archivo /etc/inittab inicia el daemon cron.

Dispositivos para gestores del sistema BSD 4.3A continuación se explican los dispositivos para los gestores del sistema BSD 4.3.

Una aplicación sólo puede acceder a un dispositivo de un sistema 4.3 BSD cuando:

• El dispositivo está instalado físicamente y en funcionamiento.• El controlador para el dispositivo está en el kernel.• Los archivos especiales de dispositivo para el dispositivo existen en el directorio /dev.

Una aplicación sólo puede acceder a AIX cuando:

• El dispositivo está instalado físicamente y en funcionamiento.• El controlador para el dispositivo está en el kernel o en una extensión de kernel cargada.• Los archivos especiales de dispositivo para el dispositivo existen en el directorio /dev.• La base de datos de objetos del directorio /etc/objrepos contiene entradas para el dispositivo que

coinciden con la configuración física.

Los programas específicos del dispositivo denominados métodos, que se encuentran en eldirectorio /etc/methods, mantienen la base de datos de objetos. El Gestor de configuración (al que seaccede a través del mandato cfgmgr) invoca a los métodos y otros mandatos.

362 AIX Versión 7.2: Gestión del sistema operativo

Page 369: AIX Versión 7 - IBM

Si un programa de aplicación ya no puede acceder a un dispositivo, puede significar que el hardware esanómalo o puede significar que la base de datos de configuración del directorio /etc/objrepos estádañada.

El mandato cfgmgr procesa la base de datos de configuración del directorio /etc/objrepos y se procesapor el mandato cfgmgr al arrancar (Gestor de configuración).

El pseudocódigo siguiente muestra la lógica del Gestor de configuración:

/* Main */While there are rules in the Config_Rules database { Get the next rule and execute it Capture stdout from the last execution Parse_Output(stdout) }/* Parse Output Routine *//* stdout will contain a list of devices found */Parse_OutPut(stdout) { While there are devices left in the list { Lookup the device in the database if (!defined) Get define method from database and execute if (! configured) { Get config method from database and execute Parse_Output(stdout) } } }

UUCP para gestores del sistema BSD 4.3La tabla siguiente lista los archivos y los mandatos de UUCP.

Elemento Descripción

Dialers(4) Lista los módems utilizados para enlaces de comunicaciones remotas deBNU

Maxuuxqts(4) Limita el número de instancias de los daemons uuxqt de BNU que sepueden ejecutar

Permissions(4) Especifica los permisos de mandatos de BNU para sistemas remotos

Poll(4) Especifica cuándo el programa BNU debe sondear sistemas remotos

Systems(4) Lista sistemas remotos con los que el sistema local se puede comunicar

rmail(1) Maneja el correo remoto recibido a través de BNU

uucheck(1) Comprueba los archivos y directorios necesarios para BNU

uuclean(1) Elimina archivos del directorio de spool de BNU

uucleanup(1) Suprime los archivos seleccionados del directorio de spooling de BNU

uucpadm(1) Especifica la información de configuración básica de BNU

uudemon.admin(1) Proporciona información periódica sobre el estado de transferencias dearchivos de BNU

uudemon.cleanu(1) Limpia los directorios de spooling y archivos de registro de BNU

uudemon.hour(1) Inicia las llamadas al transporte de archivos para sistemas remotosutilizando el programa BNU

uudemon.poll(1) Sondea los sistemas listados en el archivo de sondeo de BNU

uulog(1) Proporciona información acerca de las actividades de transferencia dearchivos de BNU en un sistema

Gestión del sistema operativo 363

Page 370: AIX Versión 7 - IBM

Elemento Descripción

uupoll(1) Fuerza un sondeo de un sistema BNU remoto

uuq(1) Visualiza la cola de trabajos de BNU y suprime los trabajos especificadosde la cola

uusnap(1) Visualiza el estado de los contactos de BNU con sistemas remotos

uustat(1) Informa del estado y proporciona un control limitado sobre lasoperaciones de BNU

AIX también proporciona los mandatos uuencode y uudecode de 4.3 BSD. El mandato uugetty de HDBno está soportado. Para obtener información acerca de estos mandatos, consulte uuencode yuudecode.

Información relacionadaEstructura de archivos y directorios de BNU

Sistemas de archivos para gestores del sistema BSD 4.3Se utilizan mandatos similares para montar y desmontar sistemas de archivos.

AIX utiliza el archivo /etc/filesystem para listar información de dispositivos del sistema de archivos ytiene mandatos similares para montar y desmontar sistemas de archivos.

Archivos /etc/filesystems y /etc/fstabLos sistemas 4.3 BSD almacenan listas de dispositivos de bloqueo y puntos de montaje en elarchivo /etc/fstab. Los sistemas SVR4 almacenan dispositivos de bloqueo e información de punto demontaje en el archivo /etc/vfstab. AIX almacena dispositivos de bloqueo e información de puntos demontaje en el archivo /etc/filesystems.

Los mandatos crfs, chfs y rmfs actualizan el archivo /etc/filesystems.

Los administradores del sistema 4.3 BSD pueden estar interesados en la variable check delarchivo /etc/filesystems. La variable check se puede establecer en el valor True, False o en unnúmero. Por ejemplo, puede especificar check=2 en el archivo /etc/filesystems. El númeroespecifica el pase del mandatos fsck que comprobará este sistema de archivos. El parámetro checkcorresponde al quinto campo del registro de archivos /etc/fstab.

No existe parámetro de frecuencia de vuelcos en el archivo /etc/filesystems.

Soporte de sistemas de archivos en AIXAIX soporta varios sistemas de archivos.

AIX soporta cuotas de disco.

AIX no permite montar disquetes como sistemas de archivos.

La sintaxis de los mandatos mount y umount para AIX difiere de las versiones de 4.3 BSD y de SVR4 deestos mandatos. Se muestran los mandatos para montar y desmontar todos los sistemas de archivos a lavez para los tres sistemas de la tabla siguiente:

Mandatos mount y unmount

Función Sintaxis para este sistema operativo Sintaxis de 4.3BSD

Sintaxis deSVR4

montaje de todos los sistemasde archivos

mount all mount -a mountall

desmontaje de todos lossistemas de archivos

umount all umount -a umountall

Consulte el apartado ../devicemanagement/file_sys.html#file_sys para obtener más información.

364 AIX Versión 7.2: Gestión del sistema operativo

Page 371: AIX Versión 7 - IBM

Terminales para gestores del sistema BSD 4.3A continuación se explican los terminales para los gestores del sistema BSD 4.3.

Tradicionalmente, los gestores del sistema 4.3 BSD habilitan o inhabilitan los puertos de terminalmodificando el archivo /etc/ttys y enviando una señal HUP al programa init.

AIX almacena información de puerto de terminal en el ODM e inicia los terminales cuando el programainit lee el archivo /etc/inittab. En AIX, utilice la interfaz SMIT para configurar los puertos determinal.

No hay una correlación fija entre el puerto y el nombre de archivo especial de dispositivo en el directorio /dev. En consecuencia, es difícil para los gestores del sistema nuevos en AIX conocer el puerto que sedebe configurar. Cuando se utiliza SMIT, el primer puerto serie de la placa (etiquetado físicamente s1) sedenomina ubicación 00-00-S1, el adaptador sa0 y el puerto s1 en los menús de SMIT. El segundo puertoserie de la placa (etiquetado físicamente s2) se denomina ubicación 00-00-S2, adaptador sa1 y puertos2.

Utilice los mandatos penable y pdisable para habilitar o inhabilitar un puerto.

termcap y terminfoComo System V, este sistema operativo utiliza entradas terminfo de los archivos /usr/lib/terminfo/?/*.

Es posible que los usuarios con sistemas 4.3 BSD encuentren útiles estos mandatos:

captoinfo(1)Convierte un archivo termcap en un archivo terminfo

tic(1)Convierte los archivos terminfo del formato fuente en compilado.

Este sistema operativo incluye fuente para muchas entradas de terminfo. Es posible que parte debacompilarse con el mandato tic. El archivo termcap se proporciona en el archivo /lib/libtermcap/termcap.src.

Redirección de la entrada y la salidaEl sistema operativo AIX permite manipular la entrada y salida (E/S) de datos hacia y desde el sistemautilizando mandatos y símbolos de E/S específicos.

Puede controlar la entrada especificando la ubicación de donde se recogerán datos. Por ejemplo, puedeespecificar la lectura de la entrada mientras se escriben datos en el teclado (entrada estándar) o lalectura de la entrada de un archivo. Puede controlar la salida especificando dónde visualizar o almacenardatos. Por ejemplo, puede especificar el visualizar los datos de salida en la pantalla (salida estándar) ograbarlos en un archivo.

Puesto que AIX es un sistema operativo multitarea, está diseñado para manejar procesos combinados.

Conceptos relacionadosMandatos para visualizar el contenido de archivos (mandatos pg, more, page y cat)Los mandatos pg, more y page le permiten ver el contenido de un archivo y controlar la velocidad a laque han de visualizarse los archivos.Redirección de la entrada y la salida en el shell Korn o POSIXAntes de ejecutar un mandato, el shell Korn explora la línea de mandatos en busca de caracteres deredirección. Estas notaciones especiales indican al shell que redirija la entrada y la salida.

Archivos de entrada estándar, salida estándar y error estándarCuando se empieza a ejecutar un mandato, normalmente espera que los siguientes archivos ya esténabiertos: entrada estándar, salida estándar y error estándar (a veces denominado salida de error o salidade diagnóstico).

A cada uno de estos archivos se asocia un número denominado descriptor de archivo, tal como semuestra a continuación:

Gestión del sistema operativo 365

Page 372: AIX Versión 7 - IBM

Elemento Descripción

Descriptor dearchivo 0

Entrada estándar

Descriptor dearchivo 1

Salida estándar

Descriptor dearchivo 2

Salida de error (diagnóstico) estándar

Normalmente, un proceso hijo hereda estos archivos de su padre. Estos tres archivos se asignaninicialmente a la estación de trabajo (0 al teclado, 1 y 2 a la pantalla). El shell les permite que se redirijana otros lugares antes de que se pase el control a un mandato.

Cuando se especifica un mandato, si no se da ningún nombre de archivo, el teclado es la entradaestándar, que a veces se indica como stdin. Cuando un mandato se completa, el resultado se visualiza enla pantalla.

La pantalla es la salida estándar, que a veces se indica como stdout. Por omisión, los mandatos toman laentrada de la entrada estándar y envían el resultado a la salida estándar.

Los mensajes de error se redirigen al error estándar que, a veces, se indica mediante stderr. Por omisión,dicho lugar es la pantalla.

Estas acciones de entrada y salida por omisión se pueden variar. Puede utilizar un archivo como entrada ygrabar los resultados de un mandato en un archivo. Esto se denomina redirección de la entrada/salida.

La salida de un mandato, que normalmente se dirige al dispositivo de visualización, puede redirigirse a unarchivo en lugar del dispositivo de visualización. Esto se denomina redirección de salida. Es útil cuandotiene mucha salida que es difícil de leer en la pantalla o cuando desea agrupar los archivos para crear unarchivo más grande.

Aunque no se utiliza tanto como la redirección de salida, la entrada correspondiente a un mandato, quenormalmente procede del teclado, también se puede redirigir desde un archivo. Esto se denominaredirección de entrada. La redirección de entrada le permite preparar un archivo con anticipación y,después, hacer que el mandato lea el archivo.

Redirección de salida estándarCuando se añade la notación >nombrearchivo al final de un mandato, la salida del mandato se graba enel nombre de archivo especificado. El símbolo > se conoce como el operador de redirección de símbolo.

Cualquier mandato que envía su resultado a la pantalla puede redirigir su salida a un archivo.

Redireccionamiento de la salida a un archivoSe puede redireccionar la salida de un proceso a un archivo escribiendo el mandato seguido del operadorde redirección de salida y el nombre de archivo.

Por ejemplo, para redireccionar el resultado del mandato who a un archivo denominado users, escriba losiguiente:

who > users

Nota: si el archivo users ya existe, se suprime y sustituye, a menos que se haya especificado la opciónnoclobber del mandato incorporado set de ksh (shell Korn) o csh (shell C).

Para ver el contenido del archivo users, escriba lo siguiente:

cat users

Se visualiza una lista similar a la siguiente:

366 AIX Versión 7.2: Gestión del sistema operativo

Page 373: AIX Versión 7 - IBM

denise lft/0 May 13 08:05marta pts/1 May 13 08:10endrica pts/2 May 13 09:33

Redireccionamiento de la salida para su adición a un archivoCuando se añade la notación >> nombrearchivo al final de un mandato, la salida del mandato se añade alnombre de archivo especificado, en lugar de sobrescribir datos existentes. El símbolo >> se conoce comooperador de redirección de adición.

Por ejemplo, para añadir file2 a file1, escriba lo siguiente:

cat file2 >> file1

Nota: si el archivo file1 no existe, se crea, a menos que se haya especificado la opción noclobber delmandato incorporado set de ksh (shell Korn) o csh (shell C).

Creación de un archivo de texto con redirección desde el tecladoCuando se utiliza solo, el mandato cat utiliza como entrada lo que escribe en el teclado. Puede redirigiresta entrada a un archivo.

Pulse Control-D en una línea nueva para señalar el final del texto.

En el indicador de mandatos, escriba lo siguiente:

cat > filenameEsto es una prueba.^D

Concatenación de archivos de textoPuede combinar varios archivos en uno solo. La combinación de diversos archivos en un solo archivo sedenomina concatenación.

En el ejemplo anterior se crea archivo4, que se compone de archivo1, archivo2 y archivo3, que seañaden en el orden indicado a continuación.

Vea los ejemplos siguientes:

• En el indicador de mandatos, escriba lo siguiente:

cat archivo1 archivo2 archivo3 > archivo4

• El siguiente ejemplo muestra un error común cuando se concatenan archivos:

cat archivo1 archivo2 archivo3 > archivo1

Atención: En este ejemplo, puede esperar que el mandato cat añada el contenido dearchivo1, archivo2 y archivo3 a archivo1. El mandato cat crea el primer archivo desalida, por lo que realmente borra el contenido de archivo1 y después le añade archivo2 yarchivo3.

Redirección de entrada estándarCuando se añade la notación < nombrearchivo al final del mandato, la entrada del mandato se lee delarchivo cuyo nombre se ha especificado. El símbolo < se conoce como operador de redirección deentrada.

Nota: Sólo se puede redirigir la entrada de los mandatos que normalmente toman la entrada del teclado.

Por ejemplo, para enviar el archivo letter1 como un mensaje al usuario denise con el mandato mail,escriba lo siguiente:

mail carlos < carta1

Gestión del sistema operativo 367

Page 374: AIX Versión 7 - IBM

Descartar la salida con el archivo /dev/nullEl archivo /dev/null es un archivo especial. Este archivo tiene una propiedad exclusiva: está siemprevacío. Los datos enviados a /dev/null se descartan. Es una función útil cuando se ejecuta un programao un mandato que genera una salida que desea ignorar.

Por ejemplo, tiene un programa denominado miprog que acepta entrada desde la pantalla y generamensajes mientras se ejecuta que preferiría no ver en la pantalla. Para leer la entrada del archivomiscript y descartar los mensajes de la salida estándar, escriba lo siguiente:

miprog < miscript >/dev/null

En este ejemplo, miprog utiliza el archivo miscript como entrada y toda la salida estándar se descarta.

Error estándar y otra redirección de salidaAdemás de la entrada y la salida estándar, con frecuencia los mandatos crean otros tipos de salida como,por ejemplo, mensajes de error o estado conocidos como salida de diagnóstico. Como en el caso de lasalida estándar, la salida de error estándar se escribe en la pantalla a menos que se redireccione.

Para redirigir los errores estándar y otra salida, utilice un descriptor de archivo. Un descriptor de archivoes un número asociado a cada uno de los archivos de E/S que, normalmente, utiliza un mandato. Tambiénse pueden especificar descriptores de archivos para redirigir la salida estándar y la entrada estándar. Losnúmeros siguientes se asocian a entrada, salida o errores estándar:

Elemento

Descripción

0 Entrada estándar (teclado)

1 Salida estándar (terminal)

2 Error estándar (terminal)

Para redirigir la salida de error estándar, teclee el número de descriptor de archivo 2 delante de lossímbolos de salida o redirección de adición (> o > >) y un nombre de archivo detrás del símbolo. Porejemplo, el mandato siguiente toma la salida de error estándar del mandato cc donde se ha utilizado paracompilar el archivo testfile.c y lo añade al final del archivo ERRORS:

cc testfile.c 2 >> ERRORS

También se pueden redirigir otros tipos de salida utilizando los descriptores de archivo de 0 a 9. Porejemplo, si el mandato cmd graba la salida en el descriptor de archivo 9, puede redirigir dicha salida alarchivo savedata con el mandato siguiente:

cmd 9> savedata

Si un mandato escribe más de una salida, puede redirigir cada una de modo independiente. Suponga queun mandato redirige la salida estándar al descriptor de archivo 1, dirige la salida de error estándar aldescriptor de archivo 2 y crea un archivo de datos al descriptor de archivo 9. La línea de mandatossiguiente redirige cada una de estas salidas a un archivo diferente:

command > standard 2> error 9> data

Redirección de la salida en documentos de entrada en línea (here)Puede redirigir la salida a documentos de entrada en línea (here).

Si un mandato tiene el formato siguiente:

mandato << findeserie

368 AIX Versión 7.2: Gestión del sistema operativo

Page 375: AIX Versión 7 - IBM

y findeserie es cualquier serie que no contenga caracteres de coincidencia de patrón, el shell toma lassiguientes líneas como si fueran la entrada estándar de mandato hasta que el shell lee una líneacompuesta únicamente de findeserie (posiblemente precedida de uno o más caracteres de tabulación).Con frecuencia, se hace referencia a las líneas entre la primera findeserie y la segunda como undocumento de entrada en línea o documento. Si existe un guión (-) inmediatamente después de loscaracteres de redirección <<, el shell elimina los caracteres de tabulación iniciales de cada línea deldocumento here antes de pasar la línea al mandato.

El shell crea un archivo temporal que contiene el documento here y realiza la sustitución de variables ymandatos en el contenido antes de pasar el archivo al mandato. Efectúa emparejamiento de patrones ennombres de archivo que son parte de líneas de mandatos en sustituciones de mandatos. Para impedirtodas las sustituciones, delimite cada carácter de findeserie:

mandato << \findeserie

El documento here es especialmente útil para un pequeña cantidad de datos de entrada que es preferiblesituar en el procedimiento de shell que conservarlos en un archivo separado (por ejemplo, scripts deeditor). Por ejemplo, puede escribir lo siguiente:

cat <<- xyz Este mensaje se mostrará en la pantalla sin las tabulaciones iniciales. xyz

Conceptos relacionadosRedirección de la entrada y la salida en el shell Korn o POSIXAntes de ejecutar un mandato, el shell Korn explora la línea de mandatos en busca de caracteres deredirección. Estas notaciones especiales indican al shell que redirija la entrada y la salida.

Redirección de la salida utilizando conductos y filtrosPuede conectar dos o más mandatos de forma que la salida estándar de un mandato se utilice como laentrada estándar de otro mandato. Un conjunto de mandatos conectados de esta forma se denominaconcatenación por conductos.

La conexión que une los mandatos se denomina conducto. Los conductos son muy útiles, pues lepermiten unir varios mandatos que ejecutan una única acción para formar un mandato compuesto. Puededirigir la salida de un mandato para que pase a ser la entrada de otro mandato utilizando un conducto.Los mandatos están conectados por un símbolo de conducto (|).

Cuando un mandato toma su entrada de otro mandato, la modifica y envía el resultado a la salidaestándar, este conjunto de acciones se denomina filtro. Los filtros pueden utilizarse solos, pero sonespecialmente útiles en conductos. Los filtros más comunes son los siguientes:

• sort• more• pg

Vea los ejemplos siguientes:

• El mandato ls graba el contenido del directorio actual en la pantalla en una corriente de datos condesplazamiento. Cuando se presenta más de una pantalla de información, algunos datos no puedenverse. Para controlar la salida de modo que el contenido se visualice pantalla a pantalla, puede utilizarun conducto para dirigir la salida del mandato ls al mandato pg, que controla el formato de la salida enla pantalla. Por ejemplo, escriba lo siguiente:

ls | pg

En este ejemplo, la salida del mandato ls pasa a ser la entrada del mandato pg. Pulse Intro para pasara la siguiente pantalla.

Los conductos funcionan sólo en una dirección (de izquierda a derecha). Cada mandato de un conductose ejecuta como un proceso separado y todos los procesos pueden ejecutarse al mismo tiempo. Un

Gestión del sistema operativo 369

Page 376: AIX Versión 7 - IBM

proceso establece una pausa cuando no puede leer entrada o cuando el enlace al siguiente procesoestá lleno.

• Otro ejemplo de la utilización de los conductos es el empleo del mandato grep. El mandato grep buscaen un archivo las líneas que contienen series de un patrón determinado. Para que se visualicen todoslos archivos creados o modificados en julio, escriba lo siguiente:

ls -l | grep Jul

En este ejemplo, la salida del mandato ls pasa a ser la entrada del mandato grep.

Visualización de la salida de programa y copia en un archivo (mandato tee)El mandato tee, que se utiliza con un conducto, lee la entrada estándar y, a continuación, graba la salidade un programa en salida estándar y, simultáneamente, la copia en los archivos especificados. Utilice elmandato tee para ver la salida inmediatamente y, al mismo tiempo, almacenarla para su uso futuro.

Por ejemplo, escriba lo siguiente:

ps -ef | tee program.ps

De este modo, se visualiza la salida estándar del mandato ps -ef en el dispositivo de visualización y, almismo tiempo, se guarda una copia de la misma en el archivo program.ps. Si el archivo program.ps yaexiste, se suprime y sustituye a menos que se especifique la opción noclobber del mandato incorporadoset.

Por ejemplo, para ver y guardar la salida de un mandato en un archivo existente:

ls -l | tee -a program.ls

De este modo, se visualiza la salida estándar de ls -l en el dispositivo de visualización y, al mismotiempo, se añade una copia del mismo al final del archivo program.ls.

El sistema muestra información similar a la siguiente, y el archivo program.ls contiene la mismainformación:

-rw-rw-rw- 1 jones staff 2301 Sep 19 08:53 161414-rw-rw-rw- 1 jones staff 6317 Ago 31 13:17 def.rpt-rw-rw-rw- 1 jones staff 5550 Sep 10 14:13 try.doc

Borrado de la pantalla (mandato clear)Utilice el mandato clear para eliminar de la pantalla los mensajes y la entrada del teclado.

En el indicador de mandatos, escriba lo siguiente:

clear

El sistema borra el contenido de la pantalla y visualiza el indicador.

Envío de un mensaje a salida estándarUtilice el mandato echo para visualizar los mensajes en la pantalla.

Por ejemplo, para grabar un mensaje en la salida estándar, escriba lo siguiente:

echo Please insert diskette . . .

Se visualizará el siguiente mensaje:

Please insert diskette . . .

Por ejemplo, para utilizar el mandato echo con caracteres de patrones de coincidencia, en el indicador demandatos escriba lo siguiente:

echo Los archivos de copia de seguridad son: *.bak

370 AIX Versión 7.2: Gestión del sistema operativo

Page 377: AIX Versión 7 - IBM

El sistema visualiza el mensaje Los archivos de copia de seguridad son: seguido de losnombres de archivo del directorio actual que finalizan en .bak.

Adición de una sola línea de texto a un archivo (mandato echo)Utilice el mandato echo, utilizado con el operador de redirección, para añadir una sola línea de texto a unarchivo.

Por ejemplo, en el indicador de mandatos escriba lo siguiente:

echo Recuerde hacer una copia de seguridad de los archivos de correo al finalizar la semana.>>notes

Esto añade el mensaje Recuerde hacer una copia de seguridad de los archivos decorreo al finalizar la semana. al final del archivo notas.

Copia de la pantalla en un archivo (mandato capture y script)Utilice el mandato capture, que emula un terminal VT100, para copiar todo lo que se imprime en elterminal a un archivo que especifique. Utilice el mandato script para copiar todo lo que se imprime enel terminal a un archivo que especifique, sin emular un terminal VT100.

Ambos mandatos son útiles para imprimir registros de diálogos de terminal.

Por ejemplo, para capturar la pantalla de un terminal mientras emula un VT100, en el indicador, escribalo siguiente:

capture screen.01

El sistema visualiza información similar a la siguiente:

El mandato Capture se ha iniciado. El archivo es screen.01.Utilice ^P para el volcado de la pantalla al archivo screen.01.Ahora se está emulando un terminal vt100.Pulse cualquier tecla para continuar.

Después de entrar datos y volver el contenido de la pantalla, detenga el mandato capture; para ello,pulse Control-D o escriba exit y pulse Intro. El sistema visualiza información similar a la siguiente:

El mandato Capture se ha completado. El archivo es screen.01.Ya NO está emulando un terminal vt100.

Utilice el mandato cat para visualizar el contenido del archivo.

Por ejemplo, para capturar la pantalla de un terminal, en el indicador, escriba lo siguiente:

script

El sistema visualiza información similar a la siguiente:

El mandato Script se ha iniciado. El archivo es typescript.

Todo lo que se muestra en la pantalla se copia al archivo typescript.

Para detener el mandato script, pulse Control-D o teclee exit y pulse Intro. El sistema visualizainformación similar a la siguiente:

El mandato Script se ha completado. El archivo es typescript.

Utilice el mandato cat para visualizar el contenido del archivo.

Mandato para visualizar texto en letras grandes en la pantalla (mandato banner)El mandato banner visualiza los caracteres ASCII de la pantalla utilizando letras más grandes.

Cada línea de la salida puede tener una longitud de hasta 10 dígitos (o caracteres en mayúsculas o enminúsculas).

Por ejemplo, en el indicador de mandatos escriba lo siguiente:

Gestión del sistema operativo 371

Page 378: AIX Versión 7 - IBM

banner GOODBYE!

El sistema visualiza ¡ADIÓS! en letras grandes en la pantalla.

Resumen de mandatos para la redirección de entrada y salidaLos siguientes mandatos son para la redirección de la entrada y la salida.

Elemento Descripción

> “Redirección de salida estándar” en la página 366

< “Redirección de entrada estándar” en la página 367

> > “Redireccionamiento de la salida para su adición a un archivo” en la página 367

| “Redirección de la salida utilizando conductos y filtros” en la página 369

banner Graba series de caracteres ASCII en letras grandes en la salida estándar

capture Permite que las pantallas del terminal puedan volcarse en un archivo

clear Borra la pantalla del terminal

echo Graba series de caracteres en la salida estándar

script Permite que la entrada y salida del terminal pueda copiarse en un archivo

tee Visualiza la salida estándar de un programa y la copia en un archivo

Recuperación de kernel de AIXDesde AIX 6.1, se pueden recuperar opcionalmente los errores del kernel en determinadas rutinas, lo queevita la inactividad no planificada del sistema.

La recuperación del kernel está inhabilitada de forma predeterminada. Si la recuperación del kernel estáhabilitada, es posible que el sistema se detenga durante un breve período de tiempo durante una acciónde recuperación del kernel. Este tiempo suele ser inferior a dos segundos. Se producen las siguientesacciones inmediatamente después de la acción de recuperación del kernel:

• La consola del sistema muestra el siguiente mensaje:

------------------------------------------------------------------------- Se ha producido una acción de recuperación de errores del kernel. Se ha generado un registro de recuperación en el registro de errores del sistema. -------------------------------------------------------------------------

• AIX agrega una entrada al registro de errores. Puede enviar los datos del registro de errores a IBM paraobtener servicio de forma similar a como envía datos tras una finalización completa del sistema. Acontinuación se muestra una entrada de ejemplo del registro de errores de recuperación:

ETIQUETA: RECUPERACIÓN Fecha/Hora: Fri Feb 16 14:04:17 CST 2007Tipo: INFONombre recurso: RMGRDescripciónAcción de recuperación del kernelDatos de detalleNombre base del vuelco activo RECOV_20070216200417_0000Nombre de la funciónw_clearNombre de FRRw_init_clear_frrSerie del síntoma 273EEEE00009627A072F10001001B18BBC0w_clear+D0wdog0030+288test_index+4CDatos del registro de recuperación

372 AIX Versión 7.2: Gestión del sistema operativo

Page 379: AIX Versión 7 - IBM

0001 0000 0000 0000 F000 0000 2FFC AEB0 0000 0111 0000 0000 0000 0000 0021 25BC8000 0000 0002 9032 EEEE 0000 9627 A072 F100 0100 1B18 BBC0 0000 0000 0000 00000000 0001 0000 0000 0006 0057 D2FF 8C00 0001 0148 0500 0000 8000 0000 0002 9032.....

• AIX genera un vuelco activo. Los datos de un vuelco activo se encuentran, de forma predeterminada, enel directorio /var/adm/ras/livedump y el archivo se llama RECOV_indicaciónhora_secuencia,donde indicaciónhora especifica la hora a la que se ha producido la recuperación del kernel y secuenciaespecifica el número de veces que se ha invocado la recuperación del kernel. Puede enviar datos devuelco activo a IBM para obtener servicio, de forma similar a como se envían datos tras una finalizacióncompleta del sistema. Para obtener más información sobre vuelcos activos, consulte vuelcos activos enKernel Extensions and Device Support Programming Concepts.

Atención: Es posible que se pierdan algunas funciones tras una recuperación del kernel, pero el sistemaoperativo continúa en un estado estable. Si es necesario, cierre y vuelva a iniciar el sistema para restaurarlas funciones perdidas.

Consideraciones sobre memoria y procesador

AIX mantiene datos en el estado de recuperación del kernel durante las principales operaciones delkernel. Cuando la recuperación del kernel está habilitada, se necesitan instrucciones adicionales delprocesador para mantener los datos y se necesita memoria adicional para guardar los datos. El impactosobre el uso de procesador es mínimo. Se puede determinar el consumo de memoria adicional mediantela siguiente ecuación, donde máxhebras es el número máximo de hebras que se ejecutan en el sistema ynúmproc es el número de procesadores:

memoria necesaria = 4 KB x máxhebras + 128 KB x númproc

Tal como se muestra en el siguiente ejemplo, un sistema con 16 procesadores y un máximo de 1000hebras consume 6304 KB adicionales:

4 x 1000 + 128 x 16 = 6304 KB

Habilitación e inhabilitación de la recuperación de kernelPuede habilitar o inhabilitar la recuperación de kernel desde la interfaz de vía de acceso de SMIT.

Para habilitar o inhabilitar la recuperación de kernel, utilice la siguiente vía de acceso de SMIT:

Determinación de problemas > Recuperación de kernel > Cambiar estado de recuperación de kernel> Cambiar estado de recuperación de siguiente kernel de arranque

También puede ver el estado actual de recuperación de kernel utilizando la siguiente vía de acceso deSMIT:

Determinación de problemas > Recuperación de kernel > Mostrar estado de recuperación de kernel

AIX Event Infrastructure para AIX y clústeres AIX - AHAFSAIX Event Infrastructure para AIX y clústeres AIX son una infraestructura de supervisión de sucesospredefinidos y definidos por el usuario.

Introducción a la infraestructura de AIX Event InfrastructureAIX Event Infrastructure es una infraestructura de supervisión de sucesos para la supervisión de sucesospredefinidos o definidos por el usuario.

En AIX Event Infrastructure, se define un suceso como cualquier cambio de estado o valor que puedadetectar el kernel o una extensión del kernel en el momento en que se produce el cambio. Los sucesosque se pueden supervisar se representan como archivos en un seudosistema de archivos. Las siguientesson algunas de las ventajas de AIX Event Infrastructure:

• No es necesario realizar sondeos constantemente. Cuando se producen los sucesos, se notifica a losusuarios que supervisan estos sucesos.

Gestión del sistema operativo 373

Page 380: AIX Versión 7 - IBM

• Al usuario que está supervisando el suceso se le proporciona información acerca de un suceso, porejemplo, un rastreo de pila y la información del usuario o del proceso.

• Se utilizan las interfaces del sistema existentes de modo que no sea necesaria una nueva interfaz deprogramación de aplicaciones (API).

• El control se entrega a AIX Event Infrastructure en el momento preciso en que se produce el suceso.

Componentes de AIX Event InfrastructureAIX Event Infrastructure consta de los siguientes cuatro componentes:

• La extensión del kernel que implementa el seudosistema de archivos.• Los consumidores de sucesos que consumen los sucesos.• Los generadores de sucesos que generan sucesos.• El componente del kernel que sirve como interfaz entre la extensión del kernel y los generadores de

sucesos.

Extensión del kernel de AIX Event InfrastructureLa extensión del kernel de AIX Event Infrastructure implementa el seudosistema de archivos.

Todos los sucesos se representan como archivos en este sistema de archivos. Hay cuatro tipo de objetosde archivo:

• Archivos .list: sólo existe un archivo .list en el seudosistema de archivos evProds.list. Este es unarchivo especial que cuando se lee, devuelve todos los generadores de sucesos definidos actualmente.

374 AIX Versión 7.2: Gestión del sistema operativo

Page 381: AIX Versión 7 - IBM

• Directorios .monFactory: las fábricas de supervisión son un tipo de directorio especial. Estas sonrepresentaciones de directorios de generadores de sucesos. Los directorios de fábricas de supervisión ysus subdirectorios padre se crean automáticamente para el usuario.

• subdirectorios: los subdirectorios se utilizan para facilitar la gestión y para representar nombres devías de acceso completos para los archivos de supervisión (consulte los archivos .mon).

• Archivos .mon: los archivos de supervisión representan los sucesos que se pueden supervisar. Elnombre de vía de acceso completo de un archivo de supervisión a partir de su fábrica de supervisiónpadre, menos la extensión .mon es la representación completa del suceso que se está supervisando.Por ejemplo, el archivo /aha/fs/modFile.monFactory/etc/password.mon se utiliza para supervisar lasmodificaciones del archivo /etc/passwd. Los archivos de supervisión sólo pueden existir debajo de unafábrica de supervisión.

No se pueden crear otros archivos regulares en este seudosistema de archivos. Dado que el sistema dearchivos de AIX Event Infrastructure es un sistema de archivos de la memoria, sólo pueden haber unmáximo de 32 KB de inodos. El número de inodos utilizado se visualizará en la salida del mandato df.

A continuación se muestra un ejemplo de la disposición del sistema de archivos de AIX EventInfrastructure:

Nota:

El archivo evProds.list existe directamente debajo de la raíz del sistema de archivos y contiene la lista degeneradores de sucesos que se han definido y que se pueden utilizar bajo esta instancia del sistemaoperativo.

Utilizando la interfaz LFS, AIX Event Infrastructure convertirá la entrada de texto escrita en los archivosde supervisión en especificaciones sobre cómo el usuario desea que se le notifiquen las apariciones desucesos. Cuando el usuario emite una llamada select() o una llamada read() de bloqueo que indique elinicio de su supervisión, AIX Event Infrastructure notificará al generador de sucesos correspondiente queinicie la supervisión del suceso especificado.

Cuando se detecte una aparición de sucesos, AIX Event Infrastructure notificará qué criterios desupervisión se han cumplido a todos los consumidores que estén en espera.

Gestión del sistema operativo 375

Page 382: AIX Versión 7 - IBM

Consumidores de sucesosLos consumidores de sucesos son procesos de espacio de usuario que están a la espera de que seproduzcan sucesos.

Los consumidores configuran la supervisión de sucesos grabando información en un archivo desupervisión, que especifica cómo y cuándo se les debe notificar. Los consumidores pueden esperar lasnotificaciones de sucesos en una llamada select() o en una llamada read() de bloqueo.

AIX Event Infrastructure no tiene seguridad de hebras. Los procesos no deben utilizar varias hebras parasupervisar el mismo suceso.

Generadores de sucesosLos generadores de sucesos son secciones del código dentro del kernel o de una extensión del kernel quepueden detectar un suceso.

Cuando se produce un suceso supervisado, el generador de sucesos se lo notifica a la extensión delkernel de AIX Event Infrastructure y envía cualquier información asociada relacionada con el suceso quese ha de pasar al consumidor.

Actualmente, existen dos clases principales de generadores de sucesos:

• Los que supervisan un cambio de estado• Los que supervisan un valor que supera los umbrales especificados por el usuario

Servicio del kernel ahafs_evprodsEl servicio del kernel ahafs_evprods facilita las comunicaciones entre la extensión del kernel AIX EventInfrastructure y los generadores de sucesos.

Para facilitar las comunicaciones entre la extensión del kernel AIX Event Infrastructure y los generadoresde sucesos, se exporta el servicio del kernel ahafs_evprods. Dentro del kernel, se utiliza una lista degeneradores de sucesos registrados para buscar los generadores de sucesos y para pasar informaciónentre los generadores de sucesos adecuados y la extensión del kernel.

Configuración de AIX Event InfrastructurePasos necesarios para configurar AIX Event Infrastructure.

Los únicos pasos necesarios para configurar AIX Event Infrastructure son:

1. Instalar el conjunto de archivos bos.ahafs.2. Crear el directorio para el punto de montaje deseado.3. Ejecutar el mandato siguiente:

mount –v ahafs <punto montaje> <punto montaje>

Ejemplo

,kdir /aha mount -v ahafs /aha /aha

El montaje de un sistema de archivos AIX Event Infrastructure automáticamente cargará la extensióndel kernel y creará todas las fábricas de supervisión. Sólo se monta una instancia de un sistema dearchivos de AIX Event Infrastructure cada vez. Se puede montar un sistema de archivos de AIX EventInfrastructure en un directorio normal pero se recomienda a los usuarios que utilicen /aha.

Vista de alto nivel de cómo funciona AIX Event InfrastructureUn consumidor puede supervisar varios sucesos y varios consumidores pueden supervisar el mismosuceso. Cada consumidor puede supervisar sucesos basados en valores con un valor de umbral diferente.Para manejar esto, la extensión de kernel de AIX Event Infrastructure mantiene una lista de lainformación de cada consumidor, que incluye:

• El tipo de espera especificado (WAIT_IN_READ o WAIT_IN_SELECT)

376 AIX Versión 7.2: Gestión del sistema operativo

Page 383: AIX Versión 7 - IBM

• El nivel de información solicitado• El o los umbrales que se han de supervisar (si se supervisa un suceso de valor de umbral)• Se utiliza un almacenamiento intermedio para contener la información acerca de las apariciones de los

sucesos

La información de sucesos se almacena por proceso, de modo que los diferentes procesos quesupervisan el mismo suceso no alteran los datos del suceso. Cuando un proceso consumidor lea unarchivo de supervisión, únicamente leerá su propia copia de los datos del suceso.

Flujo típico de supervisión de un sucesoEn este tema se describen los pasos de la supervisión de un suceso.

1. Un proceso intenta abrir o crear un archivo de supervisión.2. AIX Event Infrastructure pasa el nombre de vía de acceso del archivo de supervisión al generador de

sucesos correspondiente. El generador de sucesos verifica que el archivo de supervisión representaun suceso válido y que el proceso tiene acceso para supervisar el suceso.

3. El proceso graba la información en el archivo especificando:

a. El tipo de espera (WAIT_TYPE=WAIT_IN_READ o WAIT_TYPE=WAIT_IN_SELECT). El tipo deespera predeterminado es WAIT_IN_SELECT.

b. Cuándo se ha de notificar. Para los sucesos de cambio de estado, el usuario debe especificarCHANGED=YES. Para los sucesos de valores de umbral, el usuario puede especificarTHRESH_HI=<valor>, THRESH_LO=<valor> o ambos, en función de las posibilidades delgenerador de sucesos asociado. No existe un valor predeterminado para esta especificación y nose pueden especificar tanto CHANGED=YES como THRESH_*=<valor>.

4. A continuación, AIX Event Infrastructure asignará el bloque por proceso en el que almacenar estainformación si todavía no existe uno para este proceso y lo cumplimentará con la información escritapor el usuario.

5. El proceso emite la llamada select() o una llamada read() de bloqueo en el archivo de supervisión6. AIX Event Infrastructure llamará a ahafs_evprods para comprobar que los umbrales especificados

son válidos para este suceso en concreto. Por ejemplo, el generador de sucesos utilFs no permitevalores superiores al 100%. Si el umbral no es válido, la llamada select() o read() devolveráRC_FROM_EVPROD y, una vez leído el archivo de supervisión, se devolverá EINVAL.

7. Para los generadores de sucesos de valores de umbral, sólo se envía un valor al generador desucesos para cada umbral (hi o lo) de supervisión. En el momento de select() o de read() de bloqueo,AIX Event Infrastructure registrará este nuevo umbral con el generador de sucesos si se cumple unade las condiciones siguientes:

a. Si ningún otro proceso está supervisando este sucesos, el o los umbrales especificados por elconsumidor se registrarán en el generador de sucesos.

b. Si hay otros procesos supervisando este suceso, entonces si el valor de THRESH_LO especificadopor el consumidor es superior al umbral bajo supervisado actualmente O si el valor deTHRESH_HI especificado por el consumidor es más bajo que el umbral alto supervisadoactualmente, AIX Event Infrastructure llama al servicio del kernel ahafs_evprods para queactualice el umbral supervisado actualmente.

8. Al regresar, el servicio del kernel ahafs_evprods devuelve el valor real del suceso (en algunos casos).Si el valor real devuelto ya cumple o supera cualquiera de los umbrales, inmediatamente se devuelvela llamada read() o select() y el RC_FROM_EVPROD registrado en el almacenamiento intermedio desuceso será EALREADY. Las llamadas read() o select() devolverán 0.

9. Para los generadores de sucesos de cambio de estado, siempre se llama a la función ahafs_evprodspara registrar el suceso.

10. Después de un registro correcto, AIX Event Infrastructure configura la notificación. Para losconsumidores que estén esperando select(), la notificación se configura mediante selreg(). Para losconsumidores que estén bloqueando una llamada read(), la hebra se coloca en suspensión cone_sleep_thread().

Gestión del sistema operativo 377

Page 384: AIX Versión 7 - IBM

11. Cuando el generador de sucesos detecta que se ha producido un suceso, notificará a AIX EventInfrastructure la información relacionada con el suceso (esto es, la información acerca del procesoque ha desencadenado el suceso, el valor actual, el código de retorno, etc.).

12. Durante esta devolución de llamada del generador de sucesos, AIX Event Infrastructure:

a. Determina el ahaNode correspondiente al sucesob. Busca en la lista de consumidores en espera para determinar qué umbrales se han cumplido o se

han superado para notificarlo con la llamada selnotify() o e_wakeup(). Se notificará a todos losconsumidores que estén esperando un suceso de cambio de estado.

13. Cuando se haya notificado el suceso al proceso, éste lee el archivo de supervisión para obtener losdatos del suceso. El siguiente es un ejemplo de salida de un suceso.

Una salida de ejemplo para un generador de sucesos de cambio de estado que ha especificado quedebe realizarse un rastreo de pila:

BEGIN_EVENT_INFOTIME_tvsec=1269377315TIME_tvnsec=955475223SEQUENCE_NUM=0PID=2490594UID=0UID_LOGIN=0GID=0PROG_NAME=catRC_FROM_EVPROD=1000END_EVENT_INFO

Un ejemplo de un suceso de valor de umbral:

BEGIN_EVENT_INFOTIME_tvsec=1269378095TIME_tvnsec=959865951SEQUENCE_NUM=0CURRENT_VALUE=2RC_FROM_EVPROD=1000END_EVENT_INFO

Nota: Debido a la naturaleza asíncrona de la notificación de procesos, el valor actual devuelto puedeestar obsoleto en el momento en que un proceso lee el archivo de supervisión. A los usuarios se lesnotifica cuando se cumple o supera el umbral en primer lugar, pero no se bloquearán otras operacionesque pueden alterar los valores que se están supervisando.

Utilización de AIX Event InfrastructureTodos los directorios del sistema de archivos AIX Event Infrastructure tienen una modalidad de accesode 1777 y todos los archivos tienen una modalidad de acceso de 0666.

Actualmente, todos los directorios del sistema de archivos AIX Event Infrastructure tienen una modalidadde 1777 y todos los archivos tienen una modalidad de 0666. Estas modalidades no se pueden modificar,pero la propiedad de los archivos y directorios se puede modificar. El control de acceso para lasupervisión de sucesos se puede realizar a nivel del generador de sucesos. Las horas de creación/modificación no se mantienen y siempre se devuelven como la hora actual cuando se emite stat () en unobjeto de archivo dentro del seudosistema de archivos. Cualquier intento de modificar estas horasdevolverá un error.

Supervisión de sucesos

Creación del archivo de supervisiónPara supervisar un suceso, se debe crear el archivo de supervisión correspondiente al suceso.

Antes de supervisar un suceso, se debe crear el archivo de supervisión correspondiente al suceso. AIXEvent Infrastructure soporta open() con el distintivo O_CREAT. Como ejemplo, seguiremos los pasosnecesarios para supervisar el sistema de archivos /filesys/clj-fs para una utilización del 90%.

• También se deben crear los subdirectorios necesarios:

378 AIX Versión 7.2: Gestión del sistema operativo

Page 385: AIX Versión 7 - IBM

mkdir /aha/fs/utilFs.monFactory/filesys

• Abra el archivo /aha/fs/utilFs.monFactory/filesys/clj-fs.mon.

Para poder crear un archivo de supervisión, la extensión del kernel AIX Event Infrastructure llamará algenerador de sucesos para determinar si el suceso que se está solicitando es válido y para determinar siel usuario tiene la suficiente autorización para supervisar el suceso especificado. Los siguientes sonalgunos de los errores comunes que puede devolver una operación para crear o abrir un archivo desupervisión:

Tabla 63. Códigos de retorno

Código de retorno Detalles

ENODEV No existe un suceso correspondiente en la vía deacceso especificada.

Nota: También se puede devolver un errorENODEV si se intenta abrir un archivo desupervisión existente cuando el suceso ya noexiste.

EPERM El usuario no tiene permiso para supervisar elsuceso especificado.

ENOTSUP El suceso especificado no soporta la supervisiónmediante AIX Event Infrastructure.

Escribir en un archivo de supervisiónEl proceso del consumidor escribe en el archivo de supervisión para especificar cómo y cuándo se ledeben notificar los sucesos.

Cuando se crea y abre el archivo de supervisión deseado, el proceso del consumidor escribirá en elarchivo de supervisión para especificar cómo y cuándo se le deben notificar los sucesos. Estos datos segraban en los pares <clave>=<valor>, que pueden estar separados por un signo de punto y coma (;) o unespacio en blanco. Los pares <clave>=<valor> aceptables son los siguientes:

Tabla 64. Pares <clave>=<valor> aceptables

Clave Valores aceptables Detalles

CHANGED YES Especifica que el suceso que seha de supervisar es de tipoAHAFS_THRESHOLD_STATE yque se debe notificar alconsumidor cuando cambia elestado del suceso.

Gestión del sistema operativo 379

Page 386: AIX Versión 7 - IBM

Tabla 64. Pares <clave>=<valor> aceptables (continuación)

Clave Valores aceptables Detalles

THRESH_HI Entero de 64 bits sin signo,especificado en formato decimal

Esta clave especifica el umbralalto del suceso. Cuando elsuceso ha alcanzado este umbral(igual a o mayor que), se debenotificar al consumidor.

Nota: Aunque este es un enterode 64 bits, algunos generadoresde sucesos pueden tener límitessobre qué valores puedensupervisarse realmente. Porejemplo, los valores aceptablespara THRESH_HI para elgenerador de sucesos utilFs sonentre 1 y 100, inclusive. Lavalidez del umbral para elgenerador de sucesos no secomprueba en el momento de lagrabación, sino durante elmomento de select() o de read()de bloqueo.

THRESH_LO Entero de 64 bits sin signo,especificado en formato decimal

Esta clave especifica el umbralbajo del suceso. Cuando elsuceso ha alcanzado este umbral(igual a o menor que), se debenotificar al consumidor.

Nota: Aunque este es un enterode 64 bits, algunos generadoresde sucesos pueden tener límitessobre qué valores puedensupervisarse realmente. Porejemplo, los valores aceptablespara THRESH_LO para elgenerador de sucesos utilFs sonentre 1 y 100, inclusive. Lavalidez del umbral para elgenerador de sucesos no secomprueba en el momento de lagrabación, sino durante elmomento de select() o de read()de bloqueo.

WAIT_TYPE WAIT_IN_SELECT (valorpredeterminado),WAIT_IN_READ

Especifica cómo esperará elconsumidor el suceso. Si elconsumidor desea bloquear elsuceso en una llamada select(),debe especificarWAIT_IN_SELECT. Si elconsumidor desea bloquear elsuceso en una llamada read(),debe especificarWAIT_IN_READ.

380 AIX Versión 7.2: Gestión del sistema operativo

Page 387: AIX Versión 7 - IBM

Tabla 64. Pares <clave>=<valor> aceptables (continuación)

Clave Valores aceptables Detalles

INFO_LVL 1, 2 (valor predeterminado) o 3 Especifica qué datos del sucesose deben registrar en elalmacenamiento intermedio delusuario:

• INFO_LVL=1 registrarácronológicamente la indicaciónde la hora del suceso, elnúmero de secuencia, el códigode retorno del generador desucesos, la información* delusuario, la información* delproceso y el valor actual delsuceso (si corresponde).

• INFO_LVL=2 registrará todoslos datos desde el nivel 1, másel mensaje del generador desucesos, si corresponde.

• INFO_LVL=3 registrará todoslos datos desde el nivel 2, másla pila del suceso, sicorresponde.

Nota: La información del usuario,la información del proceso, elnombre del programa y el rastreode pila sólo están disponiblespara los generadores de sucesosque han especificado el distintivoAHAFS_STKTRACE_AVAILABLE. No todos los generadores desucesos pasan mensajes.Consulte la documentación delgenerador de sucesos paradeterminar qué información estádisponible. Los ejemplos de lasalida del suceso se muestran enla sección “Lectura de datos desucesos” en la página 385.

Gestión del sistema operativo 381

Page 388: AIX Versión 7 - IBM

Tabla 64. Pares <clave>=<valor> aceptables (continuación)

Clave Valores aceptables Detalles

NOTIFY_CNT -1 (valor predeterminado) ocualquier valor entre 1 y 32767,inclusive

NOTIFY_CNT especifica cuántasveces se debe producir el sucesoantes de que se notifique alproceso. Si se especifica el valor-1, se notificará al consumidorcada vez que se aparezca elsuceso y cada aparición delsuceso se registrará en elalmacenamiento intermedio delusuario. Si el consumidorespecifica un valor positivo queno sea cero, el consumidor sebloqueará hasta que el suceso sehaya producido el número deveces especificado. Cuando elsuceso se haya producido elnúmero de veces especificado,no se registrarán más sucesoshasta que el consumidor sebloquee en otra llamada select()o en una llamada read() debloqueo. Consulte la sección“Espera de sucesos” en la página383 para obtener másinformación.

CLUSTER YES Si el sistema forma parte de unclúster y éste está activo, losconsumidores puedenespecificar esta clave para que sele notifiquen las apariciones deeste suceso en otros nodos delclúster. No todos los generadoresde sucesos soportan lasupervisión de todo el clúster.Esta característica estádesactivada, off, de formapredeterminada. Consulte lasección “Sucesos de clúster” enla página 405 para obtener másinformación.

BUF_SIZE Un entero positivo, hasta1048576

Esta clave especifica el tamañodel almacenamiento intermedioque se debe utilizar para registrarlos datos de sucesos,especificado en bytes. El tamañopredeterminado es de 2048 y eltamaño más pequeño asignadoserá de 1024 bytes, incluso si elconsumidor solicita un tamañomenor.

382 AIX Versión 7.2: Gestión del sistema operativo

Page 389: AIX Versión 7 - IBM

Cuando se escribe información en un archivo de supervisión sólo se prepara para una llamada select() ouna llamada read() de bloqueo siguiente. La supervisión no comienza hasta que se realiza la llamadaselect() o la llamada read() de bloqueo.

Por ejemplo, para supervisar en el sistema de archivos /filesys/clj-fs la primera aparición de unautilización del 90% de una llamada read() de bloqueo, se graba la siguiente serie en el archivo /aha/fs/utilFs.monFactory/filesys/clj-fs.mon:

WAIT_TYPE=WAIT_IN_READ THRESH_HI=90 NOTIFY_CNT=1

Los códigos de retorno posibles de una llamada write() para un archivo de supervisión son:

Tabla 65. Códigos de retorno

Código de retorno Detalles

EINVAL Si se proporciona un valor no válido paracualquiera de las claves anteriores, la operación deescritura en el archivo de supervisión fallará conEINVAL. Asimismo, si los parámetros denotificación (CHANGED o THRESH_HI/LO)especificados no coinciden con las posibilidadesdel generador de sucesos, la operación deescritura fallará con EINVAL. Por ejemplo, si elconsumidor especifica CHANGED=YES para elconsumidor de sucesos utilFs (que sólo supervisaTHRESH_HI/LO), la llamada de escrituradevolverá EINVAL. Si se especifica CLUSTER=YESsin un clúster activo también se generará EINVAL.

EBUSY Si hay otra hebra en el proceso que actualmenteestá esperando el suceso, un proceso de escrituraen el archivo de supervisión por parte de otrahebra devolverá EBUSY.

ESTALE El archivo de supervisión se ha suprimido. Parasupervisar este suceso, el descriptor de archivosse tendrá que cerrar para abrirlo a continuacióncon O_CREAT

ENOMEM No se puede asignar la memoria temporal o lamemoria para el almacenamiento intermedio desucesos.

ENOSPC Un máximo de 512 procesos pueden supervisar unarchivo de supervisión. Si ya existen 512 quetienen abierto este archivo y han escrito en elmismo, la operación de escritura fallará conENOSPC.

Espera de sucesosLas especificaciones de supervisión se graban en el archivo de supervisión.

Cuando se graban correctamente las especificaciones de supervisión en el archivo de supervisión, elproceso del consumidor bloqueará una aparición de suceso utilizando select() o read(). A losconsumidores sólo se les notifican los sucesos que se producen una vez bloqueado select() o read().Existen tres modos para que se produzca una devolución del proceso desde una llamada select() o read()de bloqueo:

Gestión del sistema operativo 383

Page 390: AIX Versión 7 - IBM

1. El proceso se ha producido el número de veces especificado.

• Se trata de un caso no de error. El consumidor debe leer los datos del suceso para determinar cómose ha de manejar el suceso.

2. Se ha producido un problema al configurar el suceso en la extensión del kernel de AIX EventInfrastructure.

Se pueden producir errores antes de que se registre el suceso para supervisión en el generador desucesos:

• read()

– Si hay otra hebra que está a la espera de lectura, la lectura fallará con EBUSY– Si no se ha realizado ninguna escritura antes de esta lectura, la lectura simplemente devolverá 0 y

se habrán leído 0 bytes.• select()

Nota:

Debido a la implementación de la llamada del sistema select, para que select() devuelva un error,las operaciones del sistema de archivos subyacente deben devolver EBADF. Como resultado, si secumplen cualquiera de las siguientes condiciones, select() devolverá EBADF.

– Otra hebra está intentando una operación select– Se ha suprimido el archivo de supervisión– No se ha realizado ninguna escritura con especificaciones de supervisión– Se ha producido un error durante el registro en el subsistema IOS

En estos casos, no habrán datos de sucesos para leer.3. Se ha producido un problema al configurar el suceso con el generador de sucesos.

Si se intenta registrar el suceso con el generador de sucesos, se registrará una entrada en elalmacenamiento intermedio para que la lea el consumidor. Para determinar qué error se ha producido,en la documentación del generador de sucesos se debe hacer referencia al RC_FROM_EVPRODdevuelto en los datos del suceso. Tenga en cuenta que la salida de sucesos para este caso sólocontendrá la indicación de la hora, el número de secuencia y el código de retorno del generador desucesos, independientemente del INFO_LVL que se haya especificado. Para obtener un ejemplo,consulte la sección “Lectura de datos de sucesos” en la página 385.

En este caso, select() devolverá EBADF, pero read() devolverá el código de retorno de la operaciónuio_move subyacente.

Si el proceso del consumidor ha especificado un NOTIFY_CNT mayor que 1, se registrará la informaciónsobre cada aparición del suceso en el almacenamiento intermedio del consumidor hasta que se hayaproducido el número de sucesos solicitado. El proceso del consumidor sólo se activará si el suceso se haproducido el número de veces solicitado o si se ha producido un suceso no disponible. Cuando se activeel proceso del consumidor, ya no supervisará el suceso hasta que vuelva a emitir la llamada select() oread() de bloqueo para el archivo de supervisión.

Si un consumidor ha especificado un valor de NOTIFY_CNT de -1, el proceso del consumidor se activarádespués de cada aparición del suceso y en el almacenamiento intermedio del consumidor se registrarácualquier suceso que se produzca después de la llamada select() o read() de bloqueo inicial correcta.

Las llamadas select() y read() no realizarán bloqueos si en el almacenamiento intermedio existen datosde sucesos que no se han leído.

Apariciones de sucesos no disponiblesEs posible que para algunos generadores de sucesos existan apariciones de sucesos que hagan que unconlleven la invalidez del suceso supervisado.

Estos son algunos ejemplos:

• La muerte de un proceso para processMon y pidProcessMon .

384 AIX Versión 7.2: Gestión del sistema operativo

Page 391: AIX Versión 7 - IBM

• El desmontaje de un sistema de archivos que contiene archivos supervisados para modDir y modFile.• El desmontaje de un sistema de archivos que está siendo supervisando por utilFs.• La supresión o el cambio de nombre de un archivo que está siendo supervisado por modDir o modFile• La supresión de un generador de sucesos que actualmente se está utilizando para supervisar sucesos

(en este caso, RC_FROM_EVPROD será ENODEV).

Cuando se ha desencadenado una aparición de suceso no disponible, los consumidores no puedencontinuar supervisando dicho suceso hasta que vuelva a ser válido. Los siguientes son ejemplos desucesos que vuelven a ser válidos:

• Se vuelve a montar el sistema de archivos supervisado.• Se vuelve a crear un archivo supervisado que se había suprimido.• Se vuelve a crear un proceso que ha sido supervisado.

Cuando se desencadena un suceso local no disponible, la extensión del kernel de AIX EventInfrastructure eliminará el o los archivos de supervisión afectados. Cuando se suprime un archivo desupervisión, los consumidores que todavía tienen el archivo abierto podrán leer los datos de suceso, perono podrán grabar ni bloquear en espera una aparición de suceso en dicho archivo de supervisión. Cuandoel consumidor encuentra una aparición de suceso no disponible, deberá realizar la acción adecuada (quepresuntamente hará que el suceso vuelva a ser válido), cerrar el descriptor de archivo para el archivo desupervisión y volver a abrir el archivo de supervisión con el distintivo O_CREAT.

Las apariciones de sucesos locales no disponibles también harán que se desbloqueen select() y read()antes de que se haya desencadenado el número solicitado de apariciones de sucesos si el consumidor haespecificado un valor NOTIFY_CNT > 1. Por ejemplo, si el consumidor está supervisando el archivo /foocon un valor NOTIFY_CNT=3, el consumidor realizará una devolución de select() o read() si /foo seelimina, aunque sea la primera aparición de un suceso con /foo.

Utilización de AIX Event Infrastructure para sondeosAIX Event Infrastructure no requiere que los generadores de sucesos mantengan siempre el valor actualde sucesos que se puede supervisar.

Esto es para permitir un mayor rendimiento ya que los generadores de sucesos no tienen la actividadgeneral que supone mantener este valor si no se están supervisando las apariciones del suceso.

Esto supone un problema cuando se utiliza el sondeo síncrono. Dado que no siempre se puede obtener elvalor actual de un suceso en cada punto del tiempo, las llamadas poll() o select() síncrona se manejan deeste modo:

• Cuando un proceso emite select() o poll() en un archivo de supervisión por primera vez, la extensión delkernel AIX Event Infrastructure registrará dicho suceso para su supervisión con el generador desucesos.

– Para los generadores de sucesos que mantienen el valor actual, se devolverá el valor actual alregistro de sucesos de la extensión del kernel de AIX Event Infrastructure. Este valor se comprobarácon el valor de umbral del consumidor en ese momento. Si se ha superado el umbral del consumidor,select() o poll() indicarán que se ha producido el suceso y tendrán un valor RC_FROM_EVPROD deEALREADY.

• Se ignoran los distintivos POLLSYNC. Un suceso continúa registrado con el generador de sucesos hastaque el suceso se produce el número de veces especificado o hasta que el usuario cierra el archivo.

• Las llamadas poll() posteriores tendrán el comportamiento siguiente:

– Si todavía no se ha producido el suceso, la llamada no devolverá ningún suceso de retorno.– Si el suceso se ha producido el número de veces especificado desde la última llamada poll(), se

establecerán los sucesos de retorno para indicar que el suceso se ha producido.

Lectura de datos de sucesosLos datos de sucesos de AIX Event Infrastructure constan de pares de palabra clave-valor.

Gestión del sistema operativo 385

Page 392: AIX Versión 7 - IBM

Los datos de sucesos sólo se pueden leer una vez y en una sola llamada read() sólo se devolverá laaparición de un suceso que contenga un valor de datos. Por ejemplo, presuponiendo que se producen dossucesos antes de que el consumidor lea el archivo de supervisión y cada suceso contiene 256 bytes dedatos. Si el consumidor llama a read() para 4096 bytes, sólo se devolverán al usuario los 256 byters delprimer suceso. Será necesario realizar una segunda llamada read() para obtener los datos del segundosuceso. Se ignorará cualquier desplazamiento dado y los datos se leerán a partir del último byte no leído.

Los datos de sucesos tendrán como máximo 4096 bytes, aunque la mayor parte de los sucesos serán deun tamaño inferior ( < 512 bytes). Se recomienda que cuando se lean sucesos, se utilice unalmacenamiento intermedio lo suficientemente grande para evitar que sólo se lea una parte de unsuceso.

Los datos de sucesos en AHAFS constan de pares de palabra clave = valor, con la excepción deBUF_WRAP, EVENT_OVERFLOW, BEGIN_EVENT_INFO, END_EVENT_INFO, BEGIN_EVPROD_INFO,END_EVPROD_INFO y STACK_TRACE, que son palabras clave especiales sin ningún valor. Estas son laspalabras clave que puede ver en los datos de sucesos:

Tabla 66. Palabras clave

Clave Valor Detalles

BUF_WRAP Ninguno El almacenamiento intermediodel consumidor se maneja comoun almacenamiento intermediocircular. Si los datos del sucesomás reciente sobregraban datosno leídos, esta palabra clave serála siguiente serie que devolverála llamada read(), incluso si elconsumidor ha leídoparcialmente la entrada anterior.La llamada read() siguientedevolverá el siguiente sucesocompleto.

EVENT_OVERFLOW Ninguno Si los datos del suceso sondemasiado grandes para elalmacenamiento de datos desucesos del consumidor, sedevolverá esta palabra clave enla primera llamada read(). Unallamada read() posteriordevolverá los datos de sucesosque hayan podido entrar en elalmacenamiento intermedio.

Nota: Si se encuentraEVENT_OVERFLOW, la serie finalEND_EVENT_INFO no estarápresente.

BEGIN_EVENT_INFO Ninguno Esta palabra clave significa elinicio de los datos para unaaparición de sucesos.

END_EVENT_INFO Ninguno Esta palabra clave significa elfinal de los datos para estaaparición de sucesos específica.

386 AIX Versión 7.2: Gestión del sistema operativo

Page 393: AIX Versión 7 - IBM

Tabla 66. Palabras clave (continuación)

Clave Valor Detalles

TIME_tvsec TIME_tvnsec Entero Estos dos campos registran laindicación de la hora de laaparición del suceso comosegundos y nanosegundos desdeEpoch.

SEQUENCE_NUM Entero Este campo registra el número deveces que se ha producido elsuceso desde la primera llamadaselect() o read() de bloqueosatisfactoria. Este número serestaura en 0 si falla la llamadaselect() o read() de bloqueo, o siel consumidor deja de supervisarel suceso (si sobregraba lasespecificaciones de supervisióndel suceso o si alcanza unnúmero de apariciones desucesos igual al valor deNOTIFY_CNT especificado).

PID Entero El ID del proceso que hadesencadenado la aparición delsuceso. Sólo está disponible conun generador de sucesos que haespecificado la posibilidadAHAFS_STKTRACE_AVAILABLEpero no la posibilidadAHAFS_CALLBACK_INTRCNTX.

UID Entero El ID de usuario del usuario queha desencadenado la aparicióndel suceso. Sólo está disponiblecon un generador de sucesos queha especificado la posibilidadAHAFS_STKTRACE_AVAILABLEpero no la posibilidadAHAFS_CALLBACK_INTRCNTX.

UID_LOGIN Entero El ID de inicio de sesión delusuario que ha desencadenado laaparición del suceso. Sólo estádisponible con un generador desucesos que ha especificado laposibilidadAHAFS_STKTRACE_AVAILABLEpero no la posibilidadAHAFS_CALLBACK_INTRCNTX.

Gestión del sistema operativo 387

Page 394: AIX Versión 7 - IBM

Tabla 66. Palabras clave (continuación)

Clave Valor Detalles

GID Entero El ID de grupo del usuario que hadesencadenado la aparición delsuceso. Sólo está disponible conun generador de sucesos que haespecificado la posibilidadAHAFS_STKTRACE_AVAILABLEpero no la posibilidadAHAFS_CALLBACK_INTRCNTX.

PROG_NAME Serie El nombre del proceso que hadesencadenado la aparición delsuceso. Sólo está disponible conun generador de sucesos que haespecificado la posibilidadAHAFS_STKTRACE_AVAILABLEpero no la posibilidadAHAFS_CALLBACK_INTRCNTX.

CURRENT_VALUE Entero de 64 bits sin signo, enformato decimal

Esta clave sólo es para losgeneradores de sucesosAHAFS_THRESHOLD_VALUE ydevolverá el valor actual delsuceso en el momento en que seha detectado la aparición delsuceso. Tenga en cuenta quedebido al retardo entre elmomento en que se notifica unproceso y el momento en que seleen los datos del suceso, el valoractual real del suceso puedehaber cambiado.

RC_FROM_EVPROD Entero de 32 bits, en formatodecimal

Este código de retorno procededel generador de sucesos, ya seacomo resultado de un error alintentar configurar el suceso ocomo resultado de la apariciónde un suceso. Generalmente, loscódigos de sucesos inferiores a256 indican un error cuandointentan registrar el suceso conel generador de sucesos. Algunosgeneradores de sucesosdevolverán sucesos de más de256 para proporcionar másinformación acerca de laaparición del suceso. Estoscódigos de retorno sedocumentan en sys/ahafs_evProds.h

388 AIX Versión 7.2: Gestión del sistema operativo

Page 395: AIX Versión 7 - IBM

Tabla 66. Palabras clave (continuación)

Clave Valor Detalles

BEGIN_EVPROD_INFOEND_EVPROD_INFO

Serie* Estas dos palabras clave marcanel inicio y el fin de la seriedevuelta por el generador desucesos. Siempre habrá una líneanueva después deBEGIN_EVPROD_INFO y antesde END_EVPROD_INFO. Para losconsumidores que hayanespecificado CLUSTER=YES,aquí es donde se proporcionarála información del nodo.

STACK_TRACE Serie* Para los consumidores que hanespecificado INFO_LVL=3 con ungenerador de sucesos que haespecificado la posibilidadAHAFS_STKTRACE_AVAILABLE, pero no así la posibilidadAHAFS_CALLBACK_INTRCNTX,se proporcionará el rastreo depila de la aparición del suceso. Lapalabra clave STACK_TRACEindica que los datos de sucesorestantes, hasta la serieEND_EVENT_INFO, forman lapila de la aparición del suceso.

NUM_EVDROPS_INTRCNTX Entero Esta palabra clave representa elnúmero de apariciones delsuceso de interrupción decontexto que se han descartadodesde el momento en que seespecifica en las palabras clavesTIME0_tvsec y TIME0_tvnsecen el informe. Las apariciones desucesos se descartan sólocuando la frecuencia de laaparición del suceso es elevada.

TIME0_tvsec

TIME0_tvnsec

Entero Estas palabras clave registran laindicación de fecha y hora delprimer descarte de aparición desuceso en segundos ynanosegundos desde el Epoch.Estas palabras clave se informanjunto a la palabra claveNUM_EVDROPS_INTRCNTX.

Consolidación de sucesos duplicados

Si se produce el mismo suceso varias veces antes de que el consumidor haya leído los datos, las entradasduplicadas se consolidarán en una entrada. Esta consolidación se indica mediante números de secuenciano secuenciales sin una palabra clave BUF_WRAP correspondiente. La indicación de la hora y losnúmeros de secuencia reflejarán la aparición más reciente del suceso.

Gestión del sistema operativo 389

Page 396: AIX Versión 7 - IBM

Datos de suceso de ejemplo

Para un generador de sucesos que ha especificado AHAFS_THRESHOLD_STATE yAHAFS_STKTRACE_AVAILABLE, y que pasará un mensaje a los consumidores de sucesos, los tresniveles de salida serán similares a la siguiente salida:

INFO_LVL=1 INFO_LVL=2 INFO_LVL=3

BEGIN_EVENT_INFOTIME_tvsec=1269863383TIME_tvnsec=455993143SEQUENCE_NUM=0PID=6947038UID=0UID_LOGIN=0GID=0PROG_NAME=catRC_FROM_EVPROD=1000END_EVENT_INFO

BEGIN_EVENT_INFOTIME_tvsec=1269863383TIME_tvnsec=455993143SEQUENCE_NUM=0PID=6947038UID=0UID_LOGIN=0GID=0PROG_NAME=catRC_FROM_EVPROD=1000BEGIN_EVPROD_INFOevent producer message hereEND_EVPROD_INFOEND_EVENT_INFO

BEGIN_EVENT_INFOTIME_tvsec=1269863383TIME_tvnsec=455993143SEQUENCE_NUM=0PID=6947038UID=0UID_LOGIN=0GID=0PROG_NAME=catRC_FROM_EVPROD=1000BEGIN_EVPROD_INFOevent producer message hereEND_EVPROD_INFOSTACK_TRACEahafs_prod_callback+3C4ahafs_cbfn_wrapper+30ahafs_vn_write+204vnop_rdwr+7E4vno_rw+B4rwuio+12Crdwr+184kewrite+16C.svc_instrwrite+1A4_xwrite+6C_xflsbuf+B0__flsbuf+9Ccopyopt_ascii+2C0scat+388main+11C__start+68END_EVENT_INFO

Para un generador de sucesos que ha especificado AHAFS_THRESHOLD_VALUE_HI y no ha especificadoAHAFS_STKTRACE_AVAILABLE, y que pasará un mensaje a los consumidores de sucesos, los tresniveles de salida serán similares a la salida siguiente:

INFO_LVL=1 INFO_LVL=2 INFO_LVL=3

BEGIN_EVENT_INFOTIME_tvsec=1269866715TIME_tvnsec=16678418SEQUENCE_NUM=0CURRENT_VALUE=3RC_FROM_EVPROD=1000END_EVENT_INFO

BEGIN_EVENT_INFOTIME_tvsec=1269866715TIME_tvnsec=16678418SEQUENCE_NUM=0CURRENT_VALUE=3RC_FROM_EVPROD=1000BEGIN_EVPROD_INFOevent producer message hereEND_EVPROD_INFOEND_EVENT_INFO

BEGIN_EVENT_INFOTIME_tvsec=1269866715TIME_tvnsec=16678418SEQUENCE_NUM=0CURRENT_VALUE=3RC_FROM_EVPROD=1000BEGIN_EVPROD_INFOevent producer message hereEND_EVPROD_INFOEND_EVENT_INFO

Formato de errores

Si existe un error en el generador de sucesos, todos los generadores de sucesos tendrán el formatosiguiente para todos los INFO_LVL:

BEGIN_EVENT_INFOTIME_tvsec=1269868036TIME_tvnsec=966708948SEQUENCE_NUM=0RC_FROM_EVPROD=20END_EVENT_INFO

390 AIX Versión 7.2: Gestión del sistema operativo

Page 397: AIX Versión 7 - IBM

Si un consumidor está supervisando un suceso AHAFS_THRESHOLD_VALUE y el valor actual ya supera elumbral solicitado, también se utilizará el formato de error para registrar este suceso EALREADY:

BEGIN_EVENT_INFOTIME_tvsec=1269868036TIME_tvnsec=966708948SEQUENCE_NUM=0CURRENT_VALUE=1RC_FROM_EVPROD=56END_EVENT_INFO

BUF_WRAP y EVENT_OVERFLOW

Si se sobrescriben los datos no leídos con los datos de una nueva aparición del suceso, la primera salidade read() en el archivo de supervisión será la palabra clave BUF_WRAP. Si se produce un reinicio delalmacenamiento intermedio Y un desbordamiento de suceso, BUF_WRAP siempre aparecerá en primerlugar, seguido de EVENT_OVERFLOW. La siguiente es una salida de ejemplo de read() en el caso en quese tenga tanto un reinicio del almacenamiento intermedio como un desbordamiento de sucesos:

La primera llamada read() devolverá:

BUF_WRAP

La segunda llamada read() devolverá:

EVENT_OVERFLOW

La tercera llamada read() devolverá los datos de suceso que ha podido insertar en el almacenamientointermedio:

BEGIN_EVENT_INFOTIME_tvsec=1269863383TIME_tvnsec=455993143SEQUENCE_NUM=0PID=6947038UID=0UID_LOGIN=0GID=0PROG_NAME=catRC_FROM_EVPROD=1000BEGIN_EVPROD_INFOevent producer message hereEND_EVPROD_INFOSTACK_TRACEahafs_prod_callback+3C4ahafs_cbfn_wrapper+30ahafs_vn_write+204vnop_rdwr+7E4vno_rw+B4rwuio+12Crdwr+184kewrite+16C.svc_instrwrite+1A4_xwri

Si la información del suceso entra con la rapidez suficiente, es posible que se reciban dos entradasBUF_WRAP seguidas. Si ve BUF_WRAP, aumente el tamaño del almacenamiento intermedio (utilizandoBUF_SIZE cuando grabe en el archivo de supervisión).

NUM_EVDROPS_INTRCNTXSi se elimina una aparición de suceso de interrupción de contexto debido a una frecuencia elevada deapariciones de suceso, la salida de una llamada read() en el archivo de sucesos, que representa dichosuceso, contiene la palabra clave NUM_EVDROPS_INTRCNTX justo después de la línea que contiene lapalabra clave BEGIN_EVENT_INFO.

En el ejemplo siguiente se representa una salida de una llamada read():

BEGIN_EVENT_INFOBEGIN_EVENT_INFO

Gestión del sistema operativo 391

Page 398: AIX Versión 7 - IBM

NUM_EVDROPS_INTRCNTX=5508TIME0_tvsec=1353437661TIME0_tvnsec=75494625TIME_tvsec=1353437661TIME_tvnsec=741365037SEQUENCE_NUM=6663RC_FROM_EVPROD=0BEGIN_EVPROD_INFO...msg desde generador-suceso...END_EVPROD_INFOEND_EVENT_INFO

Este salida de ejemplo contiene los siguientes conjuntos de información:

• El valor NUM_EVDROPS_INTRCNTX=5508 es el número de apariciones del sucesos de interrupción decontexto que se han descartado desde el momento en que se especifican que se especifica en loscampos TIME0_tvsec y TIME0_tvnsec.

• La información restante (es decir, SEQUENCE_NUM=6663, RC_FROM_EVPROD=0, ...msg fromevent-producer..., etc) es sobre el suceso que se ha producido en el momento que se especificaen los campos TIME_tvsec y TIME_tvnsec.

Generadores de sucesos predefinidos

modFileEl generador de sucesos modFile supervisa las modificaciones del contenido de un archivo.Visión general

El generador de sucesos modFile reside en el directorio fs y supervisa las modificaciones de unarchivo. Se supervisan las siguientes operaciones vnode: vnop_rdwr(), vnop_map_lloff(),vnop_remove(), vnop_ftrunc(), vnop_fclear() y vnop_rename(). Las modificaciones que no pasan através de la capa LFS no se pueden supervisar (esto es, grabaciones en los archivos correlacionados).

Los archivos no se pueden supervisar si:

• Están en un sistema de archivos remoto.• Están en un sistema de archivos de tipo ahafs, procfs o namefs.• Son un enlace simbólico.• Residen bajo un directorio que acaba con una extensión de AIX Event Infrastructure

(.mon, .list, .monFactory).• No se pueden supervisar los archivos de supervisión cuyo nombre de vía de acceso completo sea

mayor que MAXPATHLEN en el seudosistema de archivos de AIX Event Infrastructure.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_STKTRACE_AVAILABLEAHAFS_REMOTE_EVENT_ENABLED

Códigos de retorno

El generador de sucesos modFile utiliza códigos de retorno definidos en <sys/ahafs_evProds.h>.

Estos códigos de retorno se utilizan para indicar cómo se ha modificado el contenido del directoriosupervisado:

AHAFS_MODFILE_WRITESe ha grabado en el archivo supervisado.

AHAFS_MODFILE_UNMOUNTEl sistema de archivos con tienen el archivo supervisado se ha desmontado. Este es un suceso nodisponible.

AHAFS_MODFILE_MAPUn proceso ha correlacionado una parte del archivo supervisado para grabación.

392 AIX Versión 7.2: Gestión del sistema operativo

Page 399: AIX Versión 7 - IBM

AHAFS_MODFILE_REMOVEEl archivo supervisado se ha eliminado. Este es un suceso no disponible.

AHAFS_MODFILE_RENAMESe ha cambiado el nombre del archivo supervisado. Este es un suceso no disponible.

AHAFS_MODFILE_FCLEARUn proceso ha emitido fclear para el archivo supervisado.

AHAFS_MODFILE_FTRUNCUn proceso ha emitido ftrunc para el archivo supervisado.

AHAFS_MODFILE_OVERMOUNTEl archivo supervisado está sobremontado.

Mensaje del generador de sucesos

Este generador de sucesos no pasa ningún mensaje como parte de sus datos de sucesos.

Archivos de supervisión aceptables

Para supervisar las modificaciones de archivos, se debe crear un archivo de supervisión con la mismavía de acceso que el archivo que desea supervisar bajo el directorio modFile.monFactory. Porejemplo, para supervisar /etc/passwd, se debe utilizar el archivo /aha/fs/modFile.monFactory/etc/passwd.mon.

Datos de suceso de ejemplo

Los siguientes datos de suceso se generan a partir de la grabación de un suceso en un archivosupervisado. Esta es la salida que se muestra con un valor de INFO_LVL de 3:

BEGIN_EVENT_INFOTIME_tvsec=1271703118TIME_tvnsec=409201093SEQUENCE_NUM=0PID=5701678UID=0UID_LOGIN=0GID=0PROG_NAME=catRC_FROM_EVPROD=1000STACK_TRACEaha_cbfn_wrapper+30ahafs_evprods+510aha_vn_write+154vnop_rdwr+7E8vno_rw+B4rwuio+100rdwr+188kewrite+104.svc_instrwrite+1A4_xwrite+6C_xflsbuf+A8__flsbuf+C0copyopt+2E8scat+22Cmain+11C__start+68END_EVENT_INFO

modFileAttrEl generador de sucesos modFileAttr supervisa las modificaciones de los atributos de un archivo.Visión general

El generador de sucesos modFileAttr reside en el directorio fs y supervisa las modificaciones de losatributos de un archivo o de un directorio (modalidad, propiedad y ACL). Se supervisan las siguientesoperaciones vnode: vnop_setattr() (sólo para operaciones V_OWN y V_MODE), vnop_setacl(),vnop_setxacl(), vnop_remove(), vnop_rename() y vnop_rmdir().

Los archivos o directorios no se pueden supervisar si:

• Están en un sistema de archivos remoto

Gestión del sistema operativo 393

Page 400: AIX Versión 7 - IBM

• Están en un sistema de archivos de tipo ahafs, procfs o namefs• Residen bajo un directorio que acaba con una extensión de AIX Event Infrastructure

(.mon, .list, .monFactory)• No se pueden supervisar los archivos de supervisión cuyo nombre de vía de acceso completo sea

mayor que MAXPATHLEN en el seudosistema de archivos de AIX Event Infrastructure.

Posibilidades

AHAFS_THRESHOLD_STATE

AHAFS_STKTRACE_AVAILABLE

AHAFS_REMOTE_EVENT_ENABLED

Códigos de retorno

El generador de sucesos modFileAttr utiliza códigos de retorno definidos en <sys/ahafs_evProds.h>.

Estos códigos de retorno se utilizan para indicar cómo se ha modificado el contenido del directoriosupervisado:

AHAFS_MODFILEATTR_UNMOUNTEl sistema de archivos que contiene el directorio o el archivo supervisado se ha desmontado. Estees un suceso no disponible.

AHAFS_MODFILEATTR_REMOVEEl directorio o el archivo supervisado se ha eliminado. Este es un suceso no disponible.

AHAFS_MODFILEATTR_RENAMEEl directorio o el archivo supervisado se ha renombrado. Este es un suceso no disponible.

AHAFS_MODFILEATTR_OVERMOUNTEl directorio o el archivo supervisado se ha sobremontado. Este es un suceso no disponible.

AHAFS_MODFILEATTR_SETACLLos ACL del directorio o del archivo supervisado se han modificado.

AHAFS_MODFILEATTR_SETOWNLa propiedad del directorio o del archivo supervisado se ha modificado.

AHAFS_MODFILEATTR_SETMODELa modalidad del directorio o del archivo supervisado se ha modificado.

Mensaje del generador de sucesos

Este generador de sucesos no pasa ningún mensaje como parte de sus datos de sucesos.

Archivos de supervisión aceptables

Para supervisar las modificaciones de archivos, se debe crear un archivo de supervisión con la mismavía de acceso que el archivo que desea supervisar bajo el directorio modFileAttr.monFactory. Porejemplo, para supervisar /etc/passwd, se debe utilizar el archivo /aha/fs/modFileAttr.monFactory/etc/passwd.mon.

Datos de suceso de ejemplo

Los siguientes datos de suceso se generan a partir de que un proceso cambie la modalidad de unarchivo supervisado. Esta es la salida que se muestra con un valor de INFO_LVL de 3:

BEGIN_EVENT_INFOTIME_tvsec=1291994430TIME_tvnsec=760097298SEQUENCE_NUM=0PID=5767216UID=0UID_LOGIN=0GID=0PROG_NAME=chmodRC_FROM_EVPROD=1010STACK_TRACEahafs_evprods+70C

394 AIX Versión 7.2: Gestión del sistema operativo

Page 401: AIX Versión 7 - IBM

aha_process_attr+120vnop_setattr+21Cvsetattr@AF13_1+20setnameattr+B4chmod+110.svc_instrchange+3C8main+190__start+68END_EVENT_INFO

modDirEl generador de sucesos modDir supervisa las modificaciones del contenido de un directorio.Visión general

El generador de sucesos modDir reside en el directorio fs y supervisa las modificaciones delcontenido de un directorio. Se supervisan las siguientes operaciones vnode: vnop_create(),vnop_link(), vnop_symlink(), vnop_remove(), vnop_rename(), vnop_mkdir() y vnop_rmdir().

Los directorios no se pueden supervisar si:

• Están en un sistema de archivos remoto• Están en un sistema de archivos de tipo ahafs, procfs o namefs• Son un enlace simbólico• Residen bajo un directorio que acaba con una extensión de AIX Event Infrastructure

(.mon, .list, .monFactory)• No se pueden supervisar los archivos de supervisión cuyo nombre de vía de acceso completo sea

mayor que MAXPATHLEN en el seudosistema de archivos de AIX Event Infrastructure.

El generador de sucesos modDir no supervisa de forma recursiva las modificaciones de directorios.Sólo se supervisan las modificaciones del directorio especificado.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_STKTRACE_AVAILABLEAHAFS_REMOTE_EVENT_ENABLED

Códigos de retorno

El generador de sucesos modDir utiliza códigos de retorno definidos en <sys/ahafs_evProds.h>.

Estos códigos de retorno se utilizan para indicar cómo se ha modificado el contenido del directoriosupervisado:

AHAFS_MODDIR_CREATESe ha creado un objeto del sistema nuevo bajo el directorio supervisado.

AHAFS_MODDIR_UNMOUNTEl sistema de archivos con tienen el directorio supervisado se ha desmontado. Este es un sucesono disponible.

AHAFS_MODDIR_REMOVESe ha eliminado un objeto del sistema de archivos dentro del directorio supervisado.

AHAFS_MODDIR_REMOVE_SELFEl directorio supervisado se ha eliminado o se ha cambiado su nombre. Este es un suceso nodisponible.

Mensaje del generador de sucesos

El nombre del objeto del sistema de archivos que ha desencadenado el suceso se incluye en los datosdel suceso.

Archivos de supervisión aceptables

Para supervisar las modificaciones en el contenido de un directorio, se debe crear un archivo desupervisión con la misma vía de acceso que el directorio que desea supervisar bajo el directorio

Gestión del sistema operativo 395

Page 402: AIX Versión 7 - IBM

modDir.monFactory. Por ejemplo, para supervisar si hay modificaciones en el directorio /home/cheryl, se debe utilizar el archivo de supervisión /aha/fs/modDir.monFactory/home/cheryl.mon.

Datos de suceso de ejemplo

Los siguientes datos de suceso se han generado a partir de un archivo nuevo denominado file1 que seestá creando en un directorio supervisado. Esta es la salida que se muestra con un valor de INFO_LVLde 3:

BEGIN_EVENT_INFOTIME_tvsec=1271780397TIME_tvnsec=24369022SEQUENCE_NUM=0PID=6095102UID=0UID_LOGIN=0GID=0PROG_NAME=touchRC_FROM_EVPROD=1000BEGIN_EVPROD_INFOfile1END_EVPROD_INFOSTACK_TRACEaha_cbfn_wrapper+30ahafs_evprods+510aha_process_vnop+138vnop_create_attr+4ACopenpnp+418openpath+100copen+294kopen+1C.svc_instropen+F8creat64+1Cmain+1EC__start+68END_EVENT_INFO

utilFsEl generador de sucesos utilFs supervisa la utilización de un sistema de archivos.Visión general

El generador de sucesos utilFs supervisa la utilización de un sistema de archivos como un porcentaje.Reside en el directorio fs. Actualmente, sólo los sistemas de archivos JFS2 dan soporte a lasupervisión utilFs. Después de cada grabación, creación y supresión de archivos, se comprueba eluso del sistema de archivos para ver si cumple o supera el umbral dado. Es posible que algunasoperaciones específicas del sistema de archivos afecten el uso del sistema de archivos, pero utilFspuede no detectarlas hasta la siguiente grabación, creación o supresión de archivos. Los umbralesque se superan debido a una supresión de objetos de archivos no se notificarán hasta la siguientegrabación, creación o supresión de archivos.

Los sistemas de archivos cuya vía de acceso de archivo de supervisión supera el valor deMAXPATHLEN en AHAFS no se pueden supervisar.

Para evitar un desbordamiento de notificaciones de sucesos y su posible impacto en el rendimiento,se recomienda que los sucesos utilFs se supervisen con un valor de NOTIFY_CNT de 1.

Posibilidades

AHAFS_THRESHOLD_VALUE_HIGHAHAFS_THRESHOLD_VALUE_LOWAHAFS_REMOTE_EVENT_ENABLED

Los umbrales especificados deben ser entre 1 y 100, inclusive.

Códigos de retorno

El generador de sucesos utilFs utiliza códigos de retorno definidos en <sys/ahafs_evProds.h>.

396 AIX Versión 7.2: Gestión del sistema operativo

Page 403: AIX Versión 7 - IBM

Estos códigos de retorno se utilizan para indicar cómo se ha modificado el contenido del directoriosupervisado:

AHAFS_UTILFS_THRESH_HITEl sistema de archivos que se está supervisando ha alcanzado el umbral especificado.

AHAFS_UTILFS_UNMOUNTEl sistema de archivos que se está supervisando se ha desmontado. Este es un suceso nodisponible.

Mensaje del generador de sucesos

Este generador de sucesos no pasa ningún mensaje como parte de sus datos de sucesos.

Archivos de supervisión aceptables

Para supervisar el uso del sistema de archivos, se debe crear un archivo de supervisión con la mismavía de acceso que el punto de montaje del sistema de archivos que se está supervisando bajo eldirectorio utilFs.monFactory. Por ejemplo, para supervisar el sistema de archivos /data/fs1, se debeutilizar el archivo de supervisión /aha/fs/utilFs.monFactory/data/fs1.mon.

Datos de suceso de ejemplo

Los siguientes son datos de sucesos de un suceso AHAFS_UTILFS_THRESH_HIT para un valor deINFO_LVL de 3:

BEGIN_EVENT_INFOTIME_tvsec=1271705858TIME_tvnsec=704241888SEQUENCE_NUM=0CURRENT_VALUE=10RC_FROM_EVPROD=1000END_EVENT_INFO

waitTmCPUEl generador de sucesos waitTmCPU supervisa el tiempo promedio de hebras ejecutables.Visión general

El generador de sucesos waitTmCPU supervisa el tiempo promedio de espera de hebras ejecutablesque están esperando a obtener el tiempo de CPU en intervalos de un segundo, medidos enmilisegundos. waitTmCPU reside en el directorio cpu.

Posibilidades

AHAFS_THRESHOLD_VALUE_HIGHAHAFS_CALLBACK_INTRCNTXAHAFS_REMOTE_EVENT_ENABLED

Los umbrales especificados deben ser mayores que 0.

Códigos de retorno

Este generador de sucesos siempre devuelve 0 cuando se produce el suceso.

Mensaje del generador de sucesosEste generador de sucesos no pasa ningún mensaje como parte de sus datos de sucesos.

Archivos de supervisión aceptablesPara supervisar este suceso, se debe utilizar el archivo de supervisión siguiente:

/aha/cpu/waitTmCPU.monFactory/waitTmCPU.mon

En este directorio no se pueden crear otros archivos de supervisión.

Gestión del sistema operativo 397

Page 404: AIX Versión 7 - IBM

Datos de suceso de ejemplo

Los siguientes son datos de suceso de ejemplo de un suceso waitTmCPU con un valor de INFO_LVLde 3:

BEGIN_EVENT_INFOTIME_tvsec=1271779504TIME_tvnsec=18056777SEQUENCE_NUM=0CURRENT_VALUE=4RC_FROM_EVPROD=0END_EVENT_INFO

waitersFreePgEl generador de sucesos waitersFreePg supervisa el número de hebras que están esperando una tramalibre.Visión general

El generador de sucesos waitersFreePg supervisa el número de hebras que están esperando unatrama libre durante intervalos de un segundo. waitersFreePg reside en el subdirectorio mem.

Posibilidades

AHAFS_THRESHOLD_VALUE_HIGHAHAFS_CALLBACK_INTRCNTXAHAFS_REMOTE_EVENT_ENABLED

Los umbrales especificados deben ser mayores que 0.

Códigos de retornoEste generador de sucesos siempre devuelve 0 cuando se produce el suceso.

Mensaje del generador de sucesosEste generador de sucesos no pasa ningún mensaje como parte de sus datos de sucesos.

Archivos de supervisión aceptables

Para supervisar este suceso, se debe utilizar el archivo de supervisión siguiente:

/aha/mem/waitersFreePg.monFactory/waitersFreePg.mon

En este directorio no se pueden crear otros archivos de supervisión.

Datos de suceso de ejemplo

Los siguientes son datos de suceso de ejemplo de un suceso waitersFreePg con un valor deINFO_LVL de 3:

BEGIN_EVENT_INFOTIME_tvsec=1271779680TIME_tvnsec=347233732SEQUENCE_NUM=0CURRENT_VALUE=19843RC_FROM_EVPROD=0END_EVENT_INFO

waitTmPgInOutEl generador de sucesos waitTmPgInOut supervisa el promedio de tiempo de espera en milisegundospara las hebras que están a la espera de operaciones de entrada o salida de página.Visión general

El generador de sucesos waitTmPgInOut supervisa el promedio de tiempo de espera enmilisegundos para las hebras que están a la espera de que se completen las operaciones de entrada osalida de página durante un segundo período. El generador de sucesos waitTmPgInOut reside bajo eldirectorio mem.

398 AIX Versión 7.2: Gestión del sistema operativo

Page 405: AIX Versión 7 - IBM

Posibilidades

AHAFS_THRESHOLD_VALUE_HIGHAHAFS_CALLBACK_INTRCNTXAHAFS_REMOTE_EVENT_ENABLED

Los umbrales especificados deben ser mayores que 0.

Códigos de retornoEste generador de sucesos siempre devuelve 0 cuando se produce el suceso.

Mensaje del generador de sucesosEste generador de sucesos no pasa ningún mensaje como parte de sus datos de sucesos.

Archivos de supervisión aceptables

Para supervisar este suceso, se debe utilizar el archivo de supervisión siguiente:

/aha/mem/waitTmPgInOut.monFactory/waitTmPgInOut.mon

En este directorio no se pueden crear otros archivos de supervisión.

Datos de suceso de ejemplo

Los siguientes son datos de suceso de ejemplo de un suceso waitTmPgInOut con un valor deINFO_LVL de 3:

BEGIN_EVENT_INFOTIME_tvsec=1271779359TIME_tvnsec=941699413SEQUENCE_NUM=0CURRENT_VALUE=12RC_FROM_EVPROD=0END_EVENT_INFO

vmoEl generador de sucesos vmo supervisa los cambios en los parámetros ajustables vmo.Visión general

El generador de sucesos vmo reside bajo el directorio mem y supervisa los cambios de los ajustablesvmo siguientes.

Nota: El mandato vmo es un mandato que se autodocumenta. Es posible que algunos de losparámetros ajustables de la siguiente lista no estén soportados.

• npskill• npswarn• force_relalias_lite• low_ps_handling• maxpin% (se debe supervisar como el archivo maxpin_pct.mon)• nokilluid• relalias_percentage• vmm_default_pspa• npsrpgmin• npsrpgmax• npsscrubmin• npsscrubmax• scrubclean• rpgcontrol• rpgclean

Gestión del sistema operativo 399

Page 406: AIX Versión 7 - IBM

• vm_modlist_threshold• vmm_fork_policy• lru_poll_interval

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_STKTRACE_AVAILABLEAHAFS_REMOTE_EVENT_ENABLED

Códigos de retornoEste generador de sucesos siempre devuelve 0 cuando se produce el suceso.

Mensaje del generador de sucesosEste generador de sucesos no pasa ningún mensaje como parte de sus datos de sucesos.

Archivos de supervisión aceptables

Para supervisar cualquiera de los ajustables anteriores, se deben utilizar archivos de supervisión delformato siguiente:

/aha/mem/vmo.monFactory/<tunable>.mon

Los archivos que no se corresponden con los sucesos anteriores no se pueden crear bajo estedirectorio.

Datos de suceso de ejemplo

Los siguientes son datos de suceso de ejemplo de la modificación de un ajustable supervisado, con unvalor de INFO_LVL de 3.

BEGIN_EVENT_INFOTIME_tvsec=1271770698TIME_tvnsec=787565808SEQUENCE_NUM=0PID=5701808UID=0UID_LOGIN=0GID=0PROG_NAME=vmoRC_FROM_EVPROD=0STACK_TRACEaha_cbfn_wrapper+30ahafs_evprods+510vm_mon_tunable+B0vm_chk_mod_tun+5CC_vmgetinfo+53Cvmgetinfo+48.svc_instrvmo_write_vmsetkervars+134vmo_write_dynamic_values+404main+BC__start+70END_EVENT_INFO

schedoEste generador de sucesos supervisa los cambios en los ajustables schedo.Visión general

Actualmente, sólo se puede supervisar el ajustable vpm_xvcpus. Este generador de sucesosdevolverá una pila de rastreo y la información de suceso cuando se produzca el suceso. Estegenerador de sucesos reside en el directorio cpu.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_STKTRACE_AVAILABLEAHAFS_REMOTE_EVENT_ENABLED

400 AIX Versión 7.2: Gestión del sistema operativo

Page 407: AIX Versión 7 - IBM

Códigos de retornoEste generador de sucesos siempre devuelve 0 cuando se produce el suceso.

Mensaje del generador de sucesosEste generador de sucesos no pasa ningún mensaje como parte de sus datos de sucesos.

Archivos de supervisión aceptables

El archivo de supervisión que se utiliza para supervisar este ajustable es:

/aha/cpu/schedo.monFactory/vpm_xvcpus.mon.

En este directorio no se pueden crear otros archivos de supervisión.

Datos de suceso de ejemplo

Los siguientes son datos de suceso de la modificación del ajustable vpm_xvcpus con un valor deINFO_LVL de 3:

BEGIN_EVENT_INFOTIME_tvsec=1271771009TIME_tvnsec=251723285SEQUENCE_NUM=0PID=7143474UID=0UID_LOGIN=0GID=0PROG_NAME=schedoRC_FROM_EVPROD=0STACK_TRACEaha_cbfn_wrapper+30ahafs_evprods+510schedtune+394.svc_instrschedo_write_schedparams+94schedo_write_dynamic_values+6F0main+1B0__start+68END_EVENT_INFO

pidProcessMonEl generador de sucesos pidProcessMon supervisa la muerte del proceso, en función del PID.Visión general

El generador de sucesos pidProcessMon reside bajo el directorio cpu y supervisa la muerte delproceso, en función del PID.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_CALLBACK_INTRCNTX

Códigos de retornoEl generador de sucesos pidProcessMon sólo devuelve un único código de retorno 0.

Mensaje del generador de sucesosEste generador de suceso pasa el mensaje PROCESS_DOWN como parte de sus datos de suceso.

Archivos de supervisión aceptables

Para supervisar las muertes de procesos, se debe crear un archivo de supervisión bajo el directoriopidProcessMon.monFactory. Se debe utilizar un archivo de supervisión con el formato

/aha/cpu/pidProcessMon.monFactory/<process_PID>.mon

Datos de suceso de ejemplo

Los siguientes datos de suceso se generan tras la muerte de un proceso supervisado. Esta es la salidaque se muestra con el valor predeterminado de INFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1272348759

Gestión del sistema operativo 401

Page 408: AIX Versión 7 - IBM

TIME_tvnsec=379259175SEQUENCE_NUM=0RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=PROCESS_DOWNEND_EVPROD_INFOEND_EVENT_INFO

processMonEl generador de sucesos processMon supervisa la muerte de un proceso.Visión general

El generador de sucesos processMon reside en el directorio cpu y supervisa la muerte del proceso, enfunción del nombre de proceso. Sólo se supervisa el proceso padre de un proceso determinado con elmismo nombre. Esto significa que, si se tiene un árbol de procesos abc (pid 123)->xyz (pid 345)->xyz (pid 567) y se solicita supervisar el proceso xyz, se supervisará en realidad (pid = 345).

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornoEl generador de sucesos processMon sólo devuelve un único código de retorno 0.

Mensaje del generador de sucesosEste generador de suceso pasa el mensaje PROCESS_DOWN como parte de sus datos de suceso.

Archivos de supervisión aceptablesPara supervisar las muertes de procesos, se debe utilizar un archivo de supervisión con la misma víade acceso que la utilizada para iniciar el proceso, que debe crearse bajo el directorioprocessMon.monFactory. Por ejemplo, para supervisar un proceso denominado test, ubicado en eldirectorio /usr/samples/ahafs, se debe utilizar el archivo de supervisión /aha/cpu/processMon.monFactory/usr/samples/ahafs/test.mon.

Datos de suceso de ejemplo

Los siguientes datos de suceso se generan tras la muerte de un proceso supervisado. Esta es la salidaque se muestra con el valor predeterminado de INFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1272348909TIME_tvnsec=482502597SEQUENCE_NUM=0RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=PROCESS_DOWNEND_EVPROD_INFOEND_EVENT_INFO

inetsockEl generador de sucesos inetsock supervisa las operaciones de zócalo del protocolo TCP (TransmissionControl Protocol)y del protocolo UDP (User Datagram Protocol).Visión general

El generador de sucesos inetsock se coloca bajo el directorio de red y supervisa las operaciones dezócalo.

Las operaciones de zócalo siguiente se supervisan para TCP:

• Creación de un zócalo• Vinculación de un puerto o la dirección al zócalo• Escuchar en el zócalo• Aceptación y establecimiento de una conexión en el zócalo• Conexión a un zócalo

402 AIX Versión 7.2: Gestión del sistema operativo

Page 409: AIX Versión 7 - IBM

• Desconexión de un zócalo• Cierre del zócalo

Las operaciones de zócalo siguientes se supervisan para UDP:

• Creación de un zócalo• Vinculación de un puerto o la dirección al zócalo• Cierre del zócalo

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_CALLBACK_INTRCNTXAHAFS_REMOTE_EVENT_ENABLED

Mensaje del generador de sucesosEste generador de sucesos pasa información que está disponible en el bloque de control de zócalo yprotocolo como parte de sus datos de suceso.

Los siguientes datos se pasan para las operaciones de zócalo TCP:

Operación de zócalo Datos

PRU_ATTACH Información común:

• PROG_NAME• SO_FAMILY• SO_PID• SO_PROTO• SO_TYPE• SO_UID

PRU_BIND Información común más los elementos siguientes:

• SO_LADDR• SO_LPORT

PRU_LISTEN Información común más los elementos siguientes:

• SO_LADDR• SO_LPORT

PRU_ACCEPT Información común más los elementos siguientes:

• SO_FADDR• SO_FPORT• SO_LADDR• SO_LPORT

PRU_CONNECT Información común más los elementos siguientes:

• SO_FADDR• SO_FPORT• SO_LADDR• SO_LPORT

Gestión del sistema operativo 403

Page 410: AIX Versión 7 - IBM

Operación de zócalo Datos

PRU_DISCONNECT Información común más los elementos siguientes:

• SO_FADDR• SO_FPORT• SO_LADDR• SO_LPORT

PRU_DETACH,PRU_ABORT

Información común más los elementos siguientes:

• SO_LADDR• SO_LPORT• SO_FADDR• SO_FPORT

Los siguientes datos se pasan para las operaciones de zócalo UDP:

Operación de zócalo Datos

PRU_ATTACH Información común:

• PROG_NAME• SO_FAMILY• SO_PID• SO_PROTO• SO_TYPE• SO_UID

PRU_BIND,PRU_DYNBIND

Información común más los elementos siguientes:

• SO_LADDR• SO_LPORT

PRU_DETACH,PRU_ABORT

Información común más los elementos siguientes:

• SO_LADDR• SO_LPORT

Archivos de supervisión aceptablesPara supervisar las operaciones del zócalo, debe crearse un archivo de supervisión que tiene elnombre de la operación del zócalo en el directorio inetsock.monFactory. Por ejemplo, parasupervisar la creación del zócalo TCP, se utiliza el archivo de supervisión /aha/net/inetsock.monFactory/streamCreate.mon. De forma similar, para supervisar la creación delzócalo UDP, se utiliza el archivo de supervisión /aha/net/inetsock.monFactory/dgramCreate.mon.

Los archivos siguientes se utilizan para todas las operaciones de zócalo TCP supervisables AHAFS(Autonomic Estado Advisor File System):

• /aha/net/inetsock.monFactory/streamCreate.mon• /aha/net/inetsock.monFactory/streamBind.mon• /aha/net/inetsock.monFactory/streamListen.mon• /aha/net/inetsock.monFactory/streamAccept.mon• /aha/net/inetsock.monFactory/streamConnect.mon• /aha/net/inetsock.monFactory/streamDisconnect.mon

404 AIX Versión 7.2: Gestión del sistema operativo

Page 411: AIX Versión 7 - IBM

• /aha/net/inetsock.monFactory/streamClose.mon

Los archivos siguientes se utilizan para todas las operaciones de zócalo UDP supervisables AHAFS:

• /aha/net/inetsock.monFactory/dgramCreate.mon• /aha/net/inetsock.monFactory/dgramBind.mon• /aha/net/inetsock.monFactory/dgramClose.mon

Datos de suceso de ejemploLos siguientes datos de suceso se generan a partir de la creación de un zócalo. El siguiente ejemplo esla salida que se muestra con una salida nivel de 2 (INFO_LVL=2):

AHAFS event: /aha/net/inetsock.monFactory/streamCreate.mon---------------------------------------------------

BEGIN_EVENT_INFOTime: Lun Ene 23 23:04:06 2012Número de secuencia: 1RC_FROM_EVPROD=0BEGIN_EVPROD_INFOPROG_NAME=xmtopasSO_FAMILY=2SO_TYPE=1SO_PROTO=6SO_UID=0SO_PID=5243048END_EVPROD_INFOEND_EVENT_INFO

Sucesos de clústerCuando un sistema forma parte de un clúster, puede recibir notificaciones de los sucesos que seproducen en los otros nodos que forman parte del mismo clúster. Los generadores de sucesos queespecifican la posibilidad AHAFS_REMOTE_EVENT_ENABLED dan soporte a una supervisión que abarcatodo el clúster. Todos los generadores de sucesos de AIX Event Infrastructure, salvo pidProcessMon ydiskState pueden proporcionar este tipo de notificaciones remotas.

Comportamiento del mandato mkcluster con AIX Event Infrastructure:

Si AIX Event Infrastructure no se ha cargado en un sistema y se ejecuta el mandato mkcluster, elseudosistema de archivos de AIX Event Infrastructure se montará en el directorio /aha y los nombres dearchivos de supervisión comenzarán a partir del directorio /aha. Si AIX Event Infrastructure ya se hacargado en un sistema y se ejecuta el mandato mkcluster, el pseudosistema de archivos de AIX EventInfrastructure no se volverá a montar y los nombres de archivos de supervisión comenzarán a partir deldirectorio en el que se haya montado el pseudosistema de archivos de AIX Event Infrastructure. Lasaplicaciones de cliente deben comprobar si el AIX Event Infrastructure se haya cargado el seudosistemade archivos, para obtener las vías de acceso a archivos.

Para poder recibir los sucesos del clúster, debe especificar CLUSTER=YES cuando escriba el archivo desupervisión que representa el suceso que se ha de supervisar en el clúster. Para que se puedan detectarlos sucesos remotos, un proceso de supervisión debe supervisar el suceso en cada nodo en que seespecifique CLUSTER=YES.

Los sucesos recibidos desde un nodo remoto no incluyen la información de usuario o de procesos, ni lapila de rastreo, incluso si el generador de sucesos da soporte a la misma.

Para los sucesos recibidos no se da soporte al rastreo de pila de nodos remotos, incluso si el generadorde sucesos da soporte al mismo.

La información del clúster NODE_NUMBER, NODE_ID y CLUSTER_ID estará disponible entre losdelimitadores BEGIN_EVPROD_INFO y END_EVPROD_INFO para todos los sucesos de clúster. Estoayuda al programa de supervisión a identificar en qué nodo se ha producido el suceso. La información quedevuelve la salida del mandato lscluster -m en los campos: el ID abreviado del clúster para el nodo, eluuid del nodo y los uuids del clúster devueltos en la salida de sucesos del AIX Event Infrastructure en loscampos NODE_NUMBER, NODE_ID, CLUSTER_ID respectivamente.

Gestión del sistema operativo 405

Page 412: AIX Versión 7 - IBM

La siguiente es una salida de ejemplo de una aparición local y remota de un suceso con un INFO_LVL de2, y un generador de sucesos que especifica la posibilidad AHAFS_STKTRACE_AVAILABLE.

Datos de suceso local Datos de suceso remoto

BEGIN_EVENT_INFO TIME_tvsec=1262670289 TIME_tvnsec=453840229 SEQUENCE_NUM=0 PID=4194474 UID=0 UID_LOGIN=0 GID=0 PROG_NAME=rpc.statd RC_FROM_EVPROD=0 BEGIN_EVPROD_INFO NODE_NUMBER=1 NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404 EVENT_TYPE=PROCESS_DOWN END_EVPROD_INFO END_EVENT_INFO

BEGIN_EVENT_INFO TIME_tvsec=1262670289 TIME_tvnsec=248144872 SEQUENCE_NUM=0 RC_FROM_EVPROD=0 BEGIN_EVPROD_INFO EVENT_TYPE=PROCESS_DOWN NODE_NUMBER=1 NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFO END_EVENT_INFO

Generadores de sucesos predefinidos para una instancia AIX con reconocimiento declúster

Estos generadores de sucesos sólo están disponibles cuando el sistema forma parte de un clúster activo.

nodeListEl generador de sucesos nodeList supervisa los cambios de los miembros del clúster.Visión general

El generador de sucesos nodeList reside en el directorio cluster y supervisa los nodos que se añadeno eliminan o del clúster. Este generador de sucesos sólo está disponible cuando el sistema formaparte de un clúster. Este suceso se genera cuando se añade o elimina un nodo del clúster (porejemplo, mediante el mandato chcluster).

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornonodeList devuelve 0 como código de retorno. Sólo si se elimina el clúster, se devuelveAHAFS_CLUSTER_REMOVE (-1).

Mensaje del generador de sucesosEste generador de sucesos pasa los mensajes NODE_ADD y NODE_DELETE como parte de sus datosde suceso. Asimismo, dado que se trata de un generador de sucesos del clúster, adicionalmentepasará la información de NODE_NUMBER, NODE_ID y CLUSTER_ID.

Archivos de supervisión aceptablesPara supervisar los cambios en la lista de nodos, se debe crear un archivo de supervisión bajo eldirectorio nodeList.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/cluster/nodeList.monFactory/nodeListEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso nodeList con el valor predeterminado de INFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271922590TIME_tvnsec=886742634SEQUENCE_NUM=1

406 AIX Versión 7.2: Gestión del sistema operativo

Page 413: AIX Versión 7 - IBM

RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=NODE_ADDNODE_NUMBER=1NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

clDiskListEl generador de sucesos clDiskList supervisa los cambios de los miembros del clúster.Visión general

El generador de sucesos clDiskList reside en el directorio disk y supervisa los nodos que se añaden oeliminan del clúster. Este generador de sucesos sólo está disponible cuando el sistema forma partede un clúster. Este suceso se genera cuando se añade o elimina un disco del clúster (por ejemplo,mediante el mandato chcluster).

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornoclDiskList devuelve 0 como código de retorno. Sólo si se elimina el clúster, se devuelveAHAFS_CLUSTER_REMOVE (-1).

Mensaje del generador de sucesosEste generador de sucesos pasa los mensajes DISK_ADD y DISK_DELETE como parte de sus datosde suceso en el campo EVENT_TYPE. Pasará el DISK_NAME y el DISK_UID del discocorrespondiente. Asimismo, dado que forma parte de un generador de sucesos del clúster,adicionalmente pasará la información NODE_NUMBER, NODE_ID y CLUSTER_ID.

Archivos de supervisión aceptablesPara supervisar los cambios en la lista de discos, se debe crear un archivo de supervisión bajo eldirectorio clDiskList.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/disk/clDiskList.monFactory/clDiskListEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso clDiskList con el valor predeterminado deINFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271927983TIME_tvnsec=696543410SEQUENCE_NUM=0RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=DISK_ADDDISK_NAME=cldisk1DISK_UID=3E213600A0B800016726C000000FF4B8677C80F1724-100 FAStT03IBMfcpNODE_NUMBER=2NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

linkedClEl generador de sucesos linkedCl se genera cuando se enlaza o desenlaza un clúster con otro clúster.Visión general

El generador de sucesos linkedCl reside en el directorio cluster y supervisa los cambios de estado deenlace. Este generador de sucesos sólo está disponible cuando el sistema forma parte de un clúster.Este suceso se genera cuando se enlaza o desenlaza un clúster con otro clúster.

Gestión del sistema operativo 407

Page 414: AIX Versión 7 - IBM

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornolinkedCl devuelve 0 como código de retorno. Sólo si se elimina el clúster, se devuelveAHAFS_CLUSTER_REMOVE (-1).

Mensaje del generador de sucesosEste generador de suceso pasa los mensajes LINK_UP o LINK_DOWN como parte de sus datos desuceso. Pasará la información de LINK_ID correspondiente. Asimismo, dado que se trata de ungenerador de sucesos del clúster, adicionalmente pasará la información de NODE_NUMBER,NODE_ID y CLUSTER_ID.

Archivos de supervisión aceptablesPara supervisar los cambios en la lista de nodos, se debe crear un archivo de supervisión bajo eldirectorio linkedCl.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/cluster/linkedCl.monFactory/linkedClEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso linkedCl con el valor predeterminado de INFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271224025TIME_tvnsec=795042625SEQUENCE_NUM=0RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=LINK_DOWNLINK_ID=0x7BE9C1BDNODE_NUMBER=1NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

nodeContactEl generador de sucesos nodeContact supervisa el último estado de contacto del nodo de un clúster.Visión general

El generador de sucesos nodeContact reside bajo el directorio cluster y supervisa el estado del últimocontacto del nodo del clúster. Este generador de sucesos sólo está disponible cuando el sistemaforma parte de un clúster.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornonodeContact devuelve 0 como código de retorno. Sólo si se elimina el clúster, se devuelveAHAFS_CLUSTER_REMOVE (-1).

Mensaje del generador de sucesosEste generador de suceso pasa los mensajes CONNECT_UP y CONNECT_DOWN como parte de susdatos de suceso. Pasará el INTERFACE_NAME correspondiente. Asimismo, dado que se trata de ungenerador de sucesos del clúster, adicionalmente pasará la información NODE_NUMBER, NODE_ID yCLUSTER_ID.

408 AIX Versión 7.2: Gestión del sistema operativo

Page 415: AIX Versión 7 - IBM

Archivos de supervisión aceptablesPara supervisar los cambios en la lista de nodos, se debe crear un archivo de supervisión bajo eldirectorio nodeContact.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/cluster/nodeContact.monFactory/nodeContactEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso nodeContact con el valor predeterminado deINFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271921874TIME_tvnsec=666770128SEQUENCE_NUM=0RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=CONNECT_DOWNINTERFACE_NAME=en0NODE_NUMBER=2NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

nodeStateEl generador de sucesos nodeState supervisa el estado de un nodo del clúster.Visión general

El generador de sucesos nodeState reside bajo el directorio del clúster y supervisa el estado de unnodo del clúster. Este generador de sucesos sólo está disponible cuando el sistema forma parte de unclúster. Este suceso se genera, por ejemplo, cuando se produce una colisión en el nodo o cuando ésteconcluye.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornonodeState devuelve 0 como código de retorno. Sólo si se elimina el clúster, se devuelveAHAFS_CLUSTER_REMOVE (-1).

Mensaje del generador de sucesosEste generador de suceso pasa los mensajes NODE_UP y NODE_DOWN como parte de sus datos desuceso. Asimismo, dado que se trata de un generador de sucesos del clúster, adicionalmente pasarála información NODE_NUMBER, NODE_ID y CLUSTER_ID.

Archivos de supervisión aceptablesPara supervisar los cambios de estado de los nodos, se debe crear un archivo de supervisión bajo eldirectorio nodeState.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/cluster/nodeState.monFactory/nodeStateEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso nodeState con el valor predeterminado deINFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271921536TIME_tvnsec=68254861SEQUENCE_NUM=1RC_FROM_EVPROD=0BEGIN_EVPROD_INFO

Gestión del sistema operativo 409

Page 416: AIX Versión 7 - IBM

EVENT_TYPE=NODE_UPNODE_NUMBER=2NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

nodeAddressEl generador de sucesos nodeAddress supervisa la dirección de red del nodo.Visión general

El generador de sucesos nodeAddress reside bajo el directorio cluster y supervisa la dirección de reddel nodo. Este generador de sucesos sólo está disponible cuando el sistema forma parte de unclúster. Por ejemplo, este suceso se genera cuando se añade o elimina un alias de una interfaz de red.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornonodeAddress devuelve 0 como código de retorno. Sólo si se elimina el clúster, se devuelveAHAFS_CLUSTER_REMOVE (-1).

Mensaje del generador de sucesosEste generador de sucesos pasa los mensajes ADDRESS_ADD y ADDRESS_DELETE como parte desus datos de suceso. Pasará la información de INTERFACE_NAME de la interfaz correspondiente y lainformación FAMILY, ADDRESS y NETMASK de la dirección IP. Asimismo, dado que se trata de ungenerador de sucesos del clúster, adicionalmente pasará la información NODE_NUMBER, NODE_ID yCLUSTER_ID.

Archivos de supervisión aceptablesPara supervisar los cambios en la lista de nodos, se debe crear un archivo de supervisión bajo eldirectorio nodeAddress.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/cluster/nodeAddress.monFactory/nodeAddressEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso nodeAddress con el valor predeterminado deINFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271922254TIME_tvnsec=9053410SEQUENCE_NUM=0RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=ADDRESS_ADDINTERFACE_NAME=et0FAMILY=2ADDRESS=0x0A0A0A0ANETMASK=0xFF000000NODE_NUMBER=2NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

networkAdapterStateEl generador de sucesos networkAdapterState supervisa la interfaz de red de un nodo del clúster.Visión general

El generador de sucesos networkAdapterState reside bajo el directorio cluster y supervisa la interfazde red de un nodo del clúster. Este generador de sucesos sólo está disponible cuando el sistemaforma parte de un clúster. Este suceso se genera cuando una interfaz de red se desactiva o se activa.

410 AIX Versión 7.2: Gestión del sistema operativo

Page 417: AIX Versión 7 - IBM

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornonetworkAdapterState devuelve 0 como código de retorno. Sólo si se elimina el clúster, se devuelveAHAFS_CLUSTER_REMOVE (-1).

Mensaje del generador de sucesosEste generador de sucesos pasa los mensajes ADAPTER_UP, ADAPTER_DOWN, ADAPTER_ADD yADAPTER_DEL como parte de sus datos de suceso. Pasará el INTERFACE_NAME correspondiente.Asimismo, dado que se trata de un generador de sucesos del clúster, adicionalmente pasará lainformación de NODE_NUMBER, NODE_ID y CLUSTER_ID.

Archivos de supervisión aceptablesPara supervisar los cambios en la lista de nodos, se debe crear un archivo de supervisión bajo eldirectorio networkAdapterState.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/cluster/networkAdapterState.monFactory/networkAdapterStateEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso networkAdapterState con el valor predeterminadode INFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271920539TIME_tvnsec=399378269SEQUENCE_NUM=1RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=ADAPTER_UPINTERFACE_NAME=en0NODE_NUMBER=2NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

clDiskStateEl generador de sucesos clDiskState supervisa los discos del clúster.Visión general

El generador de sucesos clDiskState reside en el directorio disk y supervisa los discos del clúster.Este generador de sucesos sólo está disponible cuando el sistema forma parte de un clúster. Estesuceso se genera cuando un disco del clúster se desactiva o se activa.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornoclDiskState devuelve 0 como código de retorno. Sólo si se elimina el clúster, se devuelveAHAFS_CLUSTER_REMOVE (-1).

Mensaje del generador de sucesosEste generador de sucesos pasa los mensajes DISK_UP y DISK_DOWN como parte de sus datos desuceso en el campo EVENT_TYPE junto con el nombre del disco del clúster correspondiente.Asimismo, dado que se trata de un generador de sucesos del clúster, adicionalmente pasará lainformación NODE_NUMBER, NODE_ID y CLUSTER_ID.

Gestión del sistema operativo 411

Page 418: AIX Versión 7 - IBM

Archivos de supervisión aceptablesPara supervisar los discos del clúster, se debe crear un archivo de supervisión bajo el directorioclDiskState.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/disk/clDiskState.monFactory/clDiskStateEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso clDiskState con el valor predeterminado deINFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271935734TIME_tvnsec=265210314SEQUENCE_NUM=1RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=DISK_DOWNDISK_NAME=cldisk1NODE_NUMBER=2NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

repDiskStateEl generador de sucesos repDiskState supervisa los discos del repositorio.Visión general

El generador de sucesos repDiskState reside en el directorio disk y supervisa los discos delrepositorio. Este generador de sucesos sólo está disponible cuando el sistema forma parte de unclúster. Este suceso se genera cuando un disco del repositorio se desactiva o se activa.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornorepDiskState devuelve 0 como código de retorno. Sólo si se elimina el clúster, se devuelveAHAFS_CLUSTER_REMOVE (-1).

Mensaje del generador de sucesosEste generador de sucesos pasa los mensajes REP_UP y REP_DOWN como parte de sus datos desuceso en el campo EVENT_TYPE, junto con el nombre de disco del disco del repositoriocorrespondiente. Asimismo, dado que se trata de un generador de sucesos del clúster,adicionalmente pasará la información de NODE_NUMBER, NODE_ID y CLUSTER_ID.

Archivos de supervisión aceptablesPara supervisar discos del repositorio, se debe crear adicionalmente un archivo de supervisión en eldirectorio repDiskState.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/disk/repDiskState.monFactory/repDiskStateEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso repDiskState con el valor predeterminado deINFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271933757TIME_tvnsec=134003703SEQUENCE_NUM=1RC_FROM_EVPROD=0BEGIN_EVPROD_INFO

412 AIX Versión 7.2: Gestión del sistema operativo

Page 419: AIX Versión 7 - IBM

EVENT_TYPE=REP_UPDISK_NAME=hdisk2NODE_NUMBER=2NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

diskStateEl generador de sucesos diskstate supervisa los cambios de discos locales.Visión general

El generador de sucesos diskState reside en el directorio disk y supervisa los cambios de discoslocales. Este generador de sucesos sólo está disponible cuando el sistema forma parte de un clúster.Este suceso se genera cuando un disco local se desactiva o se activa. Este suceso se notificará sólopara discos que están soportados por la infraestructura de almacenaje.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_CALLBACK_INTRCNTX

Códigos de retornodiskState devuelve 0 como código de retorno. Sólo se devuelve AHAFS_CLUSTER_REMOVE (-1) si seelimina el clúster.

Mensaje del generador de sucesosEste generador de sucesos pasa los mensajes LOCAL_UP y LOCAL_DOWN junto con el nombre dedisco local correspondiente como parte de sus datos de suceso. Asimismo, como generador desucesos del clúster adicionalmente pasará la información de NODE_NUMBER, NODE_ID yCLUSTER_ID.

Archivos de supervisión aceptablesPara supervisar discos locales, se creará un archivo de supervisión en el directoriodiskState.monFactory. Se debe utilizar el nombre del archivo de supervisión con el formato

/aha/disk/diskState.monFactory/<hdiskn>.mon

junto con el nombre del disco local que se ha de supervisar.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso diskState con el valor predeterminado deINFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271935029TIME_tvnsec=958362343SEQUENCE_NUM=1RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=LOCAL_UPDISK_NAME=hdisk4NODE_NUMBER=2NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

vgStateEl generador de sucesos vgstate puede verificar el estado del VG en un disco.Visión general

El generador de sucesos vgState reside bajo el directorio disk. Este generador de sucesos sólo estádisponible cuando el sistema forma parte de un clúster. Cuando un se produce un suceso deactivación o desactivación de un disco local (registrado con diskState) se desencadena un sucesoVG_UP y VG_DOWN correspondiente para el grupo de volúmenes que reside en dicho disco. Con este

Gestión del sistema operativo 413

Page 420: AIX Versión 7 - IBM

generador de sucesos, una aplicación puede verificar el estado de un VG en el disco con elsubsistema LVM.

Posibilidades

AHAFS_THRESHOLD_STATEAHAFS_REMOTE_EVENT_ENABLEDAHAFS_CALLBACK_INTRCNTX

Códigos de retornovgState devuelve 0 como código de retorno. Sólo se devuelve AHAFS_CLUSTER_REMOVE (-1) si seelimina el clúster.

Mensaje del generador de sucesosEste generador de sucesos pasa los mensajes VG_UP y VG_DOWN como parte de sus datos desuceso. Pasará el nombre de disco y el nombre de grupo de volúmenes correspondientes. Asimismo,dado que se trata de un generador de sucesos del clúster, adicionalmente pasará la información deNODE_NUMBER, NODE_ID y CLUSTER_ID.

Archivos de supervisión aceptablesPara supervisar los cambios en la lista de nodos, se debe crear un archivo de supervisión bajo eldirectorio vgState.monFactory. Se debe utilizar el nombre de archivo de supervisión

/aha/disk/vgState.monFactory/vgStateEvent.mon

En este directorio no se pueden crear otros archivos de supervisión.Datos de suceso de ejemplo

Los siguientes son datos de suceso de un suceso vgstate con el valor predeterminado de INFO_LVL.

BEGIN_EVENT_INFOTIME_tvsec=1271915408TIME_tvnsec=699408296SEQUENCE_NUM=0RC_FROM_EVPROD=0BEGIN_EVPROD_INFOEVENT_TYPE=VG_UPDISK_NAME=hdisk3VG_NAME=myvgNODE_NUMBER=2NODE_ID=0xF079E8C801C11DFCLUSTER_ID=0x6EA7B08888D811DFB918BEB25635B404END_EVPROD_INFOEND_EVENT_INFO

414 AIX Versión 7.2: Gestión del sistema operativo

Page 421: AIX Versión 7 - IBM

Avisos

Esta información se ha desarrollado para productos y servicios ofrecidos en EE.UU.

Es posible que IBM no ofrezca en otros países los productos, servicios o características que se describenen este documento. Póngase en contacto con el representante de IBM local para obtener informaciónsobre los servicios y productos actualmente disponibles en su área. Las referencias a programas,productos o servicios de IBM no pretenden establecer ni implicar que sólo se puedan utilizar productos,programas o servicios de IBM. También se puede utilizar otro producto, programa o servicio que tenga lamisma función y no infrinja el derecho de propiedad intelectual de IBM. Sin embargo, seráresponsabilidad del usuario evaluar y verificar el funcionamiento de cualquier producto, programa oservicio que no sea de IBM.

Puede que IBM tenga patentes o solicitudes de patente pendientes que cubran la materia descrita eneste documento. La entrega de este documento no le otorga ninguna licencia sobre dichas patentes.Puede enviar sus consultas de licencias, por escrito, a la dirección siguiente:

IBM Director of LicensingIBM Corporation North Castle Drive, MD-NC119Armonk, NY 10504-1785 EE.UU.

Para realizar consultas sobre licencias relacionadas con información del juego de caracteres de doblebyte(DBCS), póngase en contacto con el Departamento de propiedad intelectual de IBM de su país oenvíe las consultas, por escrito, a:

Intellectual Property LicensingLegal and Intellectual Property LawIBM Japan Ltd.19-21, Nihonbashi-Hakozakicho, Chuo-kuTokio 103-8510, Japón

INTERNATIONAL BUSINESS MACHINES CORPORATION PROPORCIONA ESTA PUBLICACIÓN "TAL CUAL"SIN GARANTÍAS DE NINGUNA CLASE, NI EXPLÍCITAS NI IMPLÍCITAS, QUE INCLUYEN, PERO NO SELIMITAN A, LAS GARANTÍAS IMPLÍCITAS DE NO VULNERACIÓN, MERCANTIBILIDAD O ADECUACIÓN AUN FIN DETERMINADO. Algunas jurisdicciones no permiten la renuncia a las garantías explícitas oimplícitas en determinadas transacciones; por lo tanto, es posible que esta declaración no sea aplicableen su caso.

Esta información podría incluir imprecisiones técnicas o errores tipográficos. Periódicamente se realizancambios en la información que aquí se presenta; estos cambios se incorporarán en las nuevas edicionesde la publicación. IBM puede realizar en cualquier momento mejoras o cambios en los productos oprogramas descritos en esta publicación sin previo aviso.

Todas las referencias hechas en este documento a sitios web que no son de IBM se proporcionanúnicamente a título informativo y no representan en modo alguno una recomendación de dichos sitiosweb. Los materiales de dichos sitios web no forman parte de los materiales para este producto de IBM yel uso de dichos sitios web corre a cuenta y riesgo del Cliente.

IBM puede utilizar o distribuir la información que se le proporcione del modo que considere convenientesin incurrir por ello en ninguna obligación con el remitente.

Los tenedores de licencias de este programa que deseen disponer de información acerca de éste con elfin de permitir: (i) el intercambio de información entre programas creados independientemente y otrosprogramas (incluido éste) y (ii) la utilización mutua de la información que se ha intercambiado, debenponerse en contacto con:

IBM Director of LicensingIBM Corporation North Castle Drive, MD-NC119

© Copyright IBM Corp. 2010, 2018 415

Page 422: AIX Versión 7 - IBM

Armonk, NY 10504-1785 EE.UU.

Esta información podría estar disponible, en función de los términos y condiciones correspondientes,incluyendo en algunos casos el pago de una tarifa.

IBM proporciona el programa bajo licencia descrito en esta información y todo el material bajo licenciadisponible para él de acuerdo con los términos del Contrato del cliente de IBM, el Acuerdo internacionalde licencia de programas de IBM o cualquier contrato equivalente existente entre las partes.

Los ejemplos de datos de rendimiento y de clientes citados se presentan solamente a efectos ilustrativos.Los resultados reales de rendimiento pueden variar en función de configuraciones específicas ycondiciones de operación.

La información relacionada con los productos que no son de IBM se ha obtenido de los proveedores detales productos, de los anuncios que éstos han publicado o de otras fuentes de información públicamentedisponibles. IBM no ha probado esos productos y no puede confirmar la precisión de su rendimiento, sucompatibilidad ni ningún otro aspecto. Las preguntas relacionadas con las posibilidades de los productosque no son de IBM deben dirigirse a los proveedores de tales productos.

Las declaraciones relacionadas con las futuras directrices o intenciones de IBM están sujetas a cambios oa su retirada sin previo aviso y sólo representan metas u objetivos.

Todos los precios de IBM que se muestran son precios actuales recomendados por IBM de venta alpúblico y están sujetos a cambios sin notificación previa. Los precios de los distribuidores pueden variar.

Esta documentación se suministra sólo a efectos de planificación. La información incluida en estedocumento puede cambiar antes de que los productos descritos estén disponibles.

Esta información contiene ejemplos de datos y de informes que se utilizan diariamente en lasoperaciones de las empresas. Para mostrarlos de la forma más completa posible, los ejemplos incluyennombres de personas, de empresas, de marcas y de productos. Todos estos nombres son ficticios ycualquier similitud con nombres reales de personas o empresas es mera coincidencia.

LICENCIA DE COPYRIGHT:

Esta información contiene programas de aplicación de ejemplo en lenguaje fuente que ilustran técnicasde programación en diversas plataformas operativas. Puede copiar, modificar y distribuir estos programasde muestra de cualquier forma, sin pagar nada a IBM, con los fines de desarrollar, utilizar, comercializar odistribuir programas de aplicación de acuerdo con la interfaz de programación de aplicaciones para laplataforma operativa para la cual se han escrito los programas de muestra. Estos ejemplos no se hancomprobado de forma exhaustiva en todas las condiciones. Por consiguiente, IBM no puede garantizar niconfirmar la fiabilidad, capacidad de servicio o funcionamiento de estos programas. Los programas demuestra se proporcionan "TAL CUAL" sin garantía de ningún tipo. IBM no será responsable de ningúndaño resultante del uso de los programas de ejemplo.

Cada copia de cualquier parte de estos programas de ejemplo o de cualquier trabajo que derive de éstosdebe incluir un aviso de copyright, tal como se indica a continuación:© (nombre de la empresa) (año).

Algunas partes de este código procede de los programas de ejemplo de IBM Corp. Sample Programs.© Copyright IBM Corp. _especificar año o años_.

Consideraciones de política de privacidadLos productos de software de IBM, que incluyen el software como soluciones de servicios, (“Ofertas desoftware”) pueden utilizar cookies u otras tecnologías para recopilar información de uso de producto y asímejorar la experiencia del usuario final y adaptar las interacciones con el usuario final o para otros fines.En la mayoría de los casos, las Ofertas de software no recopilan información de identificación personal.Algunas de nuestras Ofertas de software le ayudan a recopilar dicha información. En caso de que una

416 Avisos

Page 423: AIX Versión 7 - IBM

Oferta de software utilice cookies para recopilar información de identificación personal, se detalla acontinuación información específica sobre el uso que hace de las cookies esta oferta.

Esta Oferta de software no utiliza cookies ni otras tecnologías para recopilar información de identificaciónpersonal.

Si las configuraciones implementadas para esta Oferta de software le ofrece como cliente la posibilidadde recopilar información de identificación personal de los usuarios finales mediante cookies y otrastecnología, debería buscar asesoramiento jurídico sobre las leyes aplicables con respecto a larecopilación de datos así como tener noción de los requisitos expresos de notificación y consentimiento.

Si desea obtener más información sobre el uso de varias tecnologías, incluyendo el uso de las cookiespara la recopilación de datos, consulte la Política de privacidad de IBM en http://www.ibm.com/privacy ylas declaraciones de privacidad en línea de IBM en http://www.ibm.com/privacy/details, la seccióndenominada “Cookies, balizas de web y otras tecnologías” y “Declaración de privacidad de productossoftware y ofertas de Software-as-a-Service (SaaS) de IBM” en http://www.ibm.com/software/info/product-privacy.

Marcas registradasIBM, el logotipo de IBM e ibm.com son marcas registradas o marcas comerciales registradas deInternational Business Machines Corp., registradas en muchas jurisdicciones de todo el mundo. Puedeque otros productos o nombres de servicio sean marcas registradas de IBM u otras compañías. Seencuentra disponible una lista de las marcas registradas de IBM en el sitio web en Copyright andtrademark information en www.ibm.com/legal/copytrade.shtml.

Linux es una marca registrada de Linus Torvalds en los Estados Unidos, en otros países o en ambos.

UNIX es una marca registrada de The Open Group en Estados Unidos y/o en otros países.

Windows es una marca registrada de Microsoft Corporation en los Estados Unidos, en otros países, oambos.

Avisos 417

Page 424: AIX Versión 7 - IBM

418 AIX Versión 7.2: Gestión del sistema operativo

Page 425: AIX Versión 7 - IBM

Índice

Caracteres Especiales. mandato incorporado

shell Bourne 278shell Korn o POSIX 242

/etc/hosts 17/usr/bin/ksh93 229

Aacceder a un sistema que no arranca 19ACL

ejemplo 326ejemplo para AIXC ACL 323mantenimiento 320para objetos del sistema de archivos 320

actividad del sistemarealizar seguimiento 163

ahafs_evprodsdefinición 376

AIXvisión general para gestores del sistema BSD

espacio de paginación 351AIX Event Infrastructure (AHAFS) 373AIX Runtime Expert 64AIXwindows

archivos de arranque 336inicio del Gestor de ventanas 336

aliascreación 268de seguimiento de vía 269eliminación 268exportación 268listado 268no soportados 268r 135shell Korn o POSIX 268

alias de mandatosshell Korn o POSIX 268sustitución de la tilde 269

alias de seguimiento de vía 269alias r 135anomalía del sistema

comprobar hardware 9comprobar procesos 10reiniciar el sistema 11

Apariciones de sucesos no disponiblesdefinición 384

archivodescriptor 365, 368mandato 198

Archivo .env 336Archivo .mwmrc 338Archivo .profile 51, 335Archivo .Xdefaults 338Archivo .xinitrc 337archivo /dev/null 368

Archivo /etc/environment 334archivo /etc/inittab

cambio 8archivo /etc/passwd 210archivo /etc/profile 51Archivo /etc/profile 335archivo /etc/security/passwd 314archivo inittab

daemon srcmstr en 188archivo motd 63archivos

.mwmrc 338

.profile 335

.Xdefaults 338

.xinitrc 337/dev/null 368/etc/environment 334/etc/passwd 210/etc/profile 335/etc/security/passwd 314adición de una sola línea de texto 371archivador 48Archivo .env 336ASCII 192binarios 192búsqueda de una serie 200cambio de los permisos 319cambio de propiedad 316clasificación de texto 200coincidencia de expresiones 197comparación 201compresión 37concatenación 367convenios de denominación 193copia 196copia de cinta o disco 47copia de DOS 207copia de pantalla 371copia en DOS 207corte de campos seleccionados de 202creación con redirección desde el teclado 367descompresión 39desempaquetado 39ejecutables 192eliminación 195eliminación de columnas 204eliminación de enlazados 206empaquetado 37enlace 204, 205entorno 334expansión 39expresiones normales 195formateo para visualización 199fusión de las líneas de varios 203grabación en la salida 202HISTFILE 268identificación de tipo 198

419

Page 426: AIX Versión 7 - IBM

archivos (continuación)localización de secciones 133manejo 195metacaracteres 194modalidades de acceso 316mover 196nombres de vías de acceso 193numeración de líneas 204para gestores del sistema BSD 345, 350pegado de texto 203permisos 192, 316propiedad 315realización de la copia de seguridad 49recuperación del almacenamiento 48renombrar 196restauración 27, 50supresión 195supresión del DOS 208unión 367visión general 192visualización de las primeras líneas 202visualización de las últimas líneas 202visualización de tipos 198visualización del contenido 199

archivos de arranqueAIXwindows 336Servidor X 336shell C 288sistema 334

archivos de DOSconversión 207copia 207listado del contenido 208supresión 208

archivos de inicio de sesión.profile 335/etc/environment 334/etc/profile 335Archivo .env 336Archivo .profile 51Archivo /etc/profile 51

archivos de perfil 334archivos de recursos

modificación 338archivos de texto

búsqueda de series 200clasificación 200concatenación 367corte de secciones 202creación desde la entrada de teclado 367eliminación de columnas 204numeración de líneas 204pegado de secciones 203

archivos enlazadoseliminación 206

argumentosen mandatos 131

aritméticadescomposición de números en factores 140

aritmética de enteros 221arrancar

comprensiónmodalidad de mantenimiento 18proceso de arranque del sistema 16

arrancar (continuación)comprensión (continuación)

sistema de archivos RAM 19visión general 15

desde disco duro para mantenimiento 5diagnosticar problemas 20Gestores del sistema BSD 350rearrancar un sistema en ejecución 4sistema colgado 6

arranquecontrol de ventanas y aplicaciones 337

asignaciónvalores y atributos 234

atributossoportados por el shell Korn o POSIX 234

autenticación 314autorización 323

Bbatería del reloj 61batería del sistema 61blancos

definición 211interpretación de 288

bloqueodel terminal 327

borrado de la pantalla 370BSD

comparación con AIX para gestores del sistemaespacio de paginación 351

comparación para gestores del sistemaarrancar 350buscar y examinar archivos 350comparación de archivos 345contabilidad 348copia de seguridad 349cron 362dispositivos 362impresoras 356mandatos 358NFS y NIS (anteriormente Páginas Amarillas) 347red 342, 347, 351, 352rendimiento 355sistemas de archivos 364UUCP 363

documentación en línea y mandato man 347buf_wrap 391búsqueda

archivos 197palabras clave 140series de texto en archivos 200

búsqueda con palabra clavemandato apropos 140

bytescálculo del número de 201

Ccálculo del número

bytes 201líneas 201palabras 201

420

Page 427: AIX Versión 7 - IBM

calendariovisualización 138

cambiofont por omisión 340indicador del sistema 341permisos 319prioridad de los procesos 144teclas de control 341valores predeterminados 338

cancelaciónprocesos en primer plano 144

caracteresdelimitación en el shell Korn o POSIX 226

caracteres comodínasterisco 194definición 211interrogante 194

caracteres delimitadoresshell Bourne 276shell Korn o POSIX 226

cerrar el sistema 50cintas

comprobación de la integridad 48copia en o desde 48utilización como soporte de copia de seguridad 23

clasesusuario 316

clases de caracteresshell Bourne 215

clasificaciónarchivos de texto 200

clDiskList 407clDiskState 411coincidencia de patrones

shell Bourne 273shell Korn o POSIX 237

combinación de mandatos 130comentarios

definición 211comparación de archivos 201Componentes de AIX Event Infrastructure

definición 374, 385compresión

archivos 37comprobación

estado del proceso 142integridad de las cintas 48

concatenaciónarchivos de texto 367

conductosdefinición 211, 369

conexión 130consola

visualización del nombre 330consolidación de sucesos duplicados 389Consumidores de sucesos 376contabilidad de tarifas 180contabilidad de tiempo de conexión 178contabilidad de uso de disco 179contabilidad de uso de impresora 180contabilidad del sistema

actividad del sistemadatos 163

anomalía

contabilidad del sistema (continuación)anomalía (continuación)

recuperar 167archivo holidays

actualizar 177archivos

archivos de datos 166archivos de informe y resumen 166archivos del mandato runnact 168formatos 170visión general 166

configurar 170datos de actividad del sistema

visualización 173visualizar mientras se ejecuta un mandato 173

datos de procesosinformar 179recopilar 178

datos de tiempo de conexión 162, 175, 178datos de uso de disco

recopilar 179datos de uso de impresora

informar 163recopilar 180

errores de wtmparreglar 181

errores tacctarreglar 180

informar datosvisión general 159

informesdiario 159fiscal 163mensuales 161, 162

mandato runnacctinicio 167reinicio 167

mandatosejecutar automáticamente 164ejecutar desde el teclado 165

problemasarreglar archivo holidays obsoleto 177arreglar errores de runacct 183arreglar horas incorrectas 182arreglar permisos de archivo incorrectos 182

resumir registros 161tarifas

cargo 180informar 163

uso de CPUvisualización 174

visión general 159control de accesos

edición de información 327establecimiento de información 325visualización de información 325

control de trabajosshell C 296shell Korn o POSIX 254

Controlador de recursos del sistemafunciones de 187inicio 188mandatos

lista de 188

421

Page 428: AIX Versión 7 - IBM

convenios de denominaciónarchivos 193

conversiónarchivos de DOS 207

copiaarchivos 196archivos de cinta o disco 47archivos de DOS 207archivos del sistema operativo base 207archivos en cinta o disco 47en o desde cinta 48en o desde disquetes 46pantalla a archivo 371

copia de seguridadarchivos 20archivos del usuario 26compresión de archivos antes de 37comprimir archivos 37estrategia para gestionar

directrices para 22planificar 24

gestores del sistema BSD 349grupo de volúmenes definidos por el usuario 40implementar con scripts 44mandatos, lista de 20métodos 20política 22procedimiento para datos del sistema y del usuario 25procedimiento para sistemas de archivos del usuario 26realizar planificada regularmente 44replicar un sistema (clonación) 25restaurar datos 27sistemas de archivos del usuario 26soportes 23utilización del mandato smit 50visión general 20

cortesecciones de archivos de texto 202

creaciónalias 268alias de mandato 136scripts de shell 216

Creación del archivo de supervisióndefinición 378

cronpara gestores del sistema BSD 362

Ddaemon cron

generar datos con 177daemon srcmstr 188definiciones

teclado 331definiciones de menús 338definiciones de teclado

listado disponible actualmente 331Desasignación del procesador dinámico 54, 55descartar la salida 368descomposición de números en factores

mandato factor 140descompresión

archivos 39desempaquetado

desempaquetado (continuación)archivos 39

detenciónprocesos en primer plano 144

diagnosticar problemas de arranqueacceder a un sistema que no arranca 19rearrancar un sistema con gráficos de placa 7

directorioscambio de los permisos 319cambio de propiedad 316enlace 204listado de los archivos de DOS 208modalidades de acceso 316permisos 316

diskState 413dispositivo

para gestores del sistema BSD 362dispositivos

visualización de información sobre 329disquetes

copia en o desde 46formatear 45manejo 23utilización como soporte de copia de seguridad 23

distintivosen mandatos 131

distintivos de mandatos 130documento de entrada en línea 238, 368documentos de entrada en línea 368

Eedición

en línea en el shell Korn o POSIX 255histórico de mandatos 135información de control de accesos 327

edición en líneaModalidad de edición emacs 256modalidad de edición gmacs 256Modalidad de edición vi 259, 260, 262shell Korn o POSIX 255

editor ed 195editor emacs

edición en línea 255, 256editor gmacs

edición en línea 255, 256editor vi

edición en línea 255, 259, 260, 262mandatos de edición de búsqueda 260mandatos de edición de entrada 259mandatos de edición de modificación de texto 260mandatos de edición de movimiento 259mandatos de edición utilizados comúnmente 262mandatos de edición varios 262modalidad de control 259modalidad de entrada 259movimiento del cursor 259

editoresed 195edición en línea 255emacs 255, 256gmacs 255, 256vi 195, 255

ejecución

422

Page 429: AIX Versión 7 - IBM

ejecución (continuación)scripts de shell 216

eliminaciónalias 268archivos enlazados 206columnas de archivos de texto 204procesos de la planificación 147procesos en segundo plano 147

eliminación de delimitadoresshell Korn o POSIX 238

emergenciacerrar en una 51

enlacearchivos 204, 205directorios 204

enlacescreación 205eliminación 206fijos 205simbólicos 205tipos 205visión general 204

enlaces de botones del ratón 338enlaces de teclas 338entorno

archivo 334establecimiento 334sistema 328visualización actual 332

entorno del sistemaDesasignación del procesador dinámico 54, 55mensaje del día 63modalidad de 64 bits 53perfil 51servicios de manipulación de datos de tiempo 52

entornos de shellpersonalización 51

entornos de usuariopersonalización 51

entradaoperador de redirección 367redirección 365

entrada estándarcopia en un archivo 370redirección 367

error estándar 365errores de wtmp

arreglar 181errores tacct

arreglar 180Escribir en un archivo de supervisión

definición 379espacio de paginación

AIX para gestores del sistema BSD 351Espera de sucesos

definición 383establecimiento

información de control de accesos 325prioridad inicial de los procesos 143

estado de la salidashell Korn o POSIX 233

evaluación aritméticashell Korn o POSIX 221

expansión

expansión (continuación)archivos 38, 39

exportaciónalias 268variables de shell 340

expresionesbúsqueda de archivos con coincidencia 197condicionales 224shell C 307

expresiones normales 195Extensión del kernel de AIX Event Infrastructure 374

Ffiltros 369Flujo de supervisión de un suceso 377fonts

cambio 340listado disponibles para utilizar 331

formateardisquetes 45

formateo de textocaracteres ampliados de un solo byte 137mandatos 137soporte de caracteres de varios bytes 138soporte internacional de caracteres 137

Formato de errores 390

GGeneradores de sucesos

definición 376gestión de la hora

grabación de mensajes de recordatorio 139mandato calendar 139mensajes de recordatorio 139

grupo de subsistemasactivar el rastreo 191desactivar rastreo 191descripción de 187detención 189inicio 189renovar 191visualizar estado 190

HHISTFILE

archivo 268variable 218

histórico de mandatosedición 135shell Korn o POSIX 268sustitución 268

historyedición 135listas en el shell C 310sustitución en el shell C 310

IID

usuario 315

423

Page 430: AIX Versión 7 - IBM

ID de usuarioinicio de sesión 315

idbgen 52identificador

definición 211idiomas

bidireccionales 333idiomas bidireccionales 333imágenes de arranque

creación 12impresora

para gestores del sistema BSD 356indicador

cambio 341inetsock 402inicio

Gestor de ventanas de AIXwindows 336procesos 141shell C 288shell Korn o POSIX 266Shell Korn restringido 228shell restringido 216

inicio de sesiónID de usuario 315shell 210

interpretaciónblancos 288

Kksh93

ampliaciones aritméticas 229asignaciones compuestas 229conjuntos asociativos 229descripción 229entornos de función 229expansiones de parámetros 229funciones de disciplina 229histórico del shell 229mandatos incorporados 229normas de búsqueda PATH 229referencias de nombres de variables 229valores de retorno de mandatos 229variables 229variables compuestas 229

LLectura de datos de sucesos 385línea de texto

adición a un archivo 371líneas

cálculo del número de 201linkedCl 407lista de mandatos

apropos 140cal 138factor 140para el shell Bourne 274para el shell C 296para el shell Korn o POSIX 223, 224

listadoalias 268

listado (continuación)procesos planificados 146

listasdefinición 211

listas de asignación de parámetrosdefinición 211

listas de control de accesosejemplo 326ejemplo para AIXC ACL 323mantenimiento 320para objetos del sistema de archivos 320

Mmandato /usr/bin/psh 210mandato /usr/bin/sh 210mandato acledit 320, 327mandato aclget 320, 325mandato aclput 320, 325mandato aixterm 333mandato alias 136mandato apropos 140mandato at 145–147mandato atq 146, 147mandato awk 195mandato backup 23, 49mandato banner 371mandato bsh 210, 216, 228mandato cal 138mandato capture 371Mandato cat 199, 204, 367, 371mandato chfont 340mandato chgrp 326mandato chmod 318–320mandato chown 315, 316, 326mandato clear 370mandato colrm 204mandato compress 37, 38mandato cp 196mandato cpio 23mandato cpio -i 47mandato cpio -o 47mandato csh 210, 288mandato cut 202Mandato date 61mandato del 206mandato diag 61mandato diff 201mandato dosdel 208mandato dosdir 208mandato dosread 207mandato doswrite 207mandato echo 370, 371mandato env 332mandato export 340mandato factor 140mandato fdformat 45mandato find 49, 197mandato flcopy 46mandato format 45mandato fsck 22, 46mandato grep 10, 200, 369mandato groups 315mandato head 202

424

Page 431: AIX Versión 7 - IBM

mandato history 134mandato id 315mandato incorporado :

shell Bourne 278shell Korn o POSIX 242

mandato incorporado @shell C 300

mandato incorporado aliasshell C 300shell Korn o POSIX 249, 268

mandato incorporado bgshell C 300shell Korn o POSIX 249

mandato incorporado breakshell Bourne 278shell C 300shell Korn o POSIX 242

mandato incorporado breakswshell C 300

mandato incorporado caseshell C 300

mandato incorporado cdshell Bourne 278shell C 300shell Korn o POSIX 249

mandato incorporado chdirshell C 300

mandato incorporado commandshell Korn o POSIX 249

mandato incorporado continueshell Bourne 278shell C 300shell Korn o POSIX 242

mandato incorporado defaultshell C 300

mandato incorporado dirsshell C 300

mandato incorporado echoshell Bourne 278shell C 300shell Korn o POSIX 249

mandato incorporado elseshell C 300

mandato incorporado endshell C 300

mandato incorporado endifshell C 300

mandato incorporado endswshell C 300

mandato incorporado evalshell Bourne 278shell C 300shell Korn o POSIX 242

mandato incorporado execshell Bourne 278shell C 300shell Korn o POSIX 242, 266

mandato incorporado exitshell Bourne 278shell C 300shell Korn o POSIX 242

mandato incorporado exportshell Bourne 278shell Korn o POSIX 242, 266

mandato incorporado fcshell Korn o POSIX 249

mandato incorporado fgshell C 300shell Korn o POSIX 249

mandato incorporado foreachshell C 300

mandato incorporado getoptsshell Korn o POSIX 249

mandato incorporado globshell C 300

mandato incorporado gotoshell C 300

mandato incorporado hangupsshell C 300

mandato incorporado hashshell Bourne 278

mandato incorporado hashstatshell C 300

mandato incorporado historyshell C 300

mandato incorporado ifshell C 300

mandato incorporado jobsshell C 296, 300shell Korn o POSIX 249

mandato incorporado killshell C 300shell Korn o POSIX 249

mandato incorporado letshell Korn o POSIX 221, 249

mandato incorporado limitshell C 300

mandato incorporado loginshell C 300

mandato incorporado logoutshell C 300

mandato incorporado newgrpshell Korn o POSIX 242

mandato incorporado niceshell C 300

mandato incorporado notifyshell C 300

mandato incorporado onintrshell C 300

mandato incorporado popdshell C 300

mandato incorporado printshell Korn o POSIX 249

mandato incorporado pushdshell C 300

mandato incorporado pwdshell Bourne 278shell Korn o POSIX 249

mandato incorporado readshell Bourne 278, 283shell Korn o POSIX 249

mandato incorporado readonlyshell Bourne 278shell Korn o POSIX 242

mandato incorporado rehashshell C 300

mandato incorporado repeatshell C 300

425

Page 432: AIX Versión 7 - IBM

mandato incorporado returnshell Bourne 278shell Korn o POSIX 242

mandato incorporado setshell Bourne 278shell C 300shell Korn o POSIX 242

mandato incorporado setenvshell C 300

mandato incorporado setgroupsshell Korn o POSIX 249

mandato incorporado setsenvshell Korn o POSIX 249

mandato incorporado shiftshell Bourne 278shell C 300shell Korn o POSIX 242

mandato incorporado sourceshell C 300

mandato incorporado stopshell C 300

mandato incorporado suspendshell C 300

mandato incorporado switchshell C 300

mandato incorporado testshell Bourne 278shell Korn o POSIX 249

mandato incorporado timeshell C 300

mandato incorporado timesshell Bourne 278shell Korn o POSIX 242

mandato incorporado trapshell Bourne 278shell Korn o POSIX 242

mandato incorporado typeshell Bourne 278

mandato incorporado typesetshell Korn o POSIX 221, 234, 242, 266

mandato incorporado ulimitshell Bourne 278shell Korn o POSIX 249

mandato incorporado umaskshell Bourne 278shell C 300shell Korn o POSIX 249

mandato incorporado unaliasshell C 300shell Korn o POSIX 249, 268

mandato incorporado unhashshell C 300

mandato incorporado unlimitshell C 300

mandato incorporado unsetshell Bourne 278shell C 300shell Korn o POSIX 242

mandato incorporado unsetenv 300mandato incorporado wait

shell Bourne 278shell C 300shell Korn o POSIX 249

mandato incorporado whence

mandato incorporado whence (continuación)shell Korn o POSIX 249

mandato incorporado whileshell C 300

mandato kill 10, 147, 157mandato ksh 47, 210, 266mandato ln 204, 205mandato lock 327mandato login 323mandato ls 315, 317mandato lscfg 329mandato lscons 330mandato lsdisp 331mandato lsfont 331mandato lsgroup 318mandato lskbd 331mandato lslpp 331mandato lssrc 190mandato man

Gestores del sistema BSD 347mandato more 199mandato mv 196mandato mwm 336mandato nice 143mandato nl 204mandato pack 37, 38mandato page 199mandato paste 203mandato pg 157, 199, 204mandato printenv 333mandato ps 10, 142, 157, 249mandato psh 210, 266mandato r 135mandato refresh 191mandato renice 144, 157mandato restore 27, 49, 50mandato rm 195, 206mandato rsh 210mandato Rsh 210, 216, 228mandato runacct

inicio 167reinicio 167

mandato script 371Mandato setclock 62mandato sh 210mandato shutdown 132mandato smit

restauración de archivos 27mandato smit rmat 147mandato sort 200mandato srcmstr 191mandato startsrc 189mandato stopsrc 189mandato stty 332, 341mandato su 323mandato tail 202mandato tapechk 22, 48mandato tar 23, 37, 48mandato tcopy 48mandato tee 370mandato tn3270 342mandato tracesoff 191mandato traceson 191mandato tsh 210

426

Page 433: AIX Versión 7 - IBM

mandato tty 330mandato uncompress 37–39mandato unpack 37–39mandato wc 201mandato whatis 133mandato whereis 133mandato who 157mandato xinit 337mandato xlock 327mandato zcat 39mandatos

/usr/bin/psh 210/usr/bin/sh 210< 367> 366>> 367| 369acledit 320, 327aclget 320, 325aclput 320, 325aixterm 333alias 136archivo 198at 145–147atq 146, 147awk 195banner 371bsh 210, 216, 228capture 371cat 199, 204, 367, 371chfont 340chgrp 326chmod 318–320chown 315, 316, 326clear 370colrm 204combinación 130compress 37, 38compuestos del shell Korn 264conexión 130copia de seguridad 23, 49cp 196cpio 23cpio -i 47cpio -o 47creación de nombres abreviados 136csh 210, 288cut 202date 61definición 211del 206diag 61diff 201distintivos 131dosdel 208dosdir 208dosread 207doswrite 207echo 370, 371env 332export 340fdformat 45find 49, 197flcopy 46

mandatos (continuación)format 45formateo de texto 137fsck 22, 46grep 10, 200, 369grupos 315guardar los entrados 134head 202history 134id 315incorporados del shell Bourne 278incorporados del shell C 300incorporados del shell Korn o POSIX 241inicio de sesión 323kill 10, 147, 157ksh 47, 210, 266ln 204, 205lock 327ls 315, 317lscfg 329lscons 330lsdisp 331lsfont 331lsgroup 318lskbd 331lslpp 331man 133more 199mv 196mwm 336nice 143nl 204nombres 130pack 37, 38page 199para gestores del sistema BSD 358parámetros 131paste 203pg 157, 199, 204printenv 333ps 10, 142, 157, 249psh 210, 266r 135renice 144, 157repetición de los entrados 135restore 27, 49, 50rm 195, 206rsh 210Rsh 210, 216, 228script 371sentencias de uso 132setclock 62sh 210shell Bourne 275shell C 299shell Korn o POSIX 262shutdown 132sintaxis 130smit 27, 50, 340smit rmat 147sort 200stty 332, 341su 323sustitución de series 135

427

Page 434: AIX Versión 7 - IBM

mandatos (continuación)tail 202tapechk 22, 48tar 23, 37, 48tcopy 48tee 370tn 10tsh 210tty 330uncompress 37–39unpack 37–39visión general 130wc 201whatis 133whereis 133who 157xinit 337xlock 327zcat 39

mandatos compuestosshell Bourne 277

mandatos de shellalias r 135fc 135history 134

mandatos incorporados: 242, 278. 242, 278@ 300alias 249, 268, 300bg 249, 300break 242, 278, 300breaksw 300case 300cd 249, 278, 300chdir 300continue 242, 278, 300definición 211dirs 300echo 249, 278, 300else 300end 300endif 300endsw 300especiales 241, 242, 278eval 242, 278, 300exec 242, 266, 278, 300exit 242, 278, 300export 241, 242, 266, 278fc 135, 249, 268fg 249, 300foreach 300getopts 249glob 300goto 300hangups 300hash 278hashstat 300history 300if 300inicio de sesión 300kill 249, 300let 221, 249limit 300

mandatos incorporados (continuación)logout 300mandato 249newgrp 242nice 300normales 241, 249, 278notify 300onintr 300popd 300print 249pushd 300pwd 249, 278read 249, 278, 283readonly 241, 242, 278rehash 300repeat 300return 242, 278set 242, 272, 278, 300setenv 300setgroups 249setsenv 249shell Bourne 274, 278shell C 300shell Korn o POSIX 241shift 242, 272, 278, 300source 300stop 300suspend 300switch 300test 249, 278time 300times 242, 278trabajos 249, 296, 300trap 242, 278type 278typeset 221, 234, 241, 242, 266ulimit 249, 278umask 249, 278, 300unalias 249, 268, 300unhash 300unlimit 300unset 242, 278, 300unsetenv 300valor predeterminado 300wait 249, 278, 300whence 249while 300

mandatos incorporados especialesshell Bourne 278shell Korn o POSIX 223, 242

mandatos incorporados normalesshell Korn o POSIX 224, 249

mandatos simplesdefinición 211

manejo de señalesshell Bourne 277shell C 299shell Korn o POSIX 255

mantenimientoACL 320listas de control de accesos 320

mensaje del díacambio 63

mensajes

428

Page 435: AIX Versión 7 - IBM

mensajes (continuación)envío a la salida estándar 370visualización en pantalla 370

mensajes de pantalla, responder a 157mensajes, pantalla, responder a 157metacaracteres

definición 211delimitación en el shell Korn o POSIX 226

modalidad de 64 bitscatálogos de archivos 53

modalidad de control 259modalidad de entrada

definición 259mandatos de edición de entrada 259

modalidad de un solo usuario 51modalidades de acceso

archivos 316clases de usuarios 316control 316directorios 316representación numérica de 318representación simbólica 317visualización de información del grupo 318

moddir 395modDir 402modfile 392, 393modFile 402modificadores

en mandatos 131

NnetworkAdapterState 410NFS y NIS

Gestores del sistema BSD 347NIS 347nivel de ejecución

identificar 14visualizar histórico 14

nivel de ejecución del sistema 14nodeAddress 410nodeContact 408nodeList 406nodeState 409nombre abreviado de los mandatos

creación 136nombres de vías de acceso

absolutos 193archivos 193

NUM_EVDROPS_INTRCNTX 391numeración

líneas de archivos de texto 204número de identificación de proceso 140número de inodo 192, 204número PID 140

Oopciones

en mandatos 131operador de redirección de adición 367operadores

shell C 307

operandosen mandatos 131

PPáginas Amarillas

Gestores del sistema BSD 347páginas man

búsquedas con palabras clave 140palabras

cálculo del número de 201definición 211reservadas en el shell Korn o POSIX 229

palabras reservadasshell Bourne 277shell Korn o POSIX 229

pantallasborrado 370copia a archivo 371copia de la pantalla en un archivo 370visualización de texto en una pantalla cada vez 199visualización del texto en letras grandes 371

parada del sistema operativo 132parámetros

con nombre 234en mandatos 131especiales 234, 236posicionales 234predefinidas 236shell Korn o POSIX 234, 236

parámetros con nombre 234parámetros especiales 234parámetros posicionales

shell Bourne 272pegado

secciones de archivos de texto 203perfil

archivos 51visión general 51

permisosarchivo 319directorio 319

personalizacióncolores y fonts 338definiciones de menús 338enlaces de botones del ratón 338enlaces de teclas 338entorno del sistema 340, 341

pidProcessMon 401, 402planificación

procesos 145planificación de la red

TCP/IP 17prioridad de los procesos 155problemas de terminal

detener procesos retenidos 157procedimientos de recuperación

acceder a un sistema que no arranca 19rearrancar un sistema con gráficos de placa 7

procedimientos de shell 130proceso de arranque

fases de 16procesos

cambio de la prioridad 144

429

Page 436: AIX Versión 7 - IBM

procesos (continuación)cancelación de procesos en primer plano 144comprobación del estado 142daemon 140descripción 140detención de procesos en primer plano 144eliminación de la planificación 147eliminación de procesos en segundo plano 147en primer plano 140en segundo plano 140establecimiento de la prioridad inicial 143generar informes de contabilidad 179gestión de 151, 152inicio 141listado de los planificados 146modificación de la prioridad de 155planificación para procesarlos posteriormente 145por lotes 145recopilar datos de contabilidad sobre 178reinicio de uno detenido 144supervisión de 152terminación de 155vincular a un procesador 156visualización de todos los activos 142visualizar uso de CPU 174zombie 140

procesos daemon 140procesos en primer plano 140procesos en segundo plano 140procesos por lotes 145procesos zombie 140processMon 402productos de software

visualización de información sobre 331programa

copia de la salida en un archivo 370Protocolo de control de transmisiones/Protocolo Internet 17

Rrearrancar un sistema con gráficos de placa 7recurso de coproceso

shell Korn o POSIX 240red

para gestores del sistema BSD 342, 347, 351, 352red jerárquica 17red plana 17redirección

entrada estándar 367entrada y salida de los coprocesos 241entrada y salida en el shell Bourne 273entrada y salida en el shell Korn o POSIX 238salida a un archivo 366salida de error estándar 368salida estándar 366

redirección de E/Sestándar 365shell Bourne 273shell C 313shell Korn o POSIX 238

reiniciar el sistema 11reinicio

procesos detenidos 144reloj

reloj (continuación)restablecer 61

reloj del sistemaprobar la batería 61restablecer 61

remotosshell 210

rendimientoGestores del sistema BSD 355

renombrararchivos 196

repDiskState 412restauración

archivos 27, 50resúmenes

archivos de arranque de AIXwindows 328archivos de arranque del sistema 328mandatos 372para mandatos 148para procesos 148personalización del entorno del sistema 328

resúmenes de mandatosarchivos 208archivos de copia de seguridad 25entorno de usuario 333información del sistema 333redirección de E/S 372seguridad de archivos 328seguridad de sistemas 328soportes de almacenamiento 25

resúmenes de procesos 148

Ssalida

descartar con el archivo /dev/null 368operador de redirección 366redirección 365redireccionamiento a un archivo 366

salida de diagnóstico 365salida de error 365salida de error estándar

redirección 368salida estándar

adición a un archivo 367redirección 366

schedo 400, 402scripts de shell

creación 216especificación de un shell 213

secuencia Control-C 10seguridad

archivo 314archivo /etc/security/passwd 314autenticación 314ID de usuario de inicio de sesión 315identificación 314sistema 314terminales desatendidos 315

sentencias de usopara mandatos 132

señal SIGINT 255señal SIGQUIT 255señales

430

Page 437: AIX Versión 7 - IBM

señales (continuación)SIGINT 255SIGQUIT 255

seriesbúsqueda en archivos de texto 200

Servidor Xarchivos de arranque 336

shell Bournecaracteres delimitadores 276clases de caracteres 215coincidencia de patrones 273entorno 270lista de mandatos incorporados 274mandatos 275mandatos compuestos 277mandatos incorporados 278manejo de señales 277palabras reservadas 277parámetros posicionales 272redirección de la entrada y la salida 273sustitución condicional 271sustitución de mandatos 283sustitución de nombres de archivo 273sustitución de variables 283variables 285variables definidas por el usuario 284variables predefinidas 287

shell Carchivos de arranque 288control de trabajos 296ejecución de mandatos 309expresiones 307inicio 288limitaciones 288lista de mandatos incorporados 296listas de histórico 310mandatos 299mandatos incorporados 300manejo de señales 299operadores 307redirección de la entrada y la salida 313sustitución de alias 289sustitución de mandatos 309sustitución de nombres de archivo 291sustitución de variables 290sustitución del histórico 310variables de entorno 294

shell estándarexpresiones condicionales 224

shell fiable 210shell Korn ampliado

ampliaciones aritméticas 229asignaciones compuestas 229conjuntos asociativos 229descripción 229entornos de función 229expansiones de parámetros 229funciones de disciplina 229histórico del shell 229mandatos incorporados 229normas de búsqueda PATH 229referencias de nombres de variables 229valores de retorno de mandatos 229variables 229

shell Korn ampliado (continuación)variables compuestas 229

shell Korn o shell POSIXalias de mandatos 268ampliado 229coincidencia de patrones 237control de trabajos 254delimitadores 226edición 255eliminación de delimitadores 238entorno 266estado de la salida 233evaluación aritmética 221expresiones condicionales 224funciones 267histórico de mandatos 268inicio 266lista de mandatos incorporados especiales 223lista de mandatos incorporados normales 224mandatos compuestos 264mandatos incorporados 241manejo de señales 255palabras reservadas 229parámetros predefinidos 236recurso de coproceso 240redirección de la entrada y la salida 238redirección de la entrada y la salida de los coprocesos241subdivisión de campos 222sustitución de la tilde 269sustitución de mandatos 220sustitución de nombres de archivo 237sustitución de parámetros 234, 235utilización de mandatos 262variables definidas por el usuario 218variables predefinidas 217

Shell Korn restringidoinicio 228

shell por omisión 210shell restringido

inicio 216shells

alias de mandatos en Korn o POSIX 268Bourne 210C 210clases de caracteres en Bourne 215control de trabajos en el shell C 296control de trabajos en Korn o POSIX 254creación de scripts de shell 216delimitación en Korn o POSIX 226edición en línea en Korn o POSIX 255ejecución de mandatos en el shell C 309entorno de Bourne 270entorno de Korn o POSIX 266estado de la salida en Korn o POSIX 233estándar 210evaluación aritmética en Korn o POSIX 221expresiones condicionales de Korn o POSIX 224fiables 210funciones 214histórico de mandatos de Korn o POSIX 268inicio de Korn o POSIX 266inicio de restringidos 216, 228inicio de sesión 210

431

Page 438: AIX Versión 7 - IBM

shells (continuación)inicio del shell C 288Korn 210lista de mandatos incorporados especiales para Korn oPOSIX 223lista de mandatos incorporados normales para Korn oPOSIX 224lista de mandatos incorporados para Bourne 274listas de histórico en el shell C 310mandatos compuestos de Korn o POSIX 264mandatos incorporados de Bourne 278mandatos incorporados de C 300mandatos incorporados de Korn o POSIX 241manejo de señales en el shell C 299manejo de señales en Korn o POSIX 255palabras reservadas en Korn o POSIX 229parámetros 234parámetros posicionales en Bourne 272POSIX 210recurso de coproceso Korn o POSIX 240redirección de E/S en Korn o POSIX 238redirección de I/O en Bourne 273redirección de la entrada y la salida en el shell C 313remotos 210restringidos 210sustitución condicional en Bourne 271sustitución de alias en el shell C 289sustitución de mandatos en Bourne 283sustitución de mandatos en el shell C 309sustitución de mandatos en Korn o POSIX 220sustitución de nombre de archivo en Korn o POSIX 237sustitución de nombres de archivo en Bourne 273sustitución de nombres de archivo en el shell C 291sustitución de variables en Bourne 283sustitución de variables en el shell C 290sustitución del histórico en el shell C 310terminología 211tipos 210utilización de mandatos de Korn o POSIX 262valor predeterminado 210variables de entorno en el shell C 294variables definidas por el usuario en Bourne 284variables predefinidas de Bourne 287variables que utiliza Bourne 285visión general 210

shutdownemergencia 51para modalidad de un solo usuario 51sin rearrancar 50

sistemaarchivos de arranque 334cambio del indicador 341entorno 328iniciar el 3personalizar entorno 340, 341seguridad 314variables por omisión 335

sistema de contabilidadanomalía

recuperar 167archivo holidays

actualizar 177archivos

archivos de datos 166

sistema de contabilidad (continuación)archivos (continuación)

archivos de informe y resumen 166archivos del mandato runacct 168formatos 170visión general 166

configurar 170datos de actividad del sistema

informar 163visualización 173visualizar mientras se ejecuta un mandato 173

datos de procesosinformar 179recopilar 178

datos de tiempo de conexióninformar 162recopilar 178visualización 175

datos de uso de discoinformar 162visualización 176

datos de uso de impresoravisualización 176

errores de wtmparreglar 181

errores tacctarreglar 180

Gestores del sistema BSD 348informar datos

visión general 159informes

diario 159fiscal 163mensuales 161, 162

mandato runacctinicio 167reinicio 167

mandatosejecutar automáticamente 164ejecutar desde el teclado 165visión general 164

problemasarreglar archivo holidays obsoleto 177arreglar errores de runacct 183arreglar horas incorrectas 182arreglar permisos de archivo incorrectos 182

resumir registros 161tarifas

cargo 180informar 163

uso de CPUvisualización 174

visión general 159sistema inactivo

comprobar hardware 9comprobar procesos 10reiniciar el sistema 11

sistema no operativocomprobar hardware 9comprobar procesos 10reiniciar el sistema 11

sistema operativocargar 11parada 132

432

Page 439: AIX Versión 7 - IBM

sistemas de archivoscomprobación de la coherencia 46copia de seguridad con scripts 44copia de seguridad de sistemas de archivos del usuario26ejemplo 193para gestores del sistema BSD 364realización de reparaciones interactivas 46

sistemas de múltiples usuarioscambiar niveles de ejecución en 15

sistemas de un solo usuariocambiar niveles de ejecución en 15

soporte de caracteres de varios bytesentrada de caracteres 138formateo de texto 138

soporte internacional de caracteresformateo de texto 137

soportes de almacenamiento 20stderr 365stdin 365stdout 365subdivisión de campos

shell Korn o POSIX 222subservidor

activar el rastreo 191desactivar rastreo 191descripción de 187detención 189inicio 189visualizar estado 190

subshellsdefinición 211

subsistemaactivar el rastreo 191desactivar rastreo 191detención 189inicio 189propiedades de 187renovar 191visualizar estado 190

Sucesos de clúster 405supervisar procesos 152supresión

archivos 195archivos de DOS 208

sustitución condicionalshell Bourne 271

sustitución de aliasshell C 289

sustitución de la tildecreación de alias de mandatos 269

sustitución de mandatosshell Bourne 283shell C 309shell Korn o POSIX 220

sustitución de nombres de archivoshell Bourne 273shell C 291shell Korn o POSIX 237

sustitución de parámetrosshell Korn o POSIX 235

sustitución de variablesshell Bourne 283shell C 290

sustitución de variables (continuación)shell Korn o POSIX 217

TTCP/IP

/etc/hosts 17denominación

red jerárquica 17red plana 17

planificación de la red 17teclado

cambiar atributosutilizar el mandato chhwkbd 358

teclas de controlcambio 341visualización de valores 332

terminal, bloqueado 157terminales

bloqueo 327desatendidos 315listado de los disponibles actualmente en el sistema331para gestores del sistema BSD 365visualización de asignaciones de teclas de control 332visualización de valores 333visualización del nombre 330

terminologíapara shells 211

textoadición a un archivo 371visualización en letras grandes 371

Tipo de ACLAIXC 321NFS4 322

tipos de archivosbinarios 192directorio 192texto 192

trabajoseliminación de la planificación 147listado de los planificados 146planificación 145

Uuso de CPU

visualización 174usuario

clases 316grupos 315visualización de información del grupo 318

utilFs 396, 402UUCP

Gestores del sistema BSD 363

Vvalores predeterminados

cambio 338variable CDPATH 218variable COLUMNS 218variable EDITOR 218

433

Page 440: AIX Versión 7 - IBM

variable ENV 218variable ERRNO 217variable FCEDIT 218variable FPATH 218variable HISTSIZE 218, 268variable HOME 218variable IFS 218variable LANG 218variable LC_ALL 218variable LC_COLLATE 218variable LC_CTYPE 218variable LC_MESSAGES 218variable LINENO 217variable LINES 218variable MAIL 218variable MAILCHECK 218variable MAILPATH 218variable NLSPATH 218variable OLDPWD 217variable OPTARG 217variable OPTIND 217variable PATH 218variable PPID 217variable PS1 218variable PS2 218variable PS3 218variable PS4 218variable PWD 217variable RANDOM 217variable REPLY 217variable SECONDS 217variable SHELL 218variable subrayado 217variable TMOUT 218variable VISUAL 218variables

CDPATH 218COLUMNS 218definidas por el usuario 218definidas por el usuario en Bourne 284EDITOR 218entorno de shell C 294ENV 218ERRNO 217exportación 340FCEDIT 218FPATH 218HISTFILE 218HISTSIZE 218, 268HOME 218IFS 218LANG 218LC_ALL 218LC_COLLATE 218LC_CTYPE 218LC_MESSAGES 218LINENO 217LINES 218MAIL 218MAILCHECK 218MAILPATH 218NLSPATH 218OLDPWD 217OPTARG 217

variables (continuación)OPTIND 217PATH 218PPID 217predefinidas 217PS1 218PS2 218PS3 218PS4 218PWD 217RANDOM 217REPLY 217SECONDS 217SHELL 218shell Bourne 285, 287shell Korn o POSIX 217, 218subrayado 217TMOUT 218variable SHELL PROMPT 218variables

SHELL PROMPT 218VISUAL 218

variables de entornoshell C 294visualización de valores 333

variables de shelldefinición 211exportación 340locales 340

variables definidas por el usuarioshell Bourne 284

variables predefinidasshell Bourne 287shell Korn o POSIX 217

vgState 413vincular un proceso a un procesador 156Vista de alto nivel de AIX Event Infrastructure

definición 376visualización

asignaciones de teclas de control 332calendario 138contenido de un archivo 199contenido de un directorio de DOS 208definiciones de teclado 331dispositivos del sistema 329fonts disponibles 331información de control de accesos 325información del grupo 318nombre de consola 330nombre de terminal 330primeras líneas de los archivos 202productos de software 331terminales disponibles 331texto de la pantalla en letras grandes 371tipos de archivos 198últimas líneas de los archivos 202una pantalla cada vez 199valores de variables de entorno 333variables de entorno 332

vmo 399, 402

WwaitersFreePg 398, 402

434

Page 441: AIX Versión 7 - IBM

waitTmCPU 397, 402waitTmPgInOut 398, 402

435

Page 442: AIX Versión 7 - IBM

436

Page 443: AIX Versión 7 - IBM
Page 444: AIX Versión 7 - IBM

IBM®