11 junio 2010

Cómo determinar la versión de Linux que tenemos

Una manera genérica de ver qué versión de Linux tenemos es mirar el contenido de /etc/issue. Tan fácil como ejecutar:

# cat /etc/issue


Otra manera puede ser en función del sistema operativo que tengamos.

Si el sistema es RedHat:

# cat /etc/redhat-release


Si el sistema es Debian:

# cat /etc/debian-version


Si el sistema es Fedora:

# cat /etc/fedora-release

Si el sistema es Ubuntu:


# lsb_release -a

Monitorizar la actividad de un usuario en un directorio con lsof

# lsof -u root -a +D /etc


Vía commandlinefu

09 junio 2010

Funciones lambda en pyton

Son funciones de una línea que se pueden utilizar en cualquier lugar donde se necesite una función.

Desaparece la palabra reservada "return" y los paréntesis con los parámetros. Se pueden asignar a una variable o ejecutar directamente:

ejemplos:

>>> l = lambda x: x*3
>>> l(4)
12
>>> (lambda x: x*3) (4)
12

Google Maps Navigation ya funciona en España

A partir de la versión 2.1 de OS.


Fuente

Cómo analizar la velocidad de red sin ocupar espacio en el disco

Simplemente ejecutando:

# dd if=/dev/zero bs=4096 count=1048576 | ssh user@host 'cat > /dev/null'

Con esto transmitiremos 4 GB que no ocuparán espacio.

Si antes del comando ejecutamos el comando "time" también tendremos el tiempo que tardamos en transmitir los datos.

Cómo configurar múltiples smart relay host en sendmail

Es una tarea muy fácil. Directamente en el fichero sendmail.cf vamos a la línea de los smart relay host y ahí incluímos los que queramos separados por dos puntos.

Más gráfico con un ejemplo:
# "Smart" relay host (may be null)
DSservidor1:servidor2

Configurando los smart relay host de esta manera lo que hace sendmail es intentar enviar por el primero, si no consigue enviar, postpone el mensaje, y el siguiente reenvío lo hace a través del otro host que tenemos configurado.

Google lanza Caffeine, el nuevo índice de búsqueda

Google ha anunciado en su blog el lanzamiento de su nuevo sistema de indexación web, llamado Caffeine. Aseguran que con este nuevo sistema de indexación, las búsquedas tendrán un 50% más de resultados más nuevos que con el antiguo sistema.

Con el antiguo sistema de Google, las búsquedas se estaban realizando en información que se había indexado y tratado previamente. Este sistema constaba de una serie de capas y no todas las capas tenían la misma velocidad de actualización, tardando algunas varias semanas en ponerse al día.


Con el nuevo sistema las actualizaciones son mucho más dinámicas. La web se analiza en pequeñas porciones y los índices de búsqueda se están actualizando contínuamente. Cuando se encuentra nueva información o nuevas webs, se pueden incluir directamente al índice. Todo esto significa que se puede encontrar información más reciente que nunca.

Según Google, Caffeine procesa cada segundo cientos de miles de páginas en paralelo, lo cual ocupa casi 100 millones de Gigabytes.

Noticia original (en inglés)

08 junio 2010

Linux continúa dominando la Supercomputación

El dominio de Linux entre los superordenadores está claro. Del top 500 de los ordenadores más potentes del mundo, Linux posee 470 puestos, Unix 25 y Windows 5.

Noticia original
(en inglés)

ZFS en el kernel de Linux

Desarrolladores del Lawrence Livermore National Laboratory han colaborado con Oracle para portar portar grandes partes del sistema de ficheros ZFS al kernel de Linux.

Su objetivo es conseguir tener disponible el sistema de ficheros distribuidos Lustre en Linux con ZFS.

Colaborando en este desarrollo, supongo que es posible que se acelere la integración total de ZFS en el kernel, ya que hasta ahora se integra con FUSE.

Es interesante que Oracle esté apoyando estas iniciativas, aunque todavía queda la duda de cómo será su evolución futura con respecto a Linux.

La noticia orignal (en inglés)

Google Maps Navigation será presentado mañana en España

Mañana día 9 será presentado en Madrid Google Maps Navigation, el sistema GPS de Google.

Por fin los usuarios españoles podremos disfrutar de esta aplicación en nuestros dispositivos con Android :-)

Fuente

Webminar gratis: Conociendo VIM

Este Webminar está ofrecido por la Linux Foundation, es en inglés y cubre tres puntos importantes sobre Vim:

  1. La comprensión de la naturaleza de Vim como editor "modal" y por qué Vim es importante.
  2. Edición básica, como buscar y reemplazar, movimiento, etc.
  3. Añade recursos adicionales para que el asistente investigue más.
Este es el enlace a la página de inscripción

Arrays en bash

En The Geek Stuff hemos encontrado un pequeño tutorial (en inglés) de utilización de arrays en bash.

Muchas veces nos podemos encontrar en la situación de necesitar los arrays en bash y hacer alguna pequeña chapuza para evitarlos o cambiar a otro lenguaje de scripting. Con estos truquillos ya no hay excusa :-)

Aquí está el enlace

07 junio 2010

Inminente Android 2.1 para Hero

Por fin HTC ha liberado una versión 2.1 de Android para Hero. Concretamente lo han hecho para Taiwán, pero esto hace que las versiones para el resto del mundo se acerquen a nosotros :-)



Referencias:

http://www.eurodroid.com/2010/06/report-htc-hero-android-2-1-update-hitting-europe-on-june-18/
http://smarthouse.com.au/Phones/Industry/B4J9B9V7
http://www.dialtosave.co.uk/blog/2010/06/05/htc-hero-owners-may-receive-android-2-1-update-soon/

Cómo quitar el resaltado en las búsquedas de vim

Cuando trabajamos con vim y realizamos búsquedas, podemos encontrarnos con que además del primer resultado, el programa resalta todas las entradas coincidentes con nuestra búsqueda.

Generalmente es una opción útil, pero a veces consigue que el texto sea difícil de leer y la mejor opción es desactivarlo. Nada más fácil, simplemente tecleamos :nohl.

Si queremos volver a activarlo tecleamos :set hlsearch

05 junio 2010

El comando cat

Pocas veces un comando parece que no hace demasiadas cosas, pero "en la sombra", tiene grandes usos. Este es el caso del comando "cat".

Su definición formal dice que "concatena ficheros e imprime por la salida estándar". Por supuesto esto es cierto, pero podemos hacer más cosas gracias a la potencia de cat y al shell.

En primer lugar es posible que veamos los caracteres no imprimibles; vale..., esto se puede hacer con otros programas como por ejemplo "vi", pero gracias a esta funcionalidad y a la redirección de linux podemos hacer cosas como por ejemplo filtrar la salida de un "ls" para comprobar si hay caracteres no imprimibles en el nombre de un fichero.

# ls -l |cat -vet
total 124$
drwxr-xr-x 2 root root 4096 2010-05-23 08:46 bin$
drwxr-xr-x 4 root root 4096 2010-02-02 05:31 boot$
lrwxrwxrwx 1 root root 11 2009-09-27 22:52 cdrom -> media/cdrom$
drwxr-xr-x 18 root root 4280 2010-06-07 06:04 dev$
drwxr-xr-x 151 root root 12288 2010-06-07 06:05 etc$
drwxr-xr-x 6 root root 4096 2010-06-04 23:48 home$
lrwxrwxrwx 1 root root 33 2009-09-27 23:06 initrd.img -> boot/initrd.img-2.6.28-11-generic$
drwxr-xr-x 16 root root 12288 2010-06-04 16:39 lib$
drwxr-xr-x 7 root root 12288 2010-06-04 16:39 lib32$
lrwxrwxrwx 1 root root 4 2009-09-27 22:52 lib64 -> /lib$
drwx------ 2 root root 16384 2009-09-27 22:52 lost+found$
drwxr-xr-x 3 root root 4096 2010-06-07 06:04 media$
drwxr-xr-x 2 root root 4096 2009-04-13 11:33 mnt$
drwxr-xr-x 7 root root 4096 2010-01-20 05:58 opt$
dr-xr-xr-x 169 root root 0 2010-06-07 08:03 proc$
drwx------ 18 root root 4096 2010-06-04 23:48 root$
drwxr-xr-x 2 root root 12288 2010-06-04 16:39 sbin$
drwxr-xr-x 2 root root 4096 2009-03-06 18:16 selinux$
drwxr-xr-x 2 root root 4096 2009-04-20 15:59 srv$
drwxr-xr-x 12 root root 0 2010-06-07 08:03 sys$
drwxrwxrwt 14 root root 12288 2010-06-07 06:33 tmp$
drwxr-xr-x 13 root root 4096 2009-11-26 08:39 usr$

En este caso no tenemos nombres con caracteres no imprimibles ni tabuladores en el listado, pero sí podemos ver los saltos de línea.

Por supuesto podemos mostrar la salida de cat con número de línea, por si tenemos la necesidad de saber exactamente en qué línea estamos viendo algo:


# ls -l |cat -n
1 total 124
2 drwxr-xr-x 2 root root 4096 2010-05-23 08:46 bin
3 drwxr-xr-x 4 root root 4096 2010-02-02 05:31 boot
4 lrwxrwxrwx 1 root root 11 2009-09-27 22:52 cdrom -> media/cdrom
5 drwxr-xr-x 18 root root 4280 2010-06-07 06:04 dev
6 drwxr-xr-x 151 root root 12288 2010-06-07 06:05 etc
7 drwxr-xr-x 6 root root 4096 2010-06-04 23:48 home
8 lrwxrwxrwx 1 root root 33 2009-09-27 23:06 initrd.img -> boot/initrd.img-2.6.28-11-generic
9 drwxr-xr-x 16 root root 12288 2010-06-04 16:39 lib
10 drwxr-xr-x 7 root root 12288 2010-06-04 16:39 lib32
11 lrwxrwxrwx 1 root root 4 2009-09-27 22:52 lib64 -> /lib
12 drwx------ 2 root root 16384 2009-09-27 22:52 lost+found
13 drwxr-xr-x 3 root root 4096 2010-06-07 06:04 media
14 drwxr-xr-x 2 root root 4096 2009-04-13 11:33 mnt
15 drwxr-xr-x 7 root root 4096 2010-01-20 05:58 opt
16 dr-xr-xr-x 169 root root 0 2010-06-07 08:03 proc
17 drwx------ 18 root root 4096 2010-06-04 23:48 root
18 drwxr-xr-x 2 root root 12288 2010-06-04 16:39 sbin
19 drwxr-xr-x 2 root root 4096 2009-03-06 18:16 selinux
20 drwxr-xr-x 2 root root 4096 2009-04-20 15:59 srv
21 drwxr-xr-x 12 root root 0 2010-06-07 08:03 sys
22 drwxrwxrwt 14 root root 12288 2010-06-07 06:33 tmp
23 drwxr-xr-x 13 root root 4096 2009-11-26 08:39 usr
24 drwxr-xr-x 15 root root 4096 2010-04-24 22:07 var
25 lrwxrwxrwx 1 root root 30 2009-09-27 23:06 vmlinuz -> boot/vmlinuz-2.6.28-11-generic


También lo podemos utilizar como editor rápido. Esto es llamado en bash "here document"


# cat > documento_nuevo << EOF
primera
segunda
tercera
EOF

Con la sentencias anteriores tendremos un fichero llamado documento_nuevo y el contenido será "primera, sgunda, tercera", tal cual lo hemos escrito en el documento

04 junio 2010

Exploración de directorios en vim

Esta es una opción que podemos no utilizar habitualmente, pero que puede resultarnos muy útil.
En vim hay varias maneras de explorar el directorio.

Podemos abrir una ventana de vim sin ficheros mostrarlo.

  • Ejecutamos :e .

  • Podemos ejecutar :Exp que produce exactame nte el mismo resultado que hemos visto.

  • Podemos ejecutar :Sex que divide la pantalla en dos.

¿Cómo pasar variables en un script de bash a sed?

Es posible que en nuestro trabajo habitual de administración de sistemas estemos realizando un script y nos encontremos con la necesidad de pasar una variable que obtenemos de un bucle, por ejemplo, como uno de los argumentos que necesita el comando sed.

Simplemente hay incluír la variable entre comillas dobles y a su vez entre comillas simples. Lo he probado en bash y en ksh y funciona correctamente en ambos.

Con un ejemplo, aunque sea un poco absurdo es más fácil de ver:

# a="palabra"
# sed -e 's/otrapalabra/'"$a"'/g' fichero