Archivo

Archivo para Octubre, 2009

Estado del Hyper-Threading en Linux

Miércoles, 28 de Octubre de 2009

Para saber si  un servidor con Linux tiene habilitado el Hyper-Threading sin necesidad de rebotar el servidor, podemos proceder de la siguiente maneara:

Revisamos el contenido de /proc/cpuinfo y nos fijanos en el valor de los campos siblings y cpu cores.

Si el valor de siblings es igual al de cpu cores entonces no tenemos Hyper-Threading habilitado. Si por el contrario, el valor de siblings es el doble que el de cpu cores entonces el Hyper-Threading está habilitado.

Ejemplos:
Hyper-Threading habilitado:

physical id     : 1
siblings        : 4
core id         : 1
cpu cores       : 2

Hyper-Threading NO habilitado:

physical id     : 0
siblings        : 4
core id         : 3
cpu cores       : 4

Linux , ,

Script para borrado de un bloque de un fichero

Jueves, 22 de Octubre de 2009

El siguiente script permite borrar unas líneas de un fichero a partir de un patrón dado y borrando líneas adicionales antes y después del patrón buscado.

#!/bin/bash

# Script para borrar lineas de un fichero, a partir de un patron dado
# y borrando n lineas anteriores y posteriores a la buscada.

# Se pasan los siguientes parametros:
#       1 --> Fichero donde borrar las lineas
#       2 --> Patron que cumplira la linea central a borrar
#       3 --> Num lineas antes a borrar
#       4 --> Num lineas despues a borrar

# 1. Comprobación del numero de argumentos en la entrada
EXPECTED_ARGS=4
if [ $# -ne $EXPECTED_ARGS ]
then
 echo "Usage: `basename $0` fichero patron numantes numdespues" > /dev/stderr
 exit 1
fi

file=$1
patron=$2
antes=$3
despues=$4

# Buscamos la linea que contiene el patron a borrar
i=`grep -n "$patron" $file | cut -d":" -f 1`

if [[ -z $i ]]
then
 echo "Patron $patron no encontrado en $file. No se borra nada"
 exit 1
fi

# Seleccionamos las lineas anteriores y posteriores que deseemos borrar
inicio=`expr $i - $antes`
fin=`expr $i + $despues`

# Ahora borramos las lineas en cuestion
sed -i "$inicio,${fin}d" $file

Linux