Date post: | 30-May-2018 |
Category: |
Documents |
Upload: | ariel-m-corgatelli |
View: | 236 times |
Download: | 0 times |
of 193
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
1/193
Gua del Estudiante CE 1.0aCommunity EditionComunidad OpenSolaris Hispanoes.opensolaris.org
USE IMPROVE EVANGELIZE
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
2/193
Comunidad OpenSolaris Hispano
Licencia
Esta obra est bajo una licencia de Creative Commons. Para veruna copia de esta licencia, visitehttp://creativecommons.org/licenses/by-sa/2.5/ o enve una carta aCreative Commons, 559 Nathan Abbott Way, Stanford, California 94305,USA.
Usted es libre de:
- Copiar, distribuir y comunicar pblicamente la obra y hacer obrasderivadas.
Bajo las condiciones siguientes:
Reconocimiento. Debe reconocer los crditos de la obra de lamanera especificada por el autor o el licenciador (pero no de unamanera que sugiera que tiene su apoyo o apoyan el uso que hace desu obra).
Compartir bajo la misma licencia. Si altera o transforma estaobra, o genera una obra derivada, slo puede distribuir la obragenerada bajo una licencia idntica a sta.
Al reutilizar o distribuir la obra, tiene que dejar bien claro los trminos de la licencia de esta obra.
Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los
derechos de autor
Nada en esta licencia menoscaba o restringe los derechos morales del autor.
Referencias
Todos los nombres propios de programas, sistemas operativos, equiposhardware, etc., que aparecen en este libro son marcas registradas desus respectivas compaas u organizaciones.
2
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
3/193
Comunidad OpenSolaris Hispano
Changelog
Bajo el modelo de licenciamiento actual de tipo CC (CreativeCommons) y con las condiciones de Reconocimiento y Comparticin deesta licencia ya citadas anteriormente, este apartado pretende ser unaapuesta por la colaboracin y ademas un sistema de control deversiones / actualizaciones de cada uno de los nuevos anexos que sepueden aadir de forma libre y abierta.
Actualmente el estado de las diferentes contribuciones aldocumento, es el siguiente:
David Galan (http://davidgalan.opensolarisblog.org):- Introduccin- Instalacin- Arranque y Parada
- Service Management Facility (SMF)- Gestion de Usuarios- Procesos y seales- Gestion de discos- Zettabyte File Systems (ZFS)- Zonas/Contenedores y BrandZ
Juan Jose Mora (http://jjmora.es):- Xen Virtual Machine (xVM)
Juan Jose Mora (http://jjmora.es) & Roger Jordan (http://rjblog.es):- Navegando por el /Proc- Rendimiento y Tunning
Iban Nieto (http://inieto.wordpress.com):- Introduccin a DTRACE
Victor M. Fernndez (http://vfernandezg.blogspot.com):- Role Based Access Control (RBAC)- Solaris Volume Manager (SVM)- IPFilter (IPF)- Image Packaging System (IPS)
3
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
4/193
Comunidad OpenSolaris Hispano
OpenSolaris
OpenSolaris nace en Junio de 2005 y es el resultado de laliberacin de la mayor parte del cdigo fuente de Solaris pasando aser un proyecto de software libre. Desde este nuevo enfoque nacennuevas distribuciones que aportan mejoras al sistema adems de
enriquecerlas con ms software.
Distribuciones OpenSolaris
De las diferentes aportaciones realizadas por comunidades deusuarios o desarrolladores nacen las siguientes distribuciones:
Solaris 10: es la versin oficial de Sun Microsystems disponiblepara arquitectura Sparc y x86. Es estable y robusta estandodiseada para entornos de produccin donde se necesita
estabilidad. Es gratuita y podemos descargarla del sitio weboficial de Sun.
Solaris Express Community Edition: su nombre en clave es nevadaes una distribucin binaria que se actualiza cada dos viernes, esuna versin que puede no ser compatible con otras versiones yaque incorpora muchos cambios.
Solaris Express Developer Edition: contiene todas las nuevasincorporaciones de funcionalidades y software que darn lugar ala prxima versin estable de Solaris por lo tanto esta
recomendada para entornos de desarrollo o preproduccin. Seactualiza cada tres o cuatro meses.
4
http://www.sun.es/http://es.opensolaris.org/os/downloads/sol_ex_cd/http://www.sun.com/software/solaris/solaris-express/get.jsphttp://es.opensolaris.org/os/downloads/sol_ex_cd/http://www.sun.com/software/solaris/solaris-express/get.jsphttp://www.sun.es/8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
5/193
Comunidad OpenSolaris Hispano
OpenSolaris Developer Preview: mas conocida como OpenSolaris2008.05 es una distribucin en un solo CD que combina livecd einstalacin en disco. OpenSolaris 2008.05 esta en sus primerasfases de desarrollo. Las versiones actualmente liberadas no sontotalmente estables. Incluye un kit para crear tu propia
distribucin y es instalable en una llave USB. Nexenta OS: es una distribucin totalmente independiente a Sun y
esta basado en GNU libre y de cdigo abierto, integra el kernelde OpenSolaris y un conjunto de aplicaciones Open Source. Es unadistribucin que comparte la filosofa de a Ubuntu.
Belenix: LiveCD basado en OpenSolaris que esta dando pasos enconvertirse en una distribucin completa. Aporta un conjunto desoftware OpenSource. Incluye scripts para crear tu propio livecdy se puede instalar y arrancar desde una llave USB.
MartUX mBE :es un DVDlive para SPARC y x64/x86 y esta cargado depaquetes de CommunitySoftWare.
Shillix: es una distro basada en OpenSolaris y es LiveCD paraarquitecturas x86,x64 y EM64T. Esta basada en Nevada Build 17.
OpenGrok
OpenGrok es el motor de bsqueda de cdigo fuente, con OpnGrokpodemos descargar el fuente de OpenSolaris y examinar su cdigo ademasde poder hacer modificaciones para realizar modificaciones al ya
existente.Para entrar en OpenGrok entre en la direccin:http://cvs.opensolaris.org/source
Las comunidades
Las comunidades son puntos de encuentro dentro de OpenSolaris.orgdonde puedes encontrar otras personas con las mismas inquietudes sobreuna tecnologa o apliacin. Hay comunidades alrededor de ZFS, DTrace,SMF, Virtualizacin etc..Algunas de las comunidades:
Teora e investigacin:http://www.opensolaris.org/os/community/edu
DTrace:http://www.opensolaris.org/os/community/dtrace ZFS : http://www.opensolaris.org/os/community/zfs Redes:http://www.opensolaris.org/os/community/networking Zonas:http://www.opensolaris.org/os/community/zones Documentacin:
http://www.opensolaris.org/os/community/documentation Controladores de dispositivos:
http://www.opensolaris.org/os/community/device_drivers Herramientas:http://www.opensolaris.org/os/community/tools
5
http://es.opensolaris.org/os/project/indiana/resources/getit/http://es.opensolaris.org/os/project/indiana/resources/getit/http://www.gnusolaris.org/gswikihttp://www.gnusolaris.org/gswikihttp://www.genunix.org/distributions/belenix_site/belenix_home.htmlhttp://www.genunix.org/distributions/belenix_site/belenix_home.htmlhttp://www.martux.org/http://www.martux.org/http://www.opensolaris.org/os/community/eduhttp://www.opensolaris.org/os/community/dtracehttp://www.opensolaris.org/os/community/zfshttp://www.opensolaris.org/os/community/networkinghttp://www.opensolaris.org/os/community/zoneshttp://www.opensolaris.org/os/community/documentationhttp://www.opensolaris.org/os/community/device_drivershttp://www.opensolaris.org/os/community/toolshttp://es.opensolaris.org/os/project/indiana/resources/getit/http://www.gnusolaris.org/gswikihttp://www.genunix.org/distributions/belenix_site/belenix_home.htmlhttp://www.martux.org/http://www.opensolaris.org/os/community/eduhttp://www.opensolaris.org/os/community/dtracehttp://www.opensolaris.org/os/community/zfshttp://www.opensolaris.org/os/community/networkinghttp://www.opensolaris.org/os/community/zoneshttp://www.opensolaris.org/os/community/documentationhttp://www.opensolaris.org/os/community/device_drivershttp://www.opensolaris.org/os/community/tools8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
6/193
Comunidad OpenSolaris Hispano
Impulsores:http://www.opensolaris.org/os/community/advocacy Seguridad:http://www.opensolaris.org/os/community/security Rendimiento:http://www.opensolaris.org/os/community/performance Almacenamiento:http://www.opensolaris.org/os/community/storage
Proyectos
Los proyectos alojados en www.opensolaris.org albergan lascontribuciones de cdigo, documentos, grficos o productos de variosautores. Los proyectos disponen de espacio para alojar cdigo.
Participa
Puedes participar en la comunidad OpenSolaris Hispano de formasdiferentes y da igual tu nivel de experiencia con OpenSolaris.
Si eres principiante puedes desarrollar documentos yalimentar la Wiki:http://www.genunix.org/wiki/index.php/OpenSolarisHispanocon el conocimiento que vas aprendiendo, tu aportacin sermuy til para otros recin llegados.
Si eres desarrollador puedes participar bien proponiendo un
proyecto o unirte a un proyecto de la comunidad paraparticipar en su desarrollo.
Si eres un usuario experimentado puedes participarimpartiendo charlas, desarrollando documentacin,alimentado la Wiki y ayudando a otros usuarios.
6
http://www.opensolaris.org/os/community/advocacyhttp://www.opensolaris.org/os/community/securityhttp://www.opensolaris.org/os/community/performancehttp://www.opensolaris.org/os/community/storagehttp://www.opensolaris.org/http://www.genunix.org/wiki/index.php/OpenSolarisHispanohttp://www.opensolaris.org/os/community/advocacyhttp://www.opensolaris.org/os/community/securityhttp://www.opensolaris.org/os/community/performancehttp://www.opensolaris.org/os/community/storagehttp://www.opensolaris.org/http://www.genunix.org/wiki/index.php/OpenSolarisHispano8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
7/193
Comunidad OpenSolaris Hispano
Instalando OpenSolaris2008.05
Novedades de OpenSolarisOpenSolaris 2008.05 incorpora importantes novedades sobre susantecesores inmediatos. Veamos algunas de ellas:
Solaris Service Manager es una nueva infraestructura que viene asustituir al clsico inicio secuencial de Unix System V. Estanueva infraestructura permite arrancar los servicios de formaparalela acorde a sus relaciones de dependencia. Permite aladministrador observar, deshabilitar, arrancar y parar de unamanera sencilla y eficiente.
Solaris Containers es una tecnologa de virtualizacin quepermite la ejecucin de servicios y aplicaciones de formatotalmente aisladas.
ZFS (Solaris Zeta File System) nuevo sistema de archivos de128bits. Su capacidad de almacenamientos es practicanteilimitada. Su implantacin y administracin comparada con lossistemas anteriores muy sencilla. Implementa un nuevo modelo deACL sencillo de administrar utilizando los comandos chmod y ls.
DTrace es una potente herramienta que permite a losadministradores observar procesos del ncleo y de los usuarios.Se compone de ms de 30.000 sensores que aportan informacinsobre las aplicaciones asociadas a estos.
Image Packaging System es el nuevo sistema de paquetes deOpenSolaris 2008.05 que permite la instalacin de paquetes derepositorios de una forma sencilla resolviendo problemas comodependencias. IPS instalar, actualizar y eliminar aplicaciones.
7
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
8/193
Comunidad OpenSolaris Hispano
Slim Install un nuevo instalador que solo necesita de seis pasospara instalar OpenSolaris 2008.05 .
Sun xVM Hypervisor (basado en el trabajo de la comunidad Xenpermitiendo correr Solaris, GNU/Linux y Windows en mquinasvirtuales)
Requisitos de Instalacin
Antes de comenzar la instalacin debemos comprobar si la maquinadestino cumple con los requisitos demandados por OpenSolaris2008.05 . En la siguiente tabla podemos ver dichos requisitosmnimos:
Arquitectura X86 Mnimo necesariosMemoria 512MB recomendados.
Espacio en disco 10GB
Iniciando OpenSolaris 2008.05
El proceso de instalacin de OpenSolaris 2008.05 esta basado enSlim Install que nos permitir instalar el sistema de forma sencilla.Resumimos la instalacin en:
Arranque del LiveCD de OpenSolaris 2008.05 .
Arrancar el instalador Slim Install e inicia la instalacin.
Reiniciar.
Iniciando el LiveCD
Comenzamos el proceso de instalacin arrancando desde CD con elLiveCD de OpenSolaris 2008.05 , lo primero que veremos ser el gestorde arranque GRUB.
8
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
9/193
Comunidad OpenSolaris Hispano
OpenSolaris 2008.05 comenzara a iniciarse y solicitar el idioma delteclado y del escritorio como podemos ver en las siguientes capturas:
9
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
10/193
Comunidad OpenSolaris Hispano
Despus de seleccionar el idioma continua el arranque del sistemay procede a arrancar el escritorio GNOME donde nos muestra lalicencia.
Una vez aceptada la licencia veremos el escritorio donde tenemosel sistema totalmente operativo en modo live, ahora tenemos queiniciar la instalacin. Para ello arrancamos el instaladoridentificado en el escritorio como Install OpenSolaris.
10
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
11/193
Comunidad OpenSolaris Hispano
Ecritorio Live-CD OpenSolaris 2008.05
Al arrancar nos mostrar el proceso de instalacin que consisteen un volcado a disco de todo el sistema. Los pasos del instaladorson:
1. Pantalla de bienvenida.2. Seleccionar el disco o particin donde vamos a instalar.3. Seleccionar la zona horaria.
4. Introducimos la contrasea, creamos un usuario y damos nombre alsistema.5. Inicia la instalacin.6. Finaliza y reinicio.
Veamos una captura de cada uno de los pasos:
11
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
12/193
Comunidad OpenSolaris Hispano
Pantalla de bienvenida, seleccionamos instalar o realizar un Upgrade.
Elegimos en que disco queremos instalar o usar una particin yaexistente.
12
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
13/193
Comunidad OpenSolaris Hispano
Seleccionamos nuestra zona horaria, fecha y hora.
Seleccionamos el entorno regional.
13
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
14/193
Comunidad OpenSolaris Hispano
Creamos un usuario de sistema, damos contrasea al root y establecemosel nombre de la mquina.
Pantalla que muestra informacin de las opciones elegidas.
14
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
15/193
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
16/193
Comunidad OpenSolaris Hispano
Inicia la primera carga de los servicios SMF (nuevo sistema dearranque por dependencias).
Lo siguiente que veremos ser la pantalla de bienvenida dondehacemos login con el usuario que hemos creado durante el proceso deinstalacin. Despus de introducir el usuario y contrasea tenemosdisponible el sistema con el escritorio GNOME.
Con la instalacin base dispones de tecnologas como Zonas,BrandZ, SMF, ZFS y DTrace y xVM Hypervisor (basado en XEN).
16
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
17/193
Comunidad OpenSolaris Hispano
Arranque y ParadaIntroduccin
En este capitulo veremos el proceso arranque y parada deOpenSolaris 2008.05 , los comandos necesarios para reiniciar y pararel sistema
Parada y reinicio del sistema
Cuando finaliza el arranque de la mquina se encuentra en elnivel de ejecucin multi-user-server o run level 3. En ocasiones hay
que reiniciar el sistema para realizar tareas de mantenimiento comoaadir hardware. A continuacin veremos las diferentes formas dereiniciar y parar el sistema.
Reinicio de la mquina:
Si deseamos realizar un reinicio del sistema y queremos emitirun mensaje personalizado avisando a los usuarios usaremos el comandoshutdown que permite los siguientes parmetros:
shotdown i niveldeejecucin g segundosdeespera mensaje de aviso
Ejemplo del uso de shotdown para reiniciar:
17
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
18/193
Comunidad OpenSolaris Hispano
#/usr/sbin/shutdown -i 6 g 360 Aviso a los usuarios. El sistema se reiniciar en60
segundos. Cierre sus aplicaciones.
Con i indicamos el nivel de ejecucin, con gdamos 360 segundosa los usuarios para cerrar sus aplicaciones y ficheros. Cuandofinalicen los 360 segundos el sistema solicita la confirmacin delreinicio al administrador:
# Do you want to continue? (y or n):
Para reiniciar el sistema tambin podemos ejecutar la ordenreboot:
# /usr/sbin/reboot
El comando reboot ejecuta una parada inmediata e inicia elsistema en el nivel 3 de ejecucin ahora llamado multi-user-server.
Parada de la mquina:
Para parar el sistema de forma ordenada y despus realizar unapagado elctrico de la mquina ejecutamos:
#/usr/sbin/shutdown -i 0 g 360 Aviso a los usuarios. El sistema se reiniciar en60
segundos. Cierre sus aplicaciones.
Si la ejecutamos el comando en una mquina SPARC se quedara en laOpenBoot momento en el que podemos realizar el apagado elctricoejecutando desde la OpenBoot el comando:
ok power-off
Si es una mquina x86 mostrara el siguiente mensaje:
Svcd.startd: The system is down.Syncing file systemsdonePres any key to reboot.
Podemos pulsar cualquier tecla y reiniciar o realizardirectamente el apagado elctrico de la mquina.
Si necesitramos parar la mquina de forma urgente podemosutilizar el comando halt que realizara una parada inmediata noordenada:
# /usr/sbin/halt
Para una parada urgente no ordenada pero con parada elctrica:
# /usr/sbin/poweroff
18
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
19/193
Comunidad OpenSolaris Hispano
Para reiniciar el sistema podemos ejecutar la orden reboot queantes proceder al reinicio actualiza el superbloque:
# /usr/sbin/reboot
Gestor de arranque GRUB (Grand Unified Bootloader)
Introduccin a GRUB
GRUB es el nuevo gestor de arranque para arquitecturas x86 queaade nuevas posibilidades de arranque a OpenSolaris 2008.05 . GRUB seinicia en el MBR ocupando tan solo 512 bytes y este pequeo cdigocomienza la carga del resto de GRUB ubicado en el disco.
No podemos comparar GRUB con la OpenBoot para arquitecturas SPARC
ya que la OBP se basa en hardware y software, pero sin duda viene amejorar las posibilidades de Solaris y su integracin con otrossistemas operativos como Linux. GRUB es un gran conocido dentro de lacomunidad Linux por lo que facilita aun mas el acercamiento deadministradores Linux a Solaris. GRUB nos ofrece tres interfacesdiferentes para el uso y configuracin de GRUB:
Interfaz de men: es la primera que vemos cuando arrancaGRUB y muestra una lista con todas las opciones disponiblespara elegir con que sistema queremos arrancar. (ver figura4.4)
Interfaz de edicin: Permite la edicin de las opciones dearranque establecidas para cada sistema operativoconfigurado. Un ejemplo es cambiar de forma temporal elkernel para realizar pruebas. (ver figura 4.3)
Interfaz de lnea de comandos: es una pequea shell quepermite configurar GRUB, realizare pruebas de dispositivos,red etc..
eprom: OpenSolaris se integra con GRUB con el comando epromal igual que lo hace con la OpenBoot en SPARC.
Opciones de arranque
Cuando arrancamos la mquina lo primero que nos muestra GRUB esla Interfaz de men donde podemos elegir el sistema operativo. Estainterfaz se basa en un fichero de configuracin que permite aadirnuevos sistemas o modificar los ya existentes. El fichero deconfiguracin se encuentra en /boot/grub/menu.lst .
Cuando finalizamos la instalacin de Solaris el archivo queda dela siguiente forma:
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title Solaris 11 11/06 s10x_u3wos_10 X86root (hd0,0,a)kernel /platform/i86pc/multibootmodule /platform/i86pc/boot_archive
19
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
20/193
Comunidad OpenSolaris Hispano
#---------------------END BOOTADM--------------------#---------- ADDED BY BOOTADM - DO NOT EDIT ----------title Solaris failsaferoot (hd0,0,a)kernel /boot/multiboot kernel/unix -smodule /boot/x86.miniroot-safe
#---------------------END BOOTADM--------------------
Podemos establecer el fichero /boot/grub/menu.lst los siguientesparmetros:
default: contiene un valor numrico que se corresponde conla posicin en la lista que muestra GRUB para seleccionaruna opcin de arranque. Comienza con el valor 0, paraarrancar por defecto con la opcin failsafe estableceramosel valor a 1.
timeout: son los segundos que esperara para que el usuarioelega una opcin de arranque, si no interviene el usuario
arrancara el sistema establecido por defecto con el valordefault . Con valor -1 espera indefinidamente.
Para cambiar estos valores editamos el fichero menu.lst concualquier editor de texto y cambiamos el valor en la lnea dondeaparece default o timeout:
## default menu entry to bootdefault 0## menu timeout in second before default OS is booted# set to -1 to wait for user input
timeout 10
20
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
21/193
Comunidad OpenSolaris Hispano
Service Management
Facility (SMF)Introduccin a SMF
OpenSolaris 2008.05 incorpora un nuevo sistema de gestin delarranque que ofrece nuevas posibilidades y optimiza el arranque delsistema, este nuevo componente se llama SMF (Service ManagementFacility) y forma parte de una nueva infraestructura que viene asustituir al clsico inicio secuencial de Unix System V. Esta nuevainfraestructura permite arrancar los servicios de forma paralelaacorde a sus relaciones de dependencia. Una vez arrancado el sistemael administrador puede observar, deshabilitar, arrancar y pararservicios de una manera sencilla y eficiente.
Caractersticas de SMF:
Ofrece los mecanismos para establecer relaciones dedependencia entre servicios. Un servicio no arranca hastaque estn correctamente arrancadas sus dependencias.
Repositorio que contiene toda la informacin referente a la
configuracin del servicio, modos de arranque, parada,reinicio y el estado en el que se encuentra. Log con informacin de eventos de cada servicio.
21
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
22/193
Comunidad OpenSolaris Hispano
Cambios de niveles de ejecucin a mono usuario, red,mantenimiento etc..
Beneficios de SMF:
Los servicios al ser objetos pueden ser vistos ygestionados con sencillos comandos de administracin.
Se puede definir que SMF monitorice un proceso delservicio y tomar acciones si detecta que el proceso amuerto o hay un fallo hardware.
Delegar en otros usuarios el poder arrancar o pararservicios de esta forma no necesitamos utilidades comosudo o la cuenta de root.
Un servicio definido en SMF no tiene por que estarnecesariamente asociado a un proceso que se este ejecutando en elsistema, un servicio puede ser el estado de un dispositivo, de unatarjeta de red o de un sistema de ficheros.
Repositorio (Repository SMF)
Es la pieza principal y en el se almacena la configuracin decada servicio tanto en local como en memoria. Tambin contiene elprocedimiento para parar, arrancar y verificar un servicio. Cuando unservicio se ha iniciado correctamente en el arranque del sistema esguardada una foto de la configuracin de dicho servicio con elobjetivo de saber cual es la configuracin correcta en caso de tenerque restaurar el servicio.
SMF Restarters: svc.startd
Es el proceso que permite reiniciar un servicio en caso de fallo,para ello consulta el repositorio para identificar el mtodo definidopara reiniciar el servicio y hacerlo respetando las dependenciasestablecidas. Si hemos definido dependencias para un servicio y una deestas falla SMF Restarters solucionar el problema con la dependenciapara restaurar el servicio.
SMF Service Instances
Un servicio puede estar compuesto a su vez por otra serie deservicios a los que se denominan instancias. Un ejemplo seria unservidor web Apache con el servicio web escuchando por el puerto 80,otro seguro por el 443 y un tercero por el 8080. Para gestionar elservicio deberamos crear el servicio web con tres instancias.
Componentes de un servicio SMF
22
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
23/193
Comunidad OpenSolaris Hispano
Un servicio en SMF esta formado por un conjunto de componentesque interactan entre si. Veamos cada uno de estos componentes:
SMF manifiest: es un fichero XML en el que se definen lascaractersticas de un servicio o una instancia del servicio. Los
ficheros XML con las propiedades de los servicios se almacenan en/var/svc/manifest. Estos ficheros son cargados en el repositorio SMF.Methods: los mtodos son usados por el restarter para interactuarcon el servicio y puede ser un fichero ejecutable: un script o unapalabra clave. Se utilizan para definir los mtodos de arranque,parada o reinicio de un servicio. Los mtodos son almacenados en/lib/svc/method.Service Log Files: es un servicio que escribe un log con todo losdatos sucesos sobre un servicio, los logs se encuentran en/var/svc/log.Service Identifiers : cada servicio y cada instancia de servicio
tienen un nombre con el que identificarse con Fault ManagementResource Identifier (FMRI) en el que se especifica como actuar encaso de fallo en el sistema.
Estados de un servicio SMF
Los servicios pueden tener varios estados en los que podemos versi el servicio esta parado, arrancado, degradado o en mantenimiento.Anteriormente se utilizaba el comando ps efpara ver si un servicio
estaba arrancado, ahora podemos utilizar los comandos de SMF para verel estado del servicio adems de poder continuar hacindolo con elcomando ps efpara buscar el proceso.Estados en los se puede encontrar un servicio SMF:
online: la instancia del servicio esta disponible y se estaejecutando correctamente.
offline: la instancia del servicio esta disponible pero no estaejecutandose.
disabled: la instancia del servicio no esta disponible y no estaejecutndose.
maintenance: la instancia del servicio tiene un error y estasiendo resuelto por el administrador.
degraded: la instancia del servicio esta disponible pero estafuncionando al lmite de su capacidad.
uninitialized: este es el estado inicial de todos los serviciosantes de iniciar su ejecucin.
legacy_run:este estado solo se utiliza para guardar lacompatibilidad con los viejos niveles de arranque y nos ndicaque el estado en el que se encuentran. Los niveles de arranquesolo pueden ser observados con SMF son se pueden editar.
DependenciasCuando definimos un servicio podemos definir dependencias,estableciendo que no arranque el servidor Apache hasta que no estearrancado el sistema en multiusuario (run level 3) y la bbdd MYSQL
23
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
24/193
Comunidad OpenSolaris Hispano
iniciada. Para cada servicio podemos establecer desde ninguna avarias dependencias.
Veamos las propiedades que podemos definir para las dependencias: require_all: todos los servicios de la dependencia deben estar
online (arrancados) antes de iniciar el servicio. require_any: es suficiente con que uno de los servicios de la
dependencia se ejecute para que el servicio se inicie. optional_all: si los servicios de la dependencia estn
disponibles y pueden ejecutarse deben estar online o degradedantes de la ejecucin del servicio. Si estn en mantenimiento elservicio no arrancara.
exclude_all: significa que no todos los servicios de ladependencia deben estar corriendo para hincar el servicio.
Proceso de arranque con SMF
En arranque de Solaris se realiza como en versiones anteriores yel proceso init continua siendo el primer proceso del sistema leyendofichero /etc/initab.initab contiene la siguiente entrada:
smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2/dev/msglog
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
25/193
Comunidad OpenSolaris Hispano
Figura 3.1
Milestone Services
Con la llegada de SMF tambin se ha redefinido la forma de ponerla mquina en diferentes niveles de ejecucin. Los niveles deejecucin mas conocidos son sigle user y multi user. Ahora se lesdenomina milestone. Milestone no es ms que un servicio especial deSMF que agrupa las dependencias necesarias para establecer un nivelde ejecucin.
Se han aadido dos nuevos niveles de ejecucin: none que noejecuta ningn servicio y all en el que se ejecutan todos losservicios disponibles.
Las equivalencias al sistema tradicional son las reflejadas en lasiguiente tabla:
SMF Milestone Run Level Run Level
milestone single-user Smilestone multi-user 2milestone multi-user-server 3milestone all 3milestone none No
existe
Para pasar de un nivel de ejecucin a otro podemos realizarlo sinproblemas de la manera tradicional con el comando init y el nmero
25
boot
Init (pid 1)
init lee
/etc/initta
svc.startd svc.confif.d
bbdd
configuracin SMF
svc:/platform
svc:/site
svc:/milestone
svc:/s stem
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
26/193
Comunidad OpenSolaris Hispano
del nivel de ejecucin al que queremos pasar o con el comando svcadmde la siguiente forma:
Pasar a single-user:# svcadm milestone single-user
A multi-user
# svcadm milestone multi-userA multi-user-server# svcadm milestone multi-user-server
Para averiguar en que Runlevel esta ejecutndose el sistemalanzamos el siguiente comando:
# svcprop svc:/system/svc/restarter:default | grep -i milestoneoptions_ovr/milestone astring svc:/milestone/multi-user-server:default
Podemos ver que el sistema se encuentra en el nivel de ejecucin
multi-user-server. Si la ejecucin del comando no muestra nada enpantalla significa que estemos en el nivel de ejecucin all.Un milestone es un servicio tiene definidas dependencias de otros
servicios, por ejemplo el servicio multi-userdepende de los serviciosde red. Obervando las dependencias de cada nivel de ejecucin podemosaveriguar que servicios ejecuta el milestone multi-user.
Para ello ejecutamos el comando svcs d servicio para ver susdependencias:Para ver las dependencias del milestone multi-user ejecutamos:
bash-3.00# svcs -d milestone/multi-user
STATE STIME FMRIdisabled 12:52:37 svc:/system/auditd:defaultdisabled 12:52:37 svc:/application/print/server:defaultdisabled 12:52:37 svc:/network/ntp:defaultdisabled 12:52:39 svc:/system/mdmonitor:defaultdisabled 12:52:39 svc:/system/rcap:defaultonline 12:52:42 svc:/milestone/name-services:defaultonline 12:52:54 svc:/system/rmtmpfiles:defaultonline 12:52:55 svc:/system/power:defaultonline 12:52:55 svc:/system/name-service-cache:defaultonline 12:53:01 svc:/milestone/single-user:defaultonline 12:53:04 svc:/system/filesystem/local:default
online 12:53:04 svc:/system/cron:defaultonline 12:53:06 svc:/network/rpc/bind:defaultonline 12:53:09 svc:/platform/i86pc/kdmconfig:defaultonline 12:53:09 svc:/milestone/sysconfig:defaultonline 12:53:10 svc:/network/inetd:defaultonline 12:53:11 svc:/system/utmp:defaultonline 12:53:24 svc:/network/nfs/client:defaultonline 12:53:25 svc:/system/filesystem/autofs:defaultonline 12:53:26 svc:/system/system-log:defaultonline 12:53:26 svc:/system/system-log:defaultonline 12:53:26 svc:/network/smtp:sendmail
Como se puede ver el nmero de servicios que ejecuta multi-server
es muy superior al single-userque no requiere de tantos servicioscomo podemos ver en el ejemplo:
bash-3.00# svcs -d milestone/single-user
26
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
27/193
Comunidad OpenSolaris Hispano
STATE STIME FMRIdisabled 12:52:32 svc:/system/metainit:defaultonline 12:52:39 svc:/network/loopback:defaultonline 12:52:48 svc:/milestone/network:defaultonline 12:52:49 svc:/system/identity:node
online 12:52:51 svc:/system/keymap:defaultonline 12:52:52 svc:/system/filesystem/minimal:defaultonline 12:52:54 svc:/system/cryptosvc:defaultonline 12:52:55 svc:/system/sysevent:defaultonline 12:52:56 svc:/milestone/devices:defaultonline 12:53:00 svc:/system/manifest-import:default
Gestin de los servicios con SMF
A continuacin vamos a ver los comandos que tiene SMF para lamonitorizar el estado de los servicios, obtener informacin de un
servicio y como parar o arrancar servicios. El conjunto de comandosque nos permite la administracin de SMF son:
svcs: Proporciona informacin sobre el estado de un servicio ysus dependencias:
svcadm: Permite realizar acciones administrativas como cambiar elestado de un servicio.
svccfg: Tiene la funcin de crear nuevos servicios a partir de unfichero xml y modificar las propiedades de un servicio.
svcprop: Obtenemos y cambiamos valores de la bbdd sobre un
servicio.
Obtener informacin de los servicios (svcs)
Los servicios SMF estn organizados en grupos con los siguientesnombres:
Application: Contiene los servicios asociados con aplicaciones.Device: Usado para las dependenciasMilestone: Equivalente a los niveles de ejecucin SVR4
Network: Todos los servicios del antiguo inetd.confPlatform: Servicios especficos de la plataforma.System: Servicios independientes de la plataformaSite: Sin uso, reservado para uso futuro.
El siguiente ejemplo muestra el grupo al que pertenece elservicio de telnet:
# svcs a | grep telnetdisabled Dec_28 svc:/network/telnet:default
Como se puede observar pertenece a /network
27
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
28/193
Comunidad OpenSolaris Hispano
Ver el estado de un servicio
Para ver el estado todos los servicios recurrimos al comando svcsque en ejemplo lo ejecutamos con la opcin a para que muestre todoslos servicios independientemente de su estado.
# svcs a
STATE STIME FMRIlegacy_run 10:10:30 lrc:/etc/rcS_d/S50sk98sollegacy_run 10:10:31 lrc:/etc/rcS_d/S51installupdateslegacy_run 10:10:55 lrc:/etc/rc2_d/S10lulegacy_run 10:10:56 lrc:/etc/rc2_d/S20sysetuplegacy_run 10:10:56 lrc:/etc/rc2_d/S40llc2legacy_run 10:10:56 lrc:/etc/rc2_d/S42ncakmodlegacy_run 10:10:56 lrc:/etc/rc2_d/S47pppdlegacy_run 10:10:56 lrc:/etc/rc2_d/S70uucplegacy_run 10:10:56 lrc:/etc/rc2_d/S72autoinstall
legacy_run 10:10:59 lrc:/etc/rc2_d/S73cachefs_daemonlegacy_run 10:10:59 lrc:/etc/rc2_d/S81dodatadm_udaplt..online 10:10:49 svc:/network/ftp:defaultonline 10:10:49 svc:/network/finger:defaultonline 10:10:50 svc:/network/ssh:defaultonline 10:10:50 svc:/system/dumpadm:defaultonline 10:10:51 svc:/system/system-log:defaultonline 10:10:51 svc:/network/login:rloginonline 10:10:51 svc:/network/shell:defaultonline 10:10:52 svc:/network/rpc-100235_1/rpc_ticotsord:defaultonline 10:10:53 svc:/network/smtp:sendmail
En el ejemplo podemos observar el servicio legacy_run utilizadopara guardar la compatibilidad con las practicas administrativas deversiones anteriores de Solaris. Del servicio legacy_run solo sepuede consultar su estado y no podemos realizar cambios sobre el.
Si aadimos un servicio de la forma tradicional con un script enel directorio ined.d y el enlace en el rc* correspondiente funcionaracon normalidad vindolo en el SMF como un servicio legacy_run .
En OpenSolaris 2008.05 no es recomendable seguir utilizando elviejo sistema para aadir servicios al arranque debiendo utilizar SMF.
Tambin podemos observar que los servicios tradicionales como ftpy ssh estn en estado online.
Ver las dependencias de un servicio
Para ver las dependencias de un servicio, es decir que serviciostienen que estar arrancados para que pueda ejecutarse utilizamos elcomando svcs con la opcin d.Veamos el ejemplo:
# svcs -d svc:/network/http:apache2STATE STIME FMRIonline 10:10:12 svc:/milestone/network:defaultonline 10:10:33 svc:/system/filesystem/local:defaultonline 10:10:48 svc:/system/filesystem/autofs:default
Figura 3.2
28
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
29/193
Comunidad OpenSolaris Hispano
En el ejemplo de la figura 3.2 vemos que para que puedaejecutarse el servicio web Apache 2 necesitamos que estn levantadoslos servicios network, y filesystem.
Procesos asociados a un servicio:
Para averiguar que procesos estn asociados a un servicioejecutamos el comando svcs con la opcin p . El resultado de laejecuin produce la siguiente salida:# svcs -p svc:/network/smtp:sendmailSTATE STIME FMRIonline 10:10:53 svc:/network/smtp:sendmail
10:10:54 334 sendmail10:10:54 341 sendmail
Figura 3.3
En el ejemplo de la figura 3.3 podemos ver los pid asociados alservicio sendmail aunque podemos averiguarlo tambien de la formatradicional con la ordenps -ef | grep sendmail.
Obtener informacin detallada de un servicio
SMF puede aportar informacin detallada de un servicio como sunombre, si esta habilitado, su propio estado y las dependencias.Ejecutamos svcs con el parmetro l :
# svcs -l svc:/network/http:apache2fmri svc:/network/http:apache2nombre Apache 2 HTTP serverhabilitada Falsoestado disablednext_state nonestate_time Thu Dec 28 10:10:08 2006reiniciador svc:/system/svc/restarter:defaultdependency require_all/error svc:/milestone/network:default (online)dependency require_all/none svc:/system/filesystem/local:default (online)dependency optional_all/error svc:/system/filesystem/autofs:default (online)
Diagnostico de fallos
SMF con el comando svcs puede aportarnos informacin sobre lacausa de porque un servicio no puede arrancar, para ellos utilizamosel comando svcs con el parmetro x. Para este ejemplo hemosdeshabilitado manualmente el servicio de apache.Veamos el resultado del diagnostico:
# svcs -x svc:/network/http:apache2svc:/network/http:apache2 (Apache 2 HTTP server)Estado: disabled desde Thu Dec 28 10:10:08 2006
Motivo: Un administrador lo ha inhabilitado.Consulte: http://sun.com/msg/SMF-8000-05Consulte: httpd(8)
Impacto: Este servicio no est funcionando.
29
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
30/193
Comunidad OpenSolaris Hispano
La salida del comando nos indica que el servicio fue parado porun administrador, en que momento lo hizo y el impacto sobre elservicio.
Tambin nos remite a una url de Sun donde se nos amplia
informacin sobre la causa por la que no esta arrancado el servicio.Sea cual sea el error siempre nos dar una url para obtenerinformacin que nos ayude a diagnosticar y solucionar el problema.
Cambios de estado de un servicio (svcadm).
Parada de un servicio
Para parar un servicio utilizamos el comando svcadm con losparmetros disable y t seguido del nombre de servicio:
svcadm disable -t svc:/network/http:apache2
Verificamos que ha parado con el comando svcs p el cual nosindicara que el proceso esta en disable y que no hay procesos deapache2 ejecutndose.El resultado es el siguiente:# svcs -p svc:/network/http:apache2
STATE STIME FMRIdisabled 12:20:21 svc:/network/http:apache2
ps -ef | grep -i apache2root 1549 1444 0 12:22:51 pts/4 0:00 grep -i apache2
La opcin t estipula que es una para temporal si olvidamosponer el parmetro t en el prximo arranque de la mquina elservicio no arrancara quedando en disable.
Arrancar un servicio
Para arrancar un servicio utilizamos el comando svcadm con los
parmetros enable y t seguido del nombre de servicio:# svcadm enable -t svc:/network/http:apache2
Y verificamos que ha arrancado correctamente:
## svcs -p svc:/network/http:apache2STATE STIME FMRIonline 12:31:23 svc:/network/http:apache2
12:31:23 1559 httpd12:31:24 1560 httpd12:31:24 1561 httpd
12:31:24 1562 httpd12:31:24 1563 httpd12:31:24 1564 httpd
Figura 3.3
30
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
31/193
Comunidad OpenSolaris Hispano
Tal como podemos ver en la figura 3.3 el servicio ha arrancadocorrectamente y podemos ver todos los pid de los procesos enejecucin.
Reiniciar un servicio
Hasta el momento si queramos reiniciar un servicio como porejemplo ssh acudamos a ejecutar:
/etc/init.d/sshd stop; /etc/init.d/sshd start
Ahora ejecutamos el comando svcs con la opcin restart :# svcadm restart svc:/network/http:apache2
Y verificamos que los procesos han cambiado de pid:
# svcs -p svc:/network/http:apache2STATE STIME FMRIonline 12:37:27 svc:/network/http:apache2
12:37:27 1577 httpd12:37:28 1578 httpd12:37:28 1579 httpd12:37:28 1580 httpd12:37:28 1581 httpd12:37:28 1582 httpd
Ver la configuracin de un servicio
Si deseamos saber los valores de las propiedades de un serviciodisponemos del comando svcprop que extrae dicha informacin delrepositorio. Como ejemplo vamos a averiguar que mtodo esta definidopara arrancar el servicio apache2.
Ejecutamos primeramente el comando svcprop y el nombre delservicio para obtener una lista de las propiedades definidas:
# svcprop svc:/network/http:apache2httpd/ssl boolean falsehttpd/stability astring Evolvingnetwork/entities fmri svc:/milestone/network:defaultnetwork/grouping astring require_all...general/entity_stability astring Evolvingstart/exec astring /lib/svc/method/http-apache2\ startstart/timeout_seconds count 60start/type astring methodstop/exec astring /lib/svc/method/http-apache2\ stopstop/timeout_seconds count 60stop/type astring methodrefresh/exec astring /lib/svc/method/http-apache2\ refreshrefresh/timeout_seconds count 60refresh/type
31
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
32/193
Comunidad OpenSolaris Hispano
..restarter/state_timestamp time 1167305847.133954000general_ovr/enabled boolean truerestarter_actions/restart integer
Figura 3.4
En el ejemplo de la figura 3.4 podemos ver una lista con todaslas propiedades del servicio, para nuestro ejemplo nos centramos en lalnea que pone:
start/exec astring /lib/svc/method/http-apache2\ start
Esta lnea muestra el fichero que ejecuta el arranque del apache2 que es /lib/svc/method/http-apache2 pasndole el parmetro start.Podemos ver el contenido del scritp realizando un more sobre/lib/svc/method/http-apache2.
Si queremos obtener datos formateados sobre una de laspropiedades ejecutamos:
svcprop p nombredelapropiedad nombredelservicio
En la figura 3.5 muestra la informacin sobre los valores de lapropiedad start/exec y start/timeout_seconds .
# svcprop -p start/exec svc:/network/http:apache2/lib/svc/method/http-apache2\ start
# svcprop -p start/timeout_seconds svc:/network/http:apache260#
Figura 3.5
inetd como servicio SMF
El proceso inetd ha sido migrado completamente como un servicioSMF, ya no es necesario editar el fichero /etc/inet/inetd.confparaestablecer valores o habilitar y deshabilitar servicio como telnet,
ftp, tftp etc..Si deshabilitamos un servicio como telnet ya no es necesarioreiniciar con el comando kill el proceso inet.d.
Ver servicios de inetd
Para ver todos los servicios del proceso inetd y el estado en elque se encuentran ejecutamos el comando inetadm y pulsamos intro:
# inetadm
ENABLED STATE FMRIenabled online svc:/application/x11/xfs:defaultenabled online svc:/application/font/stfsloader:defaultenabled offline svc:/application/print/rfc1179:defaultenabled online svc:/network/rpc/mdcomm:default
32
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
33/193
Comunidad OpenSolaris Hispano
enabled online svc:/network/rpc/meta:defaultenabled online svc:/network/rpc/metamed:defaultenabled online svc:/network/rpc/metamh:defaultenabled online svc:/network/rpc/gss:default..
enabled online svc:/network/ftp:defaultdisabled disabled svc:/network/comsat:defaultenabled online svc:/network/finger:defaultdisabled disabled svc:/network/login:eklogindisabled disabled svc:/network/login:kloginenabled online svc:/network/login:rlogindisabled disabled svc:/network/shell:kshelldisabled disabled svc:/network/talk:default
Deshabilitar un servicio inetd
Al ser un servicio mas de SMF recurrimos al comando svcadm y elparmetro disable. Ejemplo para no permitir conexiones telnet:
Con la opcin t se volver a habilitar el servicio al reiniciar lamquina:# svcadm disable t svc:/network/telnet:default
Sin la opcin t el cambio es permanente:# svcadm disable svc:/network/telnet:default
Ver el valor de un servicio inetd
En versiones anteriores si queramos cambiar un valor al servicioftp editbamos la lnea y cambiamos los valores en el propio fichero.Con SMF es mas sencillo ya las propiedades estn almacenadas en elrepositorio. Antes de utilizar SMF editbamos la siguiente lnea deinetd.conf:
ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -a
Para conocer el valor que tiene un servicio ejecutamos el
comando:inetadm l nombredelservicio
Ejemplo de la ejecucin para ver los valores del servicio ftp:
#inetadm -l ftp
SCOPE NAME=VALUEname="ftp"endpoint_type="stream"proto="tcp6"isrpc=FALSE
wait=FALSEexec="/usr/sbin/in.ftpd -a"user="root"
default bind_addr=""
33
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
34/193
Comunidad OpenSolaris Hispano
default bind_fail_max=-1default bind_fail_interval=-1default max_con_rate=-1default max_copies=-1default con_rate_offline=-1default failrate_cnt=40
default failrate_interval=60default inherit_env=TRUEdefault tcp_trace=FALSEdefault tcp_wrappers=FALSE
Cambiar un valor de un servicio inet.d
Para cambiar un valor de los servicios inet.d utilizamos elcomando inetadm de la siguiente forma:
inetadm m nombreservicio parametroacambiar=nuevovalor
La ejecucin del comando para cambiar el valor wait=FALSEdelservicio ftp a valor wait=TRUEseria:
inetadm -m ftp wait=TRUE
y lo verificamos con:
# inetadm -l ftpSCOPE NAME=VALUE
name="ftp"endpoint_type="stream"proto="tcp6"isrpc=FALSEwait=TRUEexec="/usr/sbin/in.ftpd -a"user="root"
default bind_addr=""default bind_fail_max=-1default bind_fail_interval=-1default max_con_rate=-1default max_copies=-1default con_rate_offline=-1
default failrate_cnt=40default failrate_interval=60default inherit_env=TRUEdefault tcp_trace=FALSEdefault tcp_wrappers=FALSE
Cambios en inetd.conf
El fichero /etc/inet/inetd.conf no puede sufrir cambios ya quetoda la gestin recae sobre SMF pero en caso de producirse un cambiovoluntario o por una aplicacin el sistema nos alertaraen /adm/messages que el fichero ha sido modificado para que eladministrador determine su naturaleza.
34
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
35/193
Comunidad OpenSolaris Hispano
Dec 28 17:11:11 aulaunix inetd[1737]: [ID 702911 daemon.warning] Configuration file/etc/inet/inetd.conf has been modified since inetconv was last run. "inetconv -i/etc/inet/inetd.conf" must be run to apply any changes to the SMF
Convertir un servicio de inetd.conf a SMF
En OpenSolaris 2008.05 se han migrado todos los demonios delfichero /etc/inet/inetd.conf, pero si necesitamos aadirposteriormente un servicio contamos con la utilidad inetconv.El procedimiento es el siguiente:
1. Creamos los directorio temporales:a. /tmp/nuevoserviciob. /tmp/destinoXML
2. Creamos en el directorio /tmp/nuevoservicio un fichero llamadomigracion.conf que contenga el nuevo demonio del servicio usandola sintaxis del fichero /etc/inetd.conf. Para nuestro ejemplo hemoscreado el fichero con la siguiente lnea:
tftp dgram udp6 wait root /usr/sbin/in.tftpd in.tftpd-s /tftpboot
3. Ejecutamos el comando:
# inetconv -i /tmp/nuevoservicio/migracion.conf -n -o /tmp/destinoXML
4. En el directorio /tmp/destinoXML encontraremos un nuevo fichero conextensin .XML al que le ha dado el nombre de tftp-udp6.xml para sercargado en el repositorio.
5. Cargamos la nueva configuracin en el repositorio con el comandosvcconfig.
Ejecutamos el comando:# svccfg import /tmp/destinoXML/tftp-udp6.xml
Verificamos que ha sido cargado con:# svcs -a | grep -i tftponline 12:39:09 svc:/network/tftp/udp6:default
Ya podemos gestionar el servicio svc:/network/tftp como unservicio mas de SMF.
Crear un nuevo servicio SMF
Para crear un nuevo servicio SMF debemos definir un nuevo SMFmanifiest que es fichero XML que contiene los mtodos para arrancar,parar, reiniciar, definicin de dependencias, documentacin etc..
Recordemos que los servicios SMF estn organizados en grupos con
los siguientes nombres:Application: Contiene los servicios asociados con aplicaciones.Device: Usado para dispositivos.
35
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
36/193
Comunidad OpenSolaris Hispano
Milestone: Equivalente a los niveles de ejecucin SVR4Network: Todos los servicios del antiguo inetd.confPlatform: Servicios especficos de la plataforma.System: Servicios independientes de la plataformaSite: Sin uso, reservado para uso futuro.
Para crear un servicio SMF debemos de seguir los siguientespasos:
1. Establecer el grupo y el nombre para el servicio2. Definir las dependencias3. Definir instancias y los mtodos de arranque, parada y
reinicio.4. Ubicacin de la documentacin5. Crear el fichero XML6. Cargar el fichero XML en el repositorio
Vamos a proceder a crear un nuevo servicio SMF de un servidorweb de Sun Microsystems: Sun ONE Web Server 6 para ello recopilamosla siguiente informacin:
Vamos a crear el servicio dentro del grupo Application y asu vez dentro de un nuevo subgrupo definido por nosotrosllamado servidoresweb y finalmente el identificador delservicio AulaUnixque se corresponde con el servidor webSun One. Quedando se la siguiente forma:/application/servidoresweb/AulaUnix.
Definimos como dependencia el nivel de ejecucin 3 o multi-
user-server. Los scripts de arranque, parada y reinicio son:
o /software/binarios/webserversunone/https-aulaunix.aulaunix.org/start
o /software/binarios/webserversunone/https-aulaunix.aulaunix.org/stop
o /software/binarios/webserversunone/https-aulaunix.aulaunix.org/restart
La documentacin la ubicamos en /software/documentacion
Creacin del XML
En el ejemplo de la figura 3.6 podemos ver un XML completo en elque se define el servicio /application/servidoresweb/AulaUnix.
Veamos las partes mas importantes:
En la primera parte del XML vemos que se han creado loscomentarios sobre el servicio y se ha definido un identificador:
Este identificador debe ser nico y podemos personalizar el textoacorde al servicio que vamos a dar de alta.
36
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
37/193
Comunidad OpenSolaris Hispano
En el siguiente se establece a que grupo pertenece y se defineun subgrupo para albergar los servidores web:
El nombre definido con name=ser el que nos muestre el comandosvcs cuando verifiquemos el estado del servicio. Debe ser un nombresencillo y que permita identificar los servicios de forma practica. Eneste caso hemos optado por organizar todos los servidores web pordebajo de servidoresweb.
La propiedad de la figura 3.6 create_default_instance nospermite dos valores false y true con los que indicamos que el serviciose inicie o se detenga con las paradas y arranques del sistema.Anteriormente esto lo hacamos con los scripts dentro del run revelcorrespondient pondiendo la S deltante del nombre para arrancar o la Kpara parar el servicio.
Figura 3.6Con estamos definiendo una sola instancia, un
servicio puede estar compuesto a su vez por otra serie de servicios alos que se denominan instancias. Un ejemplo seria un servidor webApache con el servicio web escuchando por el puerto 80, otro seguropor el 443 y un tercero por el 8080. Para gestionar el serviciodeberamos crear el servicio web con tres instancias. Para nuestroejemplo solo vamos el servicio con una sola instancia.
Tenemos que crear las dependencias para que solo arranque elservicio si estn funcionando correctamente todos los servicios delnivel de ejecucin 3. Podemos crear tantas dependencias como seannecesarias haciendo referencia al nombre del servicio:
Ya hemos definido las dependencias y ahora vamos a crear losmtodos para arrancar, reiniciar y parar. Como vemos en el ejemplo dela figura 3.6 con la opcin name=establecemos el valor start paraarrancar, stop para parar y restart para reiniciar.
Los mtodos definidos se ejecutaran cuando llamemos al comandosvcadm de la siguiente forma:
svcs Mtodo
svcadmenablenombredelservicio
start
svcadmdisablenombredelservicio
stop
svcadmrestartnombredelservicio
restart
37
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
38/193
Comunidad OpenSolaris Hispano
El valor de exec=contiene la ruta absoluta al script o binarioque se ejecutara y con time timeout_seconds definimos los segundos queesperara SMF como limite para el arranque:
Ya tenemos creados los mtodos y nos queda definir la informacinsobre la documentacin del servicio en la etiqueta donde establecemos el valor para manpage title con el titulo de ladocumentacin y del valor manpath con el path absoluto del lugardonde se encuentra la mquina.
Importando el servicio en XML a SMF
Ya tenemos creado el fichero XML y nos queda cargarlo en elrepositorio para poder ser gestionado. La carga en el repositorio la
realizamos con el comando svccfgejecutando la siguiente sentencia:svccfg -v import fichero.xml
# svccfg -v import aulaunix.xml
svccfg: Tomando captura "previous" desvc:/application/servidoresweb/AulaUnix:default.svccfg: Actualizacin de propiedades de svc:/application/servidoresweb/AulaUnix deacuerdo con la instancia "default".svccfg: svc:/application/servidoresweb/AulaUnix: Actualizando propiedad"tm_man_Documentos_Web_Server/manpath".svccfg: Tomando captura "last-import" para
svc:/application/servidoresweb/AulaUnix:default.svccfg: svc:/application/servidoresweb/AulaUnix:default actualizado.svccfg: Importacin finalizada con xito.
Y verificamos que ha cargado correctamente ejecutando:
# svcs -l svc:/application/servidoresweb/AulaUnix
fmri svc:/application/servidoresweb/AulaUnix:defaultnombre Servicio SMF de ejemplo sobre SunONEhabilitada Falsoestado disabled
next_state nonestate_time Tue Jan 02 17:56:41 2007reiniciador svc:/system/svc/restarter:defaultdependency require_all/none svc:/milestone/multi-user-server (online)
38
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
39/193
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
40/193
Comunidad OpenSolaris Hispano
Servicio SMF de ejemplo sobre SunONE
Figura 3.6
Delegar la gestin de SMF a otros usuarios
En algn momento puede surgir la necesidad de delegar la gestinde un servicio a otro usuario del sistema para poder arrancar, parar yreiniciar servicios.
40
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
41/193
Comunidad OpenSolaris Hispano
En nuestro ejemplo vamos a dar permisos al usuario aulaunix paraque pueda gestionar el servidor web. El primer paso es aadir alservicio el atributo value_authorization utilizando el comandosvcprop:
svccfg -s /application/servidoresweb/AulaUnix setprop general/value_authorization =astring: solaris.smf.manage
Ahora aadimos al fichero /etc/user_attr la siguiente lnea ygrabamos los cambios:aulaunix::::type=normal;auths=solaris.smf.manage
Con estos dos pasos el usuario aulaunix ya puede gestionar elservicio web:
# su - aulaunixbash-3.00$ /usr/sbin/svcadm disable /application/servidoresweb/AulaUnixbash-3.00$ /usr/sbin/svcadm enable /application/servidoresweb/AulaUnix
Si deseamos quitarle los permisos para que no pueda continuargestionando el servicio ejecutamos el comando svcprop para eliminar lapropiedad value_authorization:
#svccfg -s /application/servidoresweb/AulaUnix delpropgeneral/action_authorization
41
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
42/193
Comunidad OpenSolaris Hispano
Gestin de usuarios
Las cuentas de usuario para el acceso alsistema no difieren en Solaris de otrossistemas unix, en el siguiente capitulo
aprenderemos a: Identificar los ficheros de configuracin de usuarios
Gestin de usuarios (alta, modificacin y borrado)
Gestin de grupos (alta, modificacin y borrado)
Gestionar usuarios en grupos (alta, modificacin y borrado)
Ficheros de inicializacin
Ficheros de configuracinLos ficheros de configuracin contienen la informacin sobre las
cuentas de usuario, los grupos y contraseas. Los ficheros son:
/etc/passwd
Cada una de las lneas del fichero contiene la informacin de unusuarios. Cada lnea esta organizada en campos separados por elcarcter dos puntos que hace de separador de campo. Ejemplo de unalnea del ficheropasswd:
aulaunix:x:65535:1:Nombre y apellidos:/export/home/aulaunix:/bin/bash
El formato tiene la siguiente estructura:
42
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
43/193
Comunidad OpenSolaris Hispano
IDlogin:x:UID:GID:comentario:home_directory:login_shell
Estos campos son:
IDlogin: es el identificador con el que hacemos login en elsistema debe de ser nico.
Contrasea: la contrasea representada por xes almacenada en elfichero /etc/shadow
UID: esta representado por un nmero superior a 0 ya que 0pertenece al usuario root. Los nmeros del 1 al 99 estnreservados para usuarios administradores del sistema. Para elresto de usuarios se utiliza el rango del 100 al 60000. Sereserva para el usuario nobody el 60001 y para el usuarionoaccess el 60002.
GID: nmero mayor de 0 que representa el grupo primario al quepertenece el usuario.
Comentario: Nombre completo del usuario.
Directorio home (home_directory): ruta absoluta del directoriohome para el usuario.
Shel (login_shell ): Define la shell para el usuario (sh, ksh,csh, etc..)
/etc/shadow
Contiene las contraseas de las cuentas de usuario, al ser unfichero que puede comprometer la seguridad del sistema solo el usuarioroot debe de tener permisos de lectura para el archivo. El contenidodel archivo es el siguiente:
root:SbEPJrMu/wMTw:6445::::::
daemon:NP:6445::::::bin:NP:6445::::::sys:NP:6445::::::adm:NP:6445::::::lp:NP:6445::::::uucp:NP:6445::::::nuucp:NP:6445::::::dladm:*LK*:::::::smmsp:NP:6445::::::listen:*LK*:::::::gdm:*LK*:::::::webservd:*LK*:::::::postgres:NP:::::::
nobody:*LK*:6445::::::noaccess:*LK*:6445::::::nobody4:*LK*:6445::::::aulaunix:nMF64Wg9ff/HU:13570::::::
43
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
44/193
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
45/193
Comunidad OpenSolaris Hispano
nobody::60001:noaccess::60002:nogroup::65534:
El formato tiene la siguiente estructura:
nonmbredelgrupo:group-password:GID:listausuarios
Los datos que contiene cada lnea del fichero group son:
nonmbredelgrupo: contiene el nombre del grupo.
group-password: Utilizado en versiones mas antiguas deunix. Actualmente no es utilizado.
GID: nmero que identifica al grupo y debe nico en elsistema.
listausuarios: contiene la lista de usuarios separados porcoma que pertenecen al grupo.
Gestin de usuarios
Crear usuario
El comando empleado para crear usuarios es useraddcon las siguientesintaxis:
useradd [u uid] g [gid] G [gid1,gid2, ] [-d dir] m [s shell] [ccomment] [e expire] usuario
Los parmetros admitidos son los siguientes:
-u define un uid nico para el usuario. -gdefine el grupo primario al que va a pertenecer el usuario. -Gdefine los grupos secundarios a los que va a pertenecer el
usuario. -ddefine el path absoluto para el home del usuario. -m fuerza la creacin del home del usuario si no existe. -s define la shell para el usuario, por defecto asigna /bin/sh -c establece el nombre completo del usuario o cualquier otro
comentario. -o permite la duplicacin del uid del usuario. -e fecha de expiracin de la cuenta.
-f tiempo mximo admitido de inactividad para la cuenta. Si elusuario no entra en el sistema en el tiempo establecido la cuentase bloquea.
45
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
46/193
Comunidad OpenSolaris Hispano
-k permite la copia de archivos de inicializacin personalizadosal home del usuario al crearlo.
Ejemplo de uso de useradd:
Crear usuario:
El siguiente ejemplo muestra como crear el usuario aula, definirsu UID manualmente e incluirlo en el grupo alumnos definiendo su homeen /export/home/aulaunix, definimimos la shell como ksh.
Ejecucin del comando:
# useradd -u 109 -g alumnos -d /export/home/aulaunix -m -s /bin/ksh -cusuario de pruebas aula
Inmediatamente se aade la siguiente lnea al fichero /etc/passwd:
aula:x:109:100:usuarios de pruebas:/export/home/aulaunix:/bin/ksh
Modificar un usuario
Si ya tenemos un usuario en el sistema y deseamos cambiar algunade sus propiedades utilizamos el comando usermod:
Las opciones permitidas son:
-o permite la duplicacin de un UID
-m Mueve el home del usuario
-l Cambio del nombre de inicio de sesin
-fDefinimos el nmero de das puede estar inactiva. Si lacuenta no es usada en el nmero de das especificado se bloquea.
-e Define la fecha de caducidad de la cuenta. Cuando llega
ldicha fecha la cuenta es inutilizable.
Ejemplo de uso del comando usermod:
Cambiamos el home del usuario dgalan a /home/nuevopath
#usermod m d /export/nuevohome dgalan
Este ejemplo implica que el nuevo home para el usuario dgalan es
/export/nuevohome y mueve todos los archivos del viejo directorio alnuevo.Vamos a ejecutar el ejemplo anterior pero adems vamos a cambiar
el nombre de inicio de sesin:
46
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
47/193
Comunidad OpenSolaris Hispano
#usermod m d /export/nuevohome l davidgalan
Despus de ejecutar el comando tenemos un nuevo home y un nuevo nombre
de inicio de sesin.Borrado de usuarios
Borrar un usuario del sistema es muy sencillo utilizando el comandouserdel.userdel r [usuario a borrar]
La opcin r elimina el home del usuario si este existe, pero noborra los archivos que el usuario pueda tener repartidos en otrosdirectorios de la mquina.
Para eliminar todos los archivos del usuario deberamos derecurrir a una bsqueda recursiva utilizando el comando find.
Buscaramos todos los archivos y directorios pertenecientes al usuarioeliminado.
Ejemplo de borrado de usuario:
userdel r dgalan
Borramos el usuario dgalan y los contenidos de su directorio home.
Cambiar la contrasea de usuario
Para cambiar la contrasea de un usuario recurrimos al comando
passwd:
passwd [usuario]
Ejemplo de cambio de contrasea:bash-3.00# passwd dgalanNueva contrasea:Vuelva a escribir la nueva contrasea:passwd: la contrasea se ha cambiado por dgalan satisfactoriamentebash-3.00#
Gestin de grupos
Hemos visto como crear, modificar y eliminar usuarios. Ahoravamos a realizar el mismo recorrido pero esta vez gestionando grupos,para ello utilizaremos los comandos:
groupadd
groupmod
groupdel
47
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
48/193
Comunidad OpenSolaris Hispano
Aadir un nuevo grupo al sistema
Para aadir un nuevo grupo al sistema recurrimos al comandogroupadd. El GID y el nombre del grupo han de ser nicos.
Ejemplo para aadir un grupo llamadooperadores:
bash-3.00# groupadd -g 124 admins
Lo verificamos:
bash-3.00# grep admins /etc/groupadmins::124:bash-3.00#
Hemos buscado el nuevo usuario en el fichero de grupos yefectivamente se aada la nueva entrada de grupo.
Modificar un grupo
Podemos ejecutar cambios en un grupo existente con el comandogroupmod que nos permite modificar el GID o renombrar un grupo.
groupmod d [GID] n [nuevo nombre de grupo]
Este primer ejemplo cambia el GID para el grupo opera:#groupmod g 125 opera
Y este otro ejemplo cambia el nombre al grupo opera por monitor#groupmod n monitor opera
Eliminar un grupo
Eliminar un grupo existente es muy facil con el comando groupdel.groupdel [nombre del grupo]Ejemplo:
bash-3.00# groupdel admins
Cambio de grupos
Siempre que entramos al sistema lo hacemos perteneciendo al grupoprincipal, pero un usuario que pertenece a varios grupos puedenecesitar operar en cada uno de ellos en diferentes momentos de susesin en el sistema.
Para cambiar de grupo recurrimos al comando newgrp, veamos unejemplo practico:Hemos entrado al sistema con el usuario dgalan tal como se puede veren el siguiente ejemplo:
48
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
49/193
Comunidad OpenSolaris Hispano
$ iduid=109(dgalan) gid=1(other)
Para pasarnos al grupo admin ejecutamos:# newgrp admins
Lo verificamos:$ iduid=109(dgalan) gid=1(other) gid=45(admins)
A partir de este momento todos los ficheros y directorio creadospertenecern al grupo admins.
Qu hacen los usuarios en el sistema?
El comando who
Solaris al igual que el resto de sistemas Unix nos facilita unaserie de comandos que nos permite averiguar que usuarios estnconectados al sistema y desde donde se han conectado.
El primero de estos comandos es who que muestra una lista contodos los usuarios conectados al sistema mostrando datos como:
usuario conexin fecha de entrada
Ejemplo del comando who:
$ whoroot console Sep 1 19:41aula pts/1 Sep 1 19:45 (192.168.1.33)$
El comando w
Otro comando a nuestro alcance es wque muestra la lista deusuarios en el sistema como el comando who pero aadiendo datos comolos procesos y carga de CPU.Ejemplo del comando w:$ w9:05pm en funcionamiento 1:26, 2 usuarios, promedio de carga: 0,01, 0,01, 0,21
User tty login@ idle JCPU PCPU whatroot console 7:41pm 1:21 -shaula pts/1 7:45pm 1 w
El comando finger
Muestra informacin detallada de los usuarios conectados alsistema y detalles de usuarios de forma individual, es un comandobasado
49
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
50/193
Comunidad OpenSolaris Hispano
Ejemplo de la salida del comando finger para todos los usuarios:
finder: no encontrado$ fingerLogin Name TTY Idle When Where
root Super-User console 1:30 Sat 19:41aula ??? pts/1 Sat 19:45 192.168.1.33$
Ejemplo de la salida del comando finger para obtener detalles de unsolo usuario:Login name: root In real life: Super-UserDirectory: / Shell: /sbin/shOn since Sep 1 19:41:45 on console1 hour 31 minutes Idle TimeNo unread mailNo Plan.
El segundo ejemplo nos aporta informacin como la shell y el homedel usuario as como el tiempo conectado.
50
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
51/193
Comunidad OpenSolaris Hispano
Procesos y sealesIntroduccin
En este capitulo veremos como gestiona Solaris los procesos queno difiere mucho del resto de unix existentes en el mercado.Igualmente si provienes de Linux te resultar fcil adaptarte a lassingularidades de Solaris.Cada programa que se ejecuta en el sistema se corresponde con uno ovarios procesos.Solaris como cualquier sistema multiusuario permite a cualquierusuario ejecutar ms de un proceso simultneamente, los procesos de
un mismo usuario pueden comunicarse entre si pero no con los procesosde otro usuario. El usuario root es el nico que puede comunicarse contodos los procesos en ejecucin.
Cada proceso est identificado por un PID nico y a su veztienen asociado un identificador de usuario (UID) y su grupo (GID).
Ver los procesos en ejecucin
Uno de los comandos mas habituales para un administrador desistemas es sin duda el comandops. El comandops permite ver losprocesos en ejecucin en el sistema y obtener informacin de cada uno
de ellos.
Veamos un ejemplo de la ejecucin del comandops ef:UID PID PPID C STIME TTY TIME CMD
root 0 0 0 23:51:57 ? 30:42 schedroot 1 0 0 23:51:58 ? 0:00 /sbin/initroot 2 0 0 23:51:58 ? 0:00 pageoutroot 3 0 0 23:51:58 ? 0:01 fsflush
daemon 223 1 0 23:52:18 ? 0:00 /usr/sbin/rpcbindroot 7 1 0 23:51:58 ? 0:10 /lib/svc/bin/svc.startdroot 45 1 0 23:52:02 ? 0:00 /sbin/dhcpagentroot 9 1 0 23:51:58 ? 0:19 /lib/svc/bin/svc.configdroot 230 1 0 23:52:18 ? 0:00 /usr/lib/dmi/dmispdroot 419 1 0 23:52:29 ? 0:00 /usr/lib/autofs/automountdroot 139 1 0 23:52:14 ? 0:00 /usr/lib/sysevent/syseventdroot 71 1 0 23:52:09 ? 0:00 /usr/sfw/sbin/snmpd
51
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
52/193
Comunidad OpenSolaris Hispano
La informacin que nos aporta la salida del comando:
UID: usuario propietario del proceso. PID: nmero de identificacin del proceso. PPID: nmero que identifica el proceso padre. STIME: fecha en la que se arranc el proceso. TTY: terminal del proceso. CMD: programa en ejecucin.
La siguiente tabla contiene los parmetros ms tiles para utilizarcon el comando ps:
Parmetro Funcin-a Muestra los procesos mas
solicitados.
-e Muestra todos los procesos enejecucin.-f Muestra informacin ampliada
de los procesos.-p Muestra el ID de la CPU
asociada al proceso.-u Muestra todos los procesos de
un usuario especfico.-c Muestra los datos con formato
planificacin y prioridad deprocesos.
-G Muestra los procesosejecutados por un grupo.
Los siguientes ejemplos muestran el uso del comandops:
Ver los procesos pertenecientes al usuario aulaunix:bash-3.00$ps -u aulaunix
PID TTY TIME CMD712 pts/1 0:00 bash733 pts/1 0:00 ps682 ? 0:01 sshd684 pts/1 0:00 sh
Muestra los datos en formato planificacin:bash-3.00$ps -c
PID CLS PRI TTY TIME CMD712 TS 49 pts/1 0:00 bash734 TS 49 pts/1 0:00 ps684 TS 59 pts/1 0:00 sh
La opcin ejecutada en el ejemplo con c muestra informacininteresante como los valores CLS que indica el tipo de prioridad yPRI que muestra la prioridad del proceso.
Muestra los procesos en ejecucin del grupo aulaunix:bash-3.00$ grep -i aulaunix /etc/groupaulaunix::100:
52
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
53/193
Comunidad OpenSolaris Hispano
bash-3.00$ ps -G 100PID TTY TIME CMD712 pts/1 0:00 bash742 pts/1 0:00 ps682 ? 0:01 sshd684 pts/1 0:00 sh
Observa que el grupo es indicado con su GID que hemos obtenidomirando su valor en el fichero /etc/group.
El comando prstat
El comandoprstat muestra informacin de los procesos enejecucin ordenados por el uso de CPU. Ejemplo de la ejecucin delcomandoprstat:
bash-3.00$prstat
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP668 noaccess 159M 80M sleep 59 0 0:00:29 0,5% java/24744 aulaunix 4492K 2644K cpu0 39 0 0:00:00 0,4% prstat/1682 aulaunix 7952K 2100K sleep 59 0 0:00:00 0,0% sshd/1712 aulaunix 2484K 1612K sleep 49 0 0:00:00 0,0% bash/1131 root 3824K 2360K sleep 59 0 0:00:00 0,0% nscd/24535 root 4444K 1724K sleep 59 0 0:00:00 0,0% dtlogin/1670 root 7096K 2076K sleep 59 0 0:00:00 0,0% sendmail/11 root 2024K 1120K sleep 59 0 0:00:00 0,0% init/1
269 root 4416K 3052K sleep 59 0 0:00:03 0,0% inetd/4278 root 2820K 1140K sleep 59 0 0:00:00 0,0% sh/1214 root 2272K 900K sleep 59 0 0:00:00 0,0% cron/1143 daemon 3932K 1968K sleep 59 0 0:00:00 0,0% kcfd/3
111 root 2156K 1296K sleep 59 0 0:00:00 0,0% snmpdx/1258 root 1700K 896K sleep 59 0 0:00:00 0,0% sac/171 root 6556K 4572K sleep 59 0 0:00:00 0,0% snmpd/1
Total: 43 processes, 180 lwps, load averages: 0,02, 0,03, 0,31
En la siguiente lista puedes ver la informacin aportada por laejecucin del comando:
PID: identificador del proceso. USERNAME: propietario del proceso.
SIZE: memoria virtual utilizada por el proceso. STATE: estado del proceso, los estados del proceso pueden ser
cpu, sleep, run, zombie y stop. PRI: prioridad del proceso. NICE: valor para el calculo de la prioridad del proceso. TIME: tiempo total que lleva el procesos ejecutandose. CPU: porcentaje de CPU utilizado por el proceso. PROCCESS: nombre del proceso.
El comandoprstat proporciona diversos parmetros para obtener mas
informacin, los parmetros mas tiles son:
-t: muestra informacin agrupada por usuario.
53
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
54/193
Comunidad OpenSolaris Hispano
-p [PID]: muestra solo la informacin para un solo procesoidentificado por su PID.
-n: nmero mximo de procesos mostrados.
Seales
Los procesos en ejecucin puede ser necesario detenerlos por quesu funcionamiento no es el esperado, no responden o cualquier otracausa. El comando kill nos permite enviar una seal al proceso paraque se detenga.
Las seales que podemos enviar son:Nombre Nmero de
seal.Descripcin
SIGHUP 1 Seal de corte de seal, interrumpir la
seal de la conexin telefnica o un
terminal.
SIGINT 2 Seal de Control-C (procedente del
teclado)
SIGKILL 9 Seal de eliminacin ningn proceso
puede ignorar esta seal.
SIGTERM 15 Finalizar proceso de forma ordenada.
Ejemplo para una BDDD, LDAP etc..
para que cierre las conexiones, ficheros
etc..
Formato de kill:kill seal pidproceso
Ejempo de kill
Matar una sesin ssh:# adtasweb01 /var/opt/aat/d#ps -ef | grep ssh
root 449 1 0 Aug 20 ? 1:01 /usr/local/sbin/sshdroot 25618 449 0 17:51:52 ? 0:00 /usr/local/sbin/sshd -Rora9 18084 18082 0 20:25:28 ? 0:00 /usr/local/sbin/sshd -R
ora9 8645 8476 0 20:22:26 ? 0:00 /usr/local/sbin/sshd R# kill -9 25618#
La seal SIGHUP comnmente conocida como interrumpir una conexintelefnica o de Terminal, esta seal puede provocar en servicios comoinetdque relean el fichero de configuracin.
Seal en curso
En algn momento puede interesarnos ver todas las sealesenviadas a un proceso en ejecucin para ello recurrimos al comando
psig.
Formato:psig pidEjemplo depsig:#psig 13936
54
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
55/193
Comunidad OpenSolaris Hispano
13936: /usr/lib/ssh/sshdHUP defaultINT defaultQUIT defaultILL defaultTRAP default
ABRT defaultEMT defaultFPE defaultKILL defaultBUS defaultSEGV defaultSYS defaultPIPE ignoredALRM caught 0x2d7fc RESETHAND,NODEFERTERM defaultUSR1 defaultUSR2 defaultCLD caught 0x40f14 0PWR defaultWINCH defaultURG default
Seales de proceso:
Nombre Nmero deseal.
Descripcin
SIGHUP 1 Seal de corte de seal, interrumpir la
seal de la conexin telefnica o un
terminal.
SIGINT 2 Seal de Control-C (procedente del
teclado)
SIGKILL 9 Seal de eliminacin ningn proceso
puede ignorar esta seal.
SIGTERM 15 Finalizar proceso de forma ordenada.
Ejemplo para una BDDD, LDAP etc..
para que cierre las conexiones, ficheros
etc..
SIGINT 3 Salir
SIGILL 4 Instruccin ilegal.
SIGTRAP 5 Punto de ruptura
SIGABRT 6 Abortar
SIGEMT 7 Trap de emulacin
SIGFPE 8 Excepcin aritmtica
SIGBUS 10 Error en bus
SIGSEGV 11 Fallo de segmentacin
SIGSYS 12 Llamada al sistema errnea
SIGPIPE 13 Pipe rota
55
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
56/193
Comunidad OpenSolaris Hispano
SIGALRM 14 Finalizada
rbol de procesos
Disponemos de un comando llamadoptree que nos permite ver losprocesos de forma jerrquica es decir podemos ver los procesos hijosdesplegados de forma arbrea. El comandoptree se lanza sin opciones,veamos el ejemplo de su ejecucin:adtasbac01 /opt/na#ptree51 /usr/lib/sysevent/syseventd60 /usr/lib/picl/picld137 /usr/lib/sparcv9/cpudiagd -i174 /usr/sbin/rpcbind197 /usr/sbin/inetd -s326 rpc.metad5089 in.telnetd
5094 -ksh16041 bash28382 bash15728 ptree
22123 in.telnetd22125 -ksh23114 bash
218 /usr/lib/nfs/statd219 /usr/lib/nfs/lockd221 /usr/lib/autofs/automountd224 /usr/lib/autofs/automountd
235 /usr/sbin/syslogd242 /usr/sbin/cron
263 /usr/sbin/nscd266 /usr/lib/power/powerd
Informacin sobre procesos:
A continuacin vamos a ver una serie de comandos que nosaportaran informacin sobre los procesos en ejecucin.
Ver las libreras en uso por un proceso.
Para averiguar las libreras en uso por un proceso recurrimos alcomandopldd:
pldd [PID del proceso]
El siguiente ejemplo muestra las libreras utilizadas por elproceso 6171 perteneciente a un servicio web de Sun Java:
# pldd 67176717: ../../bin/https/bin/Cgistub -f /tmp/https-admserv-98ccc083/.cgistub_88
/usr/lib/libsocket.so.1/usr/lib/libnsl.so.1/usr/lib/libC.so.5/usr/lib/libm.so.1/usr/lib/libw.so.1
56
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
57/193
Comunidad OpenSolaris Hispano
/usr/lib/libc.so.1/usr/lib/libdl.so.1/usr/lib/libmp.so.2/usr/platform/sun4u-us3/lib/libc_psr.so.1
Descriptores de ficheros abiertos
El comandopfiles lista todos los descriptores de ficherosabiertos por un proceso:
pfiles [PID del proceso]
El resultado de la ejecucin del comandopfiles para un servicioweb es la siguiente:
# pfiles 6717
6717: ../../bin/https/bin/Cgistub -f /tmp/https-admserv-98ccc083/.cgistub_88Current rlimit: 1024 file descriptors1: S_IFCHR mode:0666 dev:85,1 ino:72269 uid:0 gid:3 rdev:13,2
O_RDWR2: S_IFCHR mode:0666 dev:85,1 ino:72269 uid:0 gid:3 rdev:13,2
O_RDWR
Mapa de espacio de direcciones
El comandopmap mustrela el uso que hace de la memoria unproceso mostrando una mapa del espacio de direcciones:
pmap [PID del proceso]
El siguiente ejemplo muestra la salida del comandopmap:#pmap 67176717: ../../bin/https/bin/Cgistub -f /tmp/https-admserv-98ccc083/.cgistub_8800010000 24K read/exec/opt/app/SunWeb/ /bin/https/bin/Cgistub00024000 8K read/write/exec/opt/app/SunWeb/
0/bin/https/bin/Cgistub00026000 8K read/write/exec [ heap ]FF080000 688K read/exec /usr/lib/libc.so.1FF13C000 32K read/write/exec /usr/lib/libc.so.1FF1B0000 224K read/exec /usr/lib/libm.so.1FF1F6000 8K read/write/exec /usr/lib/libm.so.1FF200000 312K read/exec /usr/lib/libC.so.5FF25C000 32K read/write/exec /usr/lib/libC.so.5FF264000 64K read/write/exec /usr/lib/libC.so.5FF280000 576K read/exec /usr/lib/libnsl.so.1FF310000 40K read/write/exec /usr/lib/libnsl.so.1FF31A000 24K read/write/exec /usr/lib/libnsl.so.1FF330000 16K read/exec /usr/lib/libmp.so.2
FF344000 8K read/write/exec /usr/lib/libmp.so.2FF350000 8K read/write/exec /usr/lib/libdl.so.1FF360000 8K read/exec /usr/platform/sun4u-us3/lib/libc_psr.so.1FF370000 8K read/write/exec [ anon ]FF380000 40K read/exec /usr/lib/libsocket.so.1
57
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
58/193
Comunidad OpenSolaris Hispano
FF39A000 8K read/write/exec /usr/lib/libsocket.so.1FF3A0000 8K read/exec /usr/lib/libw.so.1FF3B0000 192K read/exec /usr/lib/ld.so.1FF3E0000 8K read/write/exec /usr/lib/ld.so.1FF3E2000 8K read/write/exec /usr/lib/ld.so.1FFBEA000 24K read/write/exec [ stack ]
total 2376K
Informacin sobre las CPU
A continuacin veremos una serie de comandos que nos permitenobservar los procesos y la carga de trabajo de las CPU del sistema.El comando ps pero en versin BSD alojado en /usr/ucb nos permite verel consumo de CPU y memoria de los procesos:/usr/ucb/ps -aux
El siguiente ejemplo muestra los diez primeros procesos que mas
consumen recursos, se ha aade el comando headpara que solo muestralos diez primeros resultados:
/#usr/ucb/ps -aux |head
USER PID %CPU %MEM SZ RSS TT S START TIME COMMANDroot 792 0.5 0.271760 3528 ? S Aug 24 588:50 /usr/lib/mixer_approot 3 0.4 0.0 0 0 ? S Aug 24 842:00 fsflushj.vazque 20211 0.4 0.1 3040 1632 ? S 12:39:01 0:00 /usr/local/bin/cvsroot 790 0.2 1.713910434080 ? S Aug 24 230:50 /usr/bin/java -jarroot 438 0.2 1.04366418752 ? S Aug 24 189:06 /usr/openwin/bin/Xroot 607 0.2 0.314600 5968 pts/2 S Aug 24 197:45 /usr/lib/gconfd-2root 937 0.1 0.164576 1576 ? S Aug 24 144:52 /usr/lib/at-spi-re
root 677 0.1 0.176912 1800 ? S Aug 24 147:34 gnome-panel --sm-croot 20213 0.1 0.1 1384 952 pts/6 O 12:39:33 0:00 usr/ucb/ps aux
Los comandospsinfo y mpstat nos muestran estadsticas sobre elestado de las CPU del sistema:mpstat muestra la actividad de las CPU de forma individual, veamos laejecucin del comando mpstat:
CPUminfmjfxcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl1 7 1 120 412 309 168 4 21 3 0 638 1 4 0 953 7 1 13 115 107 179 7 21 3 0 633 1 3 0 96
La informacin ms importante que vemos en el resultado de laejecucin del comando es:
mjfque corresponde con fallos importantes. minfque corresponde con fallos de menor importancia. xcal aporta informacin sobre la llamada entre las CPU. intrindica el nmero de interrupciones. wt indica en % el tiempo consumido por los procesos de usuario. sys tiempo de CPU consumido por los procesos del sistema.
El comandopsrinfo mostrar el estado de las CPU y cuando seiniciaron. Ejemplo de la salida del comandopsrinfo:
#psrinfo
58
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
59/193
Comunidad OpenSolaris Hispano
0 on-line since 10/04/07 09:03:131 on-line since 10/04/07 09:03:132 on-line since 10/04/07 09:03:133 on-line since 10/04/07 09:03:134 on-line since 10/04/07 09:03:135 on-line since 10/04/07 09:03:13
6 on-line since 10/04/07 09:03:137 on-line since 10/04/07 09:03:0116 on-line since 10/04/07 09:03:1317 on-line since 10/04/07 09:03:1318 on-line since 10/04/07 09:03:1319 on-line since 10/04/07 09:03:1320 on-line since 10/04/07 09:03:1321 on-line since 10/04/07 09:03:1322 on-line since 10/04/07 09:03:1323 on-line since 10/04/07 09:03:1
Trabajos planificados
El comando at
El comando at permite la ejecucin de un trabajo una sola vez enuna fecha y hora determinada.
Sintaxis:
at [-m] [-r id_trabajo] [-q nombre_cola][-t hora] [fecha]
Parmetro Funcin-m Cuando termina el trabajo enva un
correo al usuario.-r Elimina un trabajo programado.-q Establece nombre de cola.-l Muestra los procesos en cola.
hora Establece la hora de ejecucin.fecha Establece la fecha de ejeucin.
Ejemplos de utilizacin del comando at:
Programar un trabajo.
El siguiente ejemplo planifica la parada de un servidor web paralas 15:30:# at 03:00 pmat> /opt/servidorweb/stop.shat> at> commands will be executed using /sbin/shjob 1195653600.a at Wed Nov 21 15:00:00 2007
#
El ejemplo primero establece la hora con at 03:00 pmseguidamente introducimos el comando que se va a
59
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
60/193
Comunidad OpenSolaris Hispano
ejecutar /opt/servidorweb/stop.sh y salimos pulsando Control-d.Observa que el comando nos devuelve el nombre del trabajo job1195653600.a.
Ver los trabajos en espera de ejecucin.
El comando at l muestra los trabajos pendientes y su hora deejecucin:
# at -luser = root 1195653600.a Wed Nov 21 15:00:00 2007#
El ejemplo muestra el trabajo 1195653600.a que se ejecutar elMircoles 21 de Noviembre a las 15:00.
Eliminar un trabajo programado.
Para eliminar la ejecucin de un trabajo programado utilizamos elcomando at r nombredeltrabajo :
El siguiente ejemplo muestra como eliminar un trabajo:# at -r 1195653600.a
Permitir la ejecucin del comando at
No todos los usuarios del sistema pueden ejecutar el comando at,para autorizar o denegar el uso del comando at hay que editar losficheros /etc/cron.dat.deny o /etc/cron.d/at.allowambos ficheros deroot.
El fichero at.denycontiene los usuarios a los que se deniega el usodel comando at:Contenido del fichero at.deny:
# cat /etc/cron.d/at.denydaemonbinsmtpnuucplistennobodynoaccess
El fichero at.allowcontiene los usuarios que pueden ejecutar elcomando at, en ocasiones el fichero puede no existir por lo que hayque crearlo.
Contenido del fichero at.allow:
60
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
61/193
Comunidad OpenSolaris Hispano
# cat /etc/cron.d/at.allowwebldapdgalan
Logs de at
Toda la actividad realizada con el comando at queda registrada enel log ubicado en /var/cron/log.
Crontab
El comando crontab permite la ejecucin de tareas programadas y
forma repetitiva.A modo de ejemplo prctico permite tareas como:
Programar un backup que se ejecute solamente por la noche losmartes y jueves de cada semana.
Un proceso que se ejecute cada cinco minutos los lunes, mircolesy viernes.
Un parada de un servicio todos los domingos a las 12:00.
Cuando programamos una tarea con el comando crontab estas sealmacenan en /var/spool/cron/crontabs.
El comando crontab almacena la informacin en diferentes lneascon el siguiente formato:
1 2 3 4 5 /usr/local/bin/iniciobackup.sh
Comienza con cinco campos separados por espacios seguido de latarea a ejecutar. Los cinco campos representan:
Campo Descripcin1 El primer campo contiene los minutos.
Valores entre 0 y 59.
2 El segundo campo tiene la hora. Valoresentre 0 y 23.3 Da del mes, valore entre 1 y 31.4 El mes del ao, valores entre 1 y 12.5 Da de la semana, valores entre 0 y 6.
Usando crontab
El comando crontab permite ver, crear, modificar o eliminar untrabajo planificado.
Ver tareas planificadas
61
8/14/2019 Gua del Estudiante CE 1.0a "Comunidad OpenSolaris Hispano"
62/193
Comunidad OpenSolaris Hispano
Para ver las tareas planificadas ejecutamos el comando crontab lobteniendo la lista de tareas programas:
# crontab -l#ident "@(#)root 1.20 01/11/06 SMI"#
# The root crontab should be used to perform accounting data collection.## The rtc command is run to adjust the real time clock if and when# daylight savings time changes.#10 3 * * * /usr/sbin/logadm15 3 * * 0 /usr/lib/fs/nfs/nfsfind1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&130 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___
Cada usuario solo puede ver sus propias planificaciones siendo
una excepcin el usuario root que puede ver la planificacin decualquier usuario del sistema utilizando el comando crontab de lasiguiente forma:
crontab l nombre_de_usuario
Editor o crear entradas en el crontab
En los siguientes ejemplos vamos a mostrar c