# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Gestión de RAID Array en servidores HP desde Linux

HP, a través de su Proliant Support Pack ofrece una serie de utilidades que permiten gestionar y monitorizar la mayoría del Hardware del equipo en servidores Proliant. En este caso vamos a instalar “HP Array Configuration Utility CLI for Linux“, hpacucli, con la cual podremos monitorizar el estado de los discos duros, el RAID y la controladora.

Descarga de HP Proliant Support Pack
Descarga de HP Array Configuration Utility CLI for Linux

La instalación de hpacucli en equipos RHEL, CentOS, Fedora se realiza directamente con el rpm que nos proporcionan en el Support Pack o en la descarga individual:

# rpm -i hpacucli-8.40-4.0.noarch.rpm 

Una vez instalado, podemos utilizar la aplicación a través del comando hpacucli. Si lo ejecutáis sin ningún parámetro entraréis en una consola sobre la cual comenzar a trabajar, el comando help mostrará todas las opciones:

# hpacucli
HP Array Configuration Utility CLI 8.40-4.0
Detecting Controllers...Done.
Type "help" for a list of supported commands.
Type "exit" to close the console.

=> help

CLI Syntax
   A typical ACU CLI command line consists of three parts: a target device,
   a command, and a parameter with values if necessary. Using angle brackets to
   denote a required variable and plain brackets to denote an optional
   variable, the structure of a typical ACU CLI command line is as follows:

        [parameter=value]

    is of format:
      [controller all|slot=#|wwn=#|chassisname="AAA"|
                  serialnumber=#|chassisserialnumber=#|ctrlpath=#:# ]
      [array all|]
      [physicaldrive all|allunassigned|[#:]#:#|[#:]#:#-[#:]#:#]
      [logicaldrive all|#]
      [licensekey all|]
      Note 1: The #:#:# syntax is only needed for systems that
              specify port:box:bay. Other physical drive targeting
              schemes are box:bay and port:id.
      Note 2: The chassisserialnumber is known in ACU as the
              RAID Array Serial Number. The chassisname is known
              in ACU as the RAID Array ID.
      Note 3: ctrlpath=#:# maps to "smart enclosure hooked up to
              host bus adapter slot:host bus adapter port"

   Example targets:
      controller slot=5
      controller chassisname="Lab C"
      controller serialnumber=P21DA2322S
      controller chassisserialnumber=9J3CJN71XDCH
      controller wwn=500308B300701011
      controller slot=7 array A
      controller slot=5 logicaldrive 5
      controller slot=5 physicaldrive 1:5
      controller slot=5 physicaldrive 1E:2:3
      controller slot=5 licensekey XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

For detailed command information type any of the following:
   help add
   help create
   help delete
   help diag
   help modify
   help remove
   help shorthand
   help show
   help target
   help rescan

Help also accepts commonly used CLI parameters and ACU keywords. Adding
additional keywords will further filter the help output. Examples:
   help ssp        (shows all ssp help including show and modify commands)
   help ssp modify (restricts ssp help to only modify commands)
   help migrate
   help expand
   help extend
   help   ... 

=>

En el siguiente ejemplo vemos el estado de dos discos que forman un RAID 1 en la controladora:

# hpacucli controller slot=0 physicaldrive all show status

   physicaldrive 1I:1:1 (port 1I:box 1:bay 1, 72 GB): OK
   physicaldrive 1I:1:2 (port 1I:box 1:bay 2, 72 GB): OK

Para ver el estado de la controladora y su caché:

# hpacucli ctrl all show status

Smart Array E200i in Slot 0 (Embedded)
   Controller Status: OK
   Cache Status: OK

También podréis modificar el RAID, volúmenes lógicos y demás, es cuestión de revisar todas las opciones que incorpora.

Comprobar resolución inversa desde línea de comandos (Linux y Windows)

Comprobar la resolución de DNS inversa significa verificar el hostname al que resuelve una IP determinada (como sabréis normalmente se busca lo contrario).

Resolución inversa (reverse DNS) en Unix/Linux

Para verificar la resolución inversa en Linux utilizaremos el comando “host”:

# host ip

Ejemplos:

Google:

# host 66.102.9.105
105.9.102.66.in-addr.arpa domain name pointer lm-in-f105.1e100.net.

Telefónica:

# host 80.58.0.33
33.0.58.80.in-addr.arpa domain name pointer 33.Red-80-58-0.staticIP.rima-tde.net.

Resolución inversa (reverse DNS) en Windows

Para windows utilizaremos el comando nslookup, que realmente también podríamos utilizar en Unix. El proceso es el siguiente:

Google:

# nslookup 66.102.9.105
Server:         208.67.222.222
Address:        208.67.222.222#53

Non-authoritative answer:
105.9.102.66.in-addr.arpa       name = lm-in-f105.1e100.net.

Telefónica:

 nslookup 80.58.0.33
Server:         208.67.222.222
Address:        208.67.222.222#53

Non-authoritative answer:
33.0.58.80.in-addr.arpa name = 33.Red-80-58-0.staticIP.rima-tde.net.

En NixCraft encontraréis unas cuantas formas más de hacerlo.

Cómo vaciar ficheros en Linux

Existen varias formas de vaciar el contenido de ficheros en sistemas Unix desde la línea de comandos, algunas de ellas son las siguientes:

# echo "" > fichero
# > fichero
# :> fichero
# cat /dev/null > fichero
# true > fichero

Restaurar clave de root en Debian

Si has perdido u olvidado la clave de root en un sistema Debian sigue estos pasos para regenerarla. Funcionará para aquellos con GRUB instalado:

  1. En el momento que aparezca el GRUB con la selección kernels y sistemas para arrancar la máquina, presionamos la tecla “e” para acceder al modo de edición.

    Grub Debian

  2. Una vez en este modo, buscamos la línea que comience por “kernel …”,nos colocamos sobre ella y la editamos pulsando de nuevo la tecla “e”.

    Grub Debian editando arranque

  3. Ahora estamos en el modo edición, añadimos al final de la línea “init=/bin/sh“, sin las comillas.
  4. Guardamos la línea pulsando ENTER y arrancamos con ella pulsando sobre ella la tecla “b”.
  5. Ahora ya deberías estar en la shell con la posibilidad de escribir comandos.
  6. Montamos la partición / con lectura y escritura:
    # mount -o remount rw /
  7. Ahora ya podemos asignar la clave que queramos al usuario root:
    # passwd root
  8. Reiniciamos la máquina:
    # reboot

Cómo buscar y reemplazar en vi ó vim

Sé de alguien que siempre olvida como buscar y reemplazar una cadena de texto en todo un fichero con vi o vim ;) así que lo mejor será dejar este truco plasmado en una entrada.

Si queremos reemplazar una cadena de texto o palabra en todo un fichero de texto, lo abrimos con vim:

$ vim fichero

Una vez dentro, presionamos ESC para entrar en modo de ejecución de comandos, la sintaxis para reemplazar una cadena de texto en todo el fichero sería:

:g/texto_a_sustituir/s//texto_nuevo/g

Y presionamos ENTER, automáticamente todo lo que sea “texto_a_sustituir” será modificado por “texto_nuevo“.

Todo el mundo me dice que esta es una forma complicada de hacerlo, yo es la que aprendí en su día y siempre me acuerdo de ella, otra forma más sencilla es:

:%s/texto_a_sustituir/texto_nuevo/g

Me consta que hay muchas más formas de hacerlo, cada cual que encuentre la que más cómoda le parezca.

Ah, para buscar simplemente en vim, tenéis que presionar ESC para acceder a modo comando, posteriormente “/” (shift +7), escribir la cadena a buscar y presionar ENTER. Para moveros a lo largo del fichero por los resultados, presionad la tecla “n”.

Dedicado al SysAdmin de Tu Receta ;)

eBook gratuito: The Linux Command Line

The Linux Command LineThe Linux® Command Line es un libro publicado bajo licencia Creative Commons creado por William E. Shotts, Jr especialmente para aquellos que se están iniciando en el mundo de la línea de comandos Linux.

En sus 522 páginas se cubre el mismo material disponible en LinuxCommand.org pero con mucho más detalle. Además de lo básico de la línea de comandos se enseña el shell scripting y el uso de los programas más comunes de la línea de comandos Linux.

Podéis descargar el libro a través de este enlace.

Crea imagenes de arranque Windows o Linux en tu USB

UNetbootin

UNetbootin es un software gratuito que permite crear discos de arranque de una gran variedad de distribuciones Linux y Windows sin la necesidad de quemar la imagen en un CD, se pueden crear directamente en nuestro USB con un simple click.

El programa te ofrece un listado de distribuciones, eliges la que quieres y se encarga de descargarla y grabarla en el USB para que directamente puedas arrancar el sistema con él. También puedes bajar tu mismo la distribución que quieras y decir al programa que la utilice, personalizar parámetros del kernel, initrd, etc.

Podéis ver todas sus funcionalidades y descargarlo en el sitio web oficial: unetbootin.sourceforge.net

Gracias Vaxter

AWK: imprimir a partir de una expresión regular hasta el final del fichero

En el caso de necesitar recoger de un fichero a partir de una determinada cadena de texto hasta el final del mismo, podemos utilizar AWK del siguiente modo:

awk '/regex/,0'

ó

 awk '/regex/,EOF'

Voy a mostrar un ejemplo, tenemos un fichero de texto que contiene lo siguiente:

vim test
esto es
una prueba
test
probando

Pongamos el caso de que necesitamos sacar el contenido del fichero “test” a partir de la línea que tenga el texto prueba:

#] awk '/prueba/,0' test
una prueba
test
probando

En este caso es un ejemplo muy sencillo, para ficheros de log o similares podéis hacer uso de la potencia de las expresiones regulares para sacar la cadena de texto a partir de la cual imprimir el contenido del fichero.

Os recomiendo también leer este otro artículo de iniciación a AWK.