viernes, 27 de enero de 2012

Crear un fichero con un tamaño determinado

Para crear un fichero de 10MB:
    dd if=/dev/zero of=fichero count=1 bs=10M

Convertir formatos de imágenes desde consola

Para convertir una imagen de un formato a otro:

    convert imagen.jpg imagen.png

Redireccionar salidas en bash

Para redireccionar la salida de un programa y la salida de error en bash usaremos:
    programa > fichero.out 2> fichero.err

Si queremos las dos salidas en un mismo fichero:
    programa > fichero 2>&1

lunes, 16 de enero de 2012

Cómo añadir IPs secundarias rápidamente

Para añadir una IP en una interfaz podemos crear un alias rápidamente con el comando:

ifconfig eth0 add 192.168.191.129

Y para borrar un alias

ifconfig eth0:0 del

Para guardar los cambios tendremos que editar el fichero:

Debian-like
/etc/network/interfaces

Y en RH-like tendremos que crear un nuevo fichero dentro de la carpeta
/etc/sysconfig/network-scripts/


Cómo borrar una clave SSH del know_hosts

Muchas veces cuando trabajamos con máquinas virtuales o IPs dinámicas nos aparece el siguiente error al intentar acceder a una de ellas por SSH:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
db:eb:ea:b9:97:4b:7f:6a:f3:a9:f3:af:1b:04:7f:45.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/user/.ssh/known_hosts:26
RSA host key for 192.168.191.128 has changed and you have requested strict checking.
Host key verification failed.


Si estamos seguros que es el cambio en la clave SSH del servidor al que intentamos acceder se debe a causas "normales" podemos eliminar la entrada que nos estorba con el siguiente comando:

ssh-keygen -R 192.168.191.128

A continuación intentaremos acceder de nuevo y aceptaremos la nueva clave del servidor.

viernes, 13 de enero de 2012

Cómo monitorizar el throughput de una interfaz de red

Para monitorizar el throughtput de una interfaz de red además de todas las herramientas que ofrece Linux (tanto gráficas como texto) puede resultar útil saber utilizar la herramienta ifconfig.
Nos salvará más de una vez cuando no podamos (o no queramos) instalar paquetes extra en un servidor.

Al ejecutar ifconfig nombre_interfaz obtendremos la información de esa interfaz y entre toda esa información tenemos la cantidad de bytes enviados y recibidos hasta el momento.

Crear un script que obtenga los kilobytes y kilobits de salida y entrada por segundo es tan sencillo como tomar dos medidas con un segundo de diferencia y hacer un pequeño cálculo.


#!/bin/bash
if [ $# -ne 2 ]
then
        echo "USO: $0 nombre_interfaz num_ejecuciones"
        echo "   <num_ejecuciones> 0 para ejecutarse de forma continua"
        echo "   Ejemplo: $0 p32p1 2"
        exit 1
fi

for (( i = 0; $2 == 0 || i < $2; i++ ))
do
        SPIN0=`ifconfig $1 | grep bytes | cut -d ':' -f 2 | cut -d ' ' -f 1`
        SPOUT0=`ifconfig $1 | grep bytes | cut -d ':' -f 3 | cut -d ' ' -f 1`
        sleep 1s
        SPIN1=`ifconfig $1 | grep bytes | cut -d ':' -f 2 | cut -d ' ' -f 1`
        SPOUT1=`ifconfig $1 | grep bytes | cut -d ':' -f 3 | cut -d ' ' -f 1`

        DSPIN=$(($SPIN1 - $SPIN0))
        DSPOUT=$(($SPOUT1 - $SPOUT0))

        DSPINKBIT=$(($DSPIN * 8 / 1000))
        DSPOUTKBIT=$(($DSPOUT * 8 / 1000))

        DSPINKB=$(($DSPIN / 1024))
        DSPOUTKB=$(($DSPOUT / 1024))

        echo "($1) IN: $DSPINKB KB/s - $DSPINKBIT kb/s OUT: $DSPOUTKB KB/s - $DSPOUTKBIT kb/s"
done


El script anterior nos da 2 medidas para la velocidad de entrada y salida. Kilobytes (en múltiplos de 8 y entre 1024) y kilobits (como les gusta calcularlos en redes; en bit y entre 1000).
De esa forma si nuestra conexión son 15 Mb se quedan en 1.78 MB reales:

15000000 / 8 / 1024 = 1831 KB / 1024 = 1.78 MB

Cómo aplicar un fondo a grub2 para Fedora 16

Fedora 16 viene con grub2 como gestor de arranque. Debido a las diferencias entre grub y grub2 el artwork team no ha tenido tiempo de embellecer la pantalla inicial del grub que nos permite seleccionar el kernel o el sistema operativo con el que arrancar.

Vamos a ver como añadirle una imagen de fondo para que quede más acorde a lo que Fedora nos tiene acostumbrados.

Editamos el fichero /etc/default/grub y añadimos las siguientes líneas:


GRUB_GFXMODE=1280x960x16
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_BACKGROUND=/boot/verne.tga

Prestaremos atención a que no tengamos ninguna de esas líneas ya incluida en el fichero.

GRUB_GFXMODE establece el modo gráfico con la resolución indicada. Elegiremos una acorde a nuestra gráfica y monitor.

GRUB_BACKGROUND establece la imagen que utilizará como fondo del grub. Los posibles formatos de las imágenes son PNG, JPG y TGA. Si tenemos una partición individual para /boot tendremos la precaución de copiar en esa ruta la imagen que queramos. En caso contrario podremos indicar cualquier otra ruta (por ejemplo: /usr/share/backgrounds/verne/default/wide/verne.png)

Tras guardar los cambios ejecutaremos como root:


#grub2-mkfont --output=/boot/grub2/unicode.pf2 /usr/share/fonts/dejavu/DejaVuSansMono.ttf

#grub2-mkconfig -o /boot/grub2/grub.cfg

Y reiniciaremos para ver que tal nos ha quedado. Por comodidad siempre que sea posible es mejor hacer todos estos cambios en una máquina virtual para evitarnos reiniciar varias veces nuestra máquina.

Podemos encontrar más trucos en la página: http://ask.fedoraproject.org