Antón María Rodríguez Yuste

 
 
 
  • About

    Consultor orientado al sector TELCO (eTOM, SID), dirección de proyectos (scrum) y sistemas (Oracle, Weblogic, Jboss, Solaris, etc.). Un poco de todo, vamos.

  • Varios

Sindicación


Licencia


Validación



Sistemas






Varios

 
Borrar lineas en VI November 10th, 2008

Otro truquito rápido de VI:

Para borrar todas las líneas de un fichero que contienen determinada cadena:

CODE:
  1. :g/pattern/d

Para hacer lo contrario, borrar las que no coinciden:

CODE:
  1. :v/patter/d

Dichoso y maravilloso VI

Fuente: saaridev.blogspot.com

Instalar en SOLARIS October 31st, 2007

No es mío pero está muuy bien. La fuente original: alcancelibre

Introducción

Aquellos que llevamos algún tiempo como administradores de Solaris, sabemos lo particularmente difícil y complejo que es el instalar software a partir de código fuente en Solaris, sobre todo en versiones anteriores a Solaris 10 y OpenSolaris. Sin embargo existe una suite de paquetes que definitivamente vale la pena utilizar y que sin duda será una de las mejores herramientas para los administradores de sistemas que ya usan estos sistemas en sus lugares de trabajo.

La gente de Blastwave.org mantiene una serie de paquetes binarios compilados para Solaris, en arquitecturas Sparc e Intel que sin duda serán de utilidad para sacar mayor provecho a nuestros equipos y servidores, y nos permitirán llegar más temprano a casa después de un pesado día de trabajo. En el presente documento damos las instrucciones necesarias para poder instalar esta poderosa herramienta en nuestros sistemas y bajar software necesario para nuestro ambiente de trabajo.
¿Cómo se instala pkg-get?

Es muy sencillo en realidad. Presentamos un pequeño how-to en español basado en la siguiente liga, en donde está el manual original en inglés:

http://www.blastwave.org/howto.html
Procedimientos.
Verificar que tengamos los parches necesarios.

Solaris 8: Sparc: 110934, X86 (PC): 110935
Solaris 9: Sparc: 113713, X86 (PC): 114568
Solaris 10: No aplica ni en Intel ni en Sparc.

Lo ideal es que tengamos los ultimos parches, o al menos las ultimas versiones de estos parches instaladas en nuestro sistema. Si tienes Solaris 10, puedes ir directamente al paso 2.

Si tienes Solaris 8 o 9, necesitas ver que tengas los parches necesarios instalados. Para ver que tengamos estos parches:

En Solaris 8, ix86: showrev -p | grep 110935
En Solaris 8, Sparc: showrev -p | grep 110934
En Solaris 9, ix86: showrev -p | grep 114568
En Solaris 9, Sparc: showrev -p | grep 113713

Si disponemos de estos parches, podemos continuar con el paso 2. De no ser así, hay que bajar e instalarlos del sitio de SunSolve: http://sunsolve.sun.com

Una vez que bajamos el parche o parches faltantes, queda solamente añadirlos con patchadd.

Del mismo sitio de soporte de sun se puede bajar el cluster de parches necesario, si queremos de una vez parchar todo el sistema y actualizarlo. Las instrucciones para ello se encuentran, una vez mas, en el mismo sitio.
Instalar wget

pkg-get hace uso del programa wget. Para poder usarlo, necesitaremos bajarlo.

NOTA PARA USUARIOS DE SOLARIS 10: En algunos casos nuestro sistema puede ya tener wget. Este se instala en. Para ver si lo tenemos:
# pkginfo | grep wget
system SUNWwgetr GNU wget - utility to retrieve files from the World Wide Web (root)
system SUNWwgetu wget - GNU wget

Si tenemos Solaris 8.0 o 9.0, necesitaremos bajarlo, bien de sunfreeware.com o bien de blastwave. La versión que se va a instalar, será una versión desechable que nos permitirá instalar lo más basico de los paquetes de blastwave.

Disponemos para esto de un wget ya compilado para bajar:

* Sparc: http://www.blastwave.org/wget-sparc.bin
* Ix86: http://www.blastwave.org/wget-i386.bin

Hay que copiarlo en /tmp.

#cp wget-sparc.bin /tmp/wget
#chmod 755 /tmp/wget

Una vez que ya disponemos de un wget en nuestro sistema, hay que verificar que esté en nuestro PATH:

# which wget
no wget in /usr/sbin /usr/bin /opt/csw/sbin

Si no se encuentra, debemos instalar las variables de ambiente. Si wget lo tenemos en /usr/sfw/bin/wget:

# PATH=/usr/sbin:/usr/bin:/usr/sfw/bin
# export PATH

Si wget lo tenemos en /tmp/wget:

# PATH=/usr/sbin:/usr/bin:/tmp
# export PATH

Verificar que wget sea funcional.

Se puede usar el comando which. Si no nos devuelve cualquiera de los siguientes dos resultados, algo está mal con el comando wget...

# which wget
/tmp/wget
# which wget
/usr/sfw/bin/wget

Bajar pkg-get.

Este programa es muy necesario. Hay que bajarlo del siguiente sitio:

http://www.blastwave.org/pkg_get.pkg

El programa es un shell script que funciona en cualquier versión de Solaris y cualquier arquitectura. Se puede bajar con wget, facilmente.

# wget http://www.blastwave.org/pkg_get.pkg
--11:37:07-- http://www.blastwave.org/pkg_get.pkg
=> `pkg_get.pkg'
Connecting to 192.168.0.1:54321... connected.
Proxy request sent, awaiting response... 200 OK< Length: 67,584 [text/plain]
100%[============================================;] 67,584 --.--K/s
11:37:07 (9.65 MB/s) - `pkg_get.pkg' saved [67584/67584]

Instalar pkg-get

Para eso hay que utilizar pkgadd, no olvidar teclear 'y' en todas las preguntas:

# pkgadd -d ./pkg_get.pkg all<
Processing package instance from
pkg_get - CSW version of automated package download tool(all) 3.7.1
You may use and copy this software without charge, as you see fit.
The software is copyright (C) Philip Brown, Nov 2000-2006

Dont forget to update /opt/csw/etc/pkg-get.conf with your nearest archive site.
(or /etc/opt/csw/pkg-get.conf)

Dont stick with the default of ibiblio.org: it's very slow!
The selected base directory must exist before installation
is attempted.

Do you want this directory created now [y,n,?,q] y
Using as the package base directory.
## Processing package information.
## Processing system information.
WARNING: setting mode of to default mode (755)
WARNING: setting mode of to default mode (755)
WARNING: setting mode of to default mode (755)
WARNING: setting mode of to default mode (755)
WARNING: setting mode of to default mode (755
2 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.

This package contains scripts which will be executed with super-user
permission during the process of installing this package.

Do you want to continue with the installation of [y,n,?] y
Installing pkg_get - CSW version of automated package download tool as

## Installing part 1 of 1.
/opt/csw/bin/pkg-get
/opt/csw/etc/pkg-get.conf.csw
/opt/csw/share/man/man1m/pkg-get.1m
/var/pkg-get/admin-fullauto
[ verifying class ]
## Executing postinstall script.
Installing /opt/csw/etc/pkg-get.conf.csw to pkg-get.conf< **** IMPORTANT ****
A default configuration file for pkg-get has been created in
/opt/csw/etc/pkg-get.conf
You should edit it to change the 'site' configuration, to point to
the most appropriate mirror for you, from the list at
http://www.blastwave.org/mirrors

Installation of was successful.

Añadir pkg-get al path

Se añade con los siguientes comandos:

# PATH=$PATH:"/opt/csw/bin"
# export PATH

Si ya tenemos wget y pkg-get en nuestro $PATH, ya estamos listos para empezar a usar esta estupenda utilería:

# which pkg-get
/opt/csw/bin/pkg-get

Instalar wget de Blastwave y eliminar el de /tmp

Ahora estamos listos para instalar wget. Solo hay que teclear:

# pkg-get -i wget

Nuestro sistema podrá entonces bajar wget y estaremos listos para continuar. No olvidar responder con 'y' las preguntas que nos hace el sistema al instalar. El sistema va a resolver las dependencias, bajará los paquetes necesarios, y los instalará, todo esto automáticamente y muy al estilo de yum o apt.

Si tienes wget en /usr/sfw/bin/wget, puedes ir al siguiente paso. Si lo tienes en /tmp/wget, lo que hay que hacer es eliminar el viejo wget y actualizar el $PATH.

# rm /tmp/wget
# PATH=/opt/csw/bin:/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/dt/bin:/usr/ccs/bin
# export PATH

Ahora podemos instalar todo lo que queramos.

Para instalar kde, gnome o mozilla, respectivamente:

# pkg-get -i kde
# pkg-get -i gnome
# pkg-get -i mozilla

Consideraciones prácticas.

Si se desea leer la página del manual se puede teclear lo siguiente:

# man -M /opt/csw/man pkg-get

Ahi se pueden leer las diversas opciones que hay para trabajar con pkg-add.

Entre las más importantes:

pkg-get -a Ver el software disponible en los repositorios
pkg-get -l Ver el software instalado en nuestro equipo
pkg-get -U Actualiza nuestro catálogo de software
pkg-get -u Actualiza los paquetes que tengamos instalados

Por otra parte lo más conveniente es actualizar nuestro PATH, editando para ellos los archivos /etc/default/login y /etc/default/su. Hay que añadir la ruta /opt/csw/bin a las variables PATH y SUPATH, ya que ahí será donde pkg-get instale los binarios de los programas que bajemos. Si utilizamos bash, podemos actualizar .bashrc con el PATH deseado.
Conclusiones.

pkg-get es una poderosa herramienta que sin duda será de gran ayuda para los administradores de sistemas que ya dispongan de servidores o estaciones con Solaris, y requieran de instalar programas fácil y rápidamente.

Poner el teclado en español en Solaris October 31st, 2007

En una consola:

CODE:
  1. eeprom kbd-type=Spanish

Salir y volver a entrar.

La fuente: La zapatilla azul

Reiniciar un servicio en Solaris October 4th, 2007
CODE:
  1. svcadm restart <service>

Comandos útiles Linux / Solaris October 3rd, 2007

Los más necesarios en Solaris:

ps aux -> ps -ef
top -> prstat
tar -zxvf -> gtar -zxvf (lo de la g es una cte...)

y unos cuantos más...

# encontrar todos los archivos en /usr excluyendo algunos
find /usr | egrep -v "/usr/var|/usr/tmp|/usr/local"
# ejecutar comando para todos los ítems de la stdin
xargs -n 1 command
# escribir ítems separados por espacios en blanco en renglones
xargs -n 1 echo|
# extraer líneas con un determinado patrón
grep -e patrón|
# extraer el tercer campo separado por : (archivo passwd, etc.)
cut -d: -f3 -|
# extraer el tercer campo separado por espacios en blanco
awk '{ print $3 }' |
# extaer el tercer campo separado por tabulaciones
awk -F'\t' '{ print $3 }' |
# eliminar retrocesos y convertir tabulaciones en espacios
col -bx |
# transformar las tabulaciones
expand -|
# ordenar y eliminar duplicados
sort -u|
# concatenar líneas en una sola línea
tr '\n' ' '|
# eliminar CR (retornos de carro)
tr '\r' ''|
# convertir mayúsculas en minúsculas
tr 'A-Z' 'a-z'|
# transformar cada línea en un comentario
sed 's/^/# /'|
# eliminar .ext
sed 's/\.ext//g'|
# mostrar la segunda línea
sed -n -e 2p|
# mostrar las primeras 2 líneas
head -n 2 -|
# mostrar las últimas 2 líneas
tail -n 2 -|
# Lanzar un proceso muy lento
nice -19 top
# Lanzar un proceso muy rápido
nice --20 cdrecord -v -eject speed=2 dev=0,0 disk.img

Fuente El rincón de la red

Instalando multitail en solaris August 2nd, 2007
CODE:
  1.  
  2. wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/multitail-5.2.0-sol10-sparc-local.gz
  3. gunzip multitail-5.2.0-sol10-sparc-local.gz
  4. pkgadd -d multitail-5.2.0-sol10-sparc-local
  5. wget ftp://ftp.sunfreeware.com/pub/freeware/sparc/10/ncurses-5.6-sol10-sparc-local.gz
  6. gunzip ncurses-5.6-sol10-sparc-local.gz
  7. pkgadd -d ncurses-5.6-sol10-sparc-local
  8.  

No es el apt-get pero me vale

Ademas, para tener colores, añadir al .bashrc la siguiente linea:

alias multitail='TERM=xterm-color multitail'

Samba sobre solaris August 2nd, 2007

Aquí va:

Samba
We use the samba from sun (SFW) its configuration files are in /etc/sfw

Samba Setup
First we remove the old startup scripts:

# ls -l /etc/rc?.d/???samba
-rwxr--r-- 6 root sys 324 Jan 14 2006 /etc/rc0.d/K03samba
-rwxr--r-- 6 root sys 324 Jan 14 2006 /etc/rc1.d/K03samba
-rwxr--r-- 6 root sys 324 Jan 14 2006 /etc/rc2.d/K03samba
-rwxr--r-- 6 root sys 324 Jan 14 2006 /etc/rc3.d/S90samba
-rwxr--r-- 6 root sys 324 Jan 14 2006 /etc/rcS.d/K03samba
# rm /etc/rc?.d/???samba
# mv /etc/init.d/samba /etc/init.d/nonsmf_samba

Then we need a configuration:

# cd /etc/sfw
# cp swamba.conf-exampel samba.conf

Create a control script /opt/local/lib/svc/method/samba which contains

CODE:
  1.  
  2. #!/sbin/sh
  3. #
  4.  
  5. case "$1" in
  6. start)
  7.         /usr/sfw/sbin/smbd -D
  8.         /usr/sfw/sbin/nmbd -D
  9.         ;;
  10. stop)
  11.         pkill smbd
  12.         pkill nmbd
  13.         ;;
  14. *)
  15.         echo "Usage: $0 { start | stop }"
  16.         exit 1
  17.         ;;
  18. esac
  19. exit 0
  20.  

The manifest in /root/samba/samba.xml should contain

CODE:
  1.  
  2. <?xml version='1.0'?>
  3. <!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
  4. <service_bundle type='manifest' name='WISWsamba:samba'>
  5.   <service name='site/samba' type='service' version='0'>
  6.     <create_default_instance enabled="false"/>
  7.     <single_instance />
  8.     <!--
  9.         First of all, if the config file is not present,
  10.         then we needn't bother with anything else. 
  11.     -->
  12.     <dependency name="config-file" grouping="require_all" restart_on="none" type="path">
  13.       <service_fmri value="file:///etc/sfw/smb.conf"/>
  14.     </dependency>
  15.     <!--
  16.       If there's no network, then there's no point in running
  17.     -->
  18.     <dependency name='loopback' grouping='require_all' restart_on='error' type='service'>
  19.       <service_fmri value='svc:/network/loopback:default'/>
  20.     </dependency>
  21.     <dependency name='physical' grouping='optional_all' restart_on='error' type='service'>
  22.       <service_fmri value='svc:/network/physical:default'/>
  23.     </dependency>
  24.     <!--
  25.       Since Samba may be providing a home directory service,
  26.       it is as well that we ensure that the file-systems are
  27.       all mounted before it is started. This is not essential
  28.       but in general it is a good thing and doesn't really hurt.
  29.     -->
  30.     <dependency name='fs-local' grouping='require_all' restart_on='none' type='service'>
  31.       <service_fmri value='svc:/system/filesystem/local'/>
  32.     </dependency>
  33.  
  34.     <!--
  35.       now we have the start stop and refresh methods
  36.     -->
  37.     <exec_method name='start' type='method' exec='/opt/local/lib/svc/method/samba start' timeout_seconds='60'>
  38.       <method_context />
  39.     </exec_method>
  40.     <exec_method name='stop' type='method' exec='/opt/local/lib/svc/method/samba stop' timeout_seconds='60'>
  41.       <method_context />
  42.     </exec_method>
  43.      
  44.     <property_group name='samba' type='application'>
  45.       <stability value='Evolving'/>
  46.     </property_group>
  47.     <property_group name='startd' type='framework'>
  48.       <propval name='ignore_error' type='astring' value='core,signal'/>
  49.     </property_group>
  50.  
  51.     <stability value='Evolving'/>
  52.     <!--
  53.       A description of the Service
  54.     -->
  55.     <template>
  56.       <common_name>
  57.         <loctext xml:lang='C'>Samba Server</loctext>
  58.       </common_name>
  59.       <documentation>
  60.         <manpage title='samba' section='1M'/>
  61.         <doc_link name='samba.org' uri='http://httpd.samba.org'/>
  62.       </documentation>
  63.     </template>
  64.   </service>
  65. </service_bundle>
  66.  

Import the manifes

# svccfg import /root/samba/samba.xml

Start Samba

# svcadm enable samba

La fuente: sun