Trucos

Lunes, 27 de febrero de 2012

Extraer ficheros de un RPM sin instalarlo

Para extraer los ficheros de un RPM sin instalarlo podemos usar el siguiente comando:

# rpm2cpio file.rpm | cpio -idmv

File Splitter

Comando para separar un fichero en partes a partir de una cadena dentro del fichero:

# awk '/cadena/{n++}{print > f n}' f=partes ficheroatrocear

siendo:

  • cadena: la cadena que se usará para hacer la partición
  • partes: los ficheros en que se dejarán cada una de las partes del fichero original, serán de la forma: partes1, partes2, partes3,…
  • ficheroatrocear: el fichero que queremos partir.

Parece que este comando solo serviría para hacer hasta 10 partes como máximo.

Listado resumen de las conexiones en un Linux

Podemos ejecutar el siguiente comando para obtener un listado resumen de las conexiones que tenemos en un serviodr Linux:

# netstat -an | awk '/^tcp/ {A[$(NF)]++} END {for (I in A)
                     {printf "%5d %s\n", A[I], I}}'

(comando obtenido de: http://www.speedguide.net/articles/linux-tweaking-121)

Hacer “legibles” ficheros XML de una línea:

# tidy -mi -xml fichero.xml

Corte de cadenas en Bash

Una forma sencilla de obtener los n primeros caracteres de una cadena en bash es:

# echo ${cadena:0:n}

En nuestro caso obtendría los n primeros caracteres. Modificando el segundo valor por otro podemos hacer que no se comience con el primer carácter e incluso si ponemos un valor negativo (entre paréntesis) podríamos empezar desde el último al primero.

Con este comando el corte se produce en el carácter exacto, independientemente de si estamos en medio de una palabra o no. Para hacer que las palabras no se corten podemos usar este otro comando:

# echo $cadena | fmt -w 75 | head -1

Este comando tiene la ventaja de que no corta palabras, si la palabra entera no entra en la longitud dada, entonces no la devuelve.

Convertir a mayúsculas una cadena en Bash

Para convertir a mayúsculas una cadena en Bash podemos usar el comando tr

# echo $cadena | tr "[:lower:]" "[:upper:]"

Eliminar acentos de una cadena con Bash

Para eliminar acentos y otros caracteres no ASCII de una cadena en Bash podemos usar el comando tr

# echo $cadena | tr "ÁÉÍÓÚÑáéíóúñºªü" "AEIOUNaeiounoau"

Generar en Linux un fichero de gran tamaño

# dd if=/dev/urandom of=zerofile.tst bs=1k count=1000000

El parámetro of es el nombre del fichero a crear y en count introducimos el nº de bytes del fichero a crear.

En el parámetro if especificamos de donde obtendremos los datos, si usamos /dev/urandom los datos son aleatorios, si usamos /dev/zero obtenemos el caracter nulo.

Convertir el HostId de un servidor a número

Para convertir HostId de un servidor a número podemos usar este comando:

# number=`hostid | sed -e 's:^0[bBxX]::' | tr '[a-f]' '[A-F]'`
# dec=`echo "ibase=16; $number" | bc`

Dado que el hostid es único podemos usar este número como un delay que será distinto en cada uno de los servidores.

  1. Sin comentarios aún.
  1. Sin trackbacks aún.