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

 
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

Index en Oracle October 31st, 2007

Dos apuntes rápidos.

Crear un índice en un campo de una tabla por el cual se referencia (tunning mega-básico):

CODE:
  1. CREATE INDEX nombre_del_index ON nombre_de_la_tabla (nombre_del_campo);

Situación hipotética en la que tienes una tabla con un campo ID que no es único y un campo STATE que tiene dos valores: 'pending' y 'running'. Podemos permitir cualquier combinación salvo la posibilidad de que dos registros con el mismo ID tengan el campo STATE a 'running'. Solución:

CODE:
  1. CREATE UNIQUE INDEX nombre_de_la_constraint ON nombre_de_la_tabla  (DECODE(state, 'running', id, NULL));

Sé que son apuntes básicos pero nunca vienen de más....

Gracias a Richi.

Crear una palabra de 2000 carácteres o ejecutar un código cada 5 segundos October 23rd, 2007

Un simple código bash (se puede poner directamente en la shell) que genera una palabra de un determinado número de carácteres (ideal para probar parámetros de entrada):

CODE:
  1. echo "";((a=0)); while ((a <3000)) ; do echo -n "a"; ((a+=1)); done;echo""

Otra cosa útil es ejecutar un comando cada cinco segundos:

CODE:
  1. while true; do grep "cadena buscada" comunitel.log | wc -l; sleep 5; done;
Varias pruebas October 19th, 2007

Un simple código Java que me permite lanzar varias pruebas sin necesidad de compilar. Muy útil cuando el hecho de complicar implica perder 20 min. de tu vida.

CODE:
  1.  
  2.             if(this.pruebas == null) {
  3.                 this.pruebas = new Integer(0);
  4.                 }
  5.            
  6.         switch(pruebas.intValue() % 4) {
  7.               case 2:
  8.                 logger.debug("Caso 2");
  9.                 this.pruebas = new Integer(this.pruebas.intValue() + 1);
  10.                 throw new Exception("aaa Invalid License bbbb");
  11.               case 3:
  12.                 logger.debug("Caso 3");
  13.                 this.pruebas = new Integer(this.pruebas.intValue() + 1);
  14.                 Thread.sleep(600000);
  15.                
  16.              } 
  17.  
Esperar un cambio en Bash October 18th, 2007

Algunas cosillas de Bash.

1) Esperar a que aparezca determinada cadena en un archivo

CODE:
  1.  
  2.         while !(grep RUNNING  fichero.log> /dev/null)
  3.         do
  4.            sleep 2
  5.         done
  6.  

2) Estructura básica funciones + case:

CODE:
  1.  
  2. #/bin/sh
  3. #
  4. # Script para arrancar, parar y reiniciar el cluster (nodos y administrador) de forma desatendida.
  5. #
  6. # 18/10/2007 OptareSolutions
  7. # Anton Maria Rodriguez Yuste
  8. function inicio {
  9.         echo "Iniciando.."
  10. }
  11.  
  12. function apagado {
  13.         echo "Apagando.."
  14. }
  15.  
  16. case "$1" in
  17.      'start')
  18.         inicio
  19.          ;;
  20.      'stop')
  21.         apagado
  22.          ;;
  23.      'restart')
  24.          apagado
  25.          inicio
  26.          ;;
  27.       * )
  28.         echo "Usage: ./cluster.sh start | stop | restart "
  29. esac
  30.  
Borrar todas las carpetas de nombre BORRAME de un tag de CVS October 11th, 2007

Ejecutar en una shell dentro de la carpeta:

CODE:
  1. for dire in `find ./ -name BORRAME -type d`; do cvs -d:pserver:usuario@host.destino.com:/repositorio/cvsroot rtag -d NOMBRE_DEL_TAG $dire; done

No es mío (como las últimas entradas que merecen la pena), es de Richi (craaack!).

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