Mostrando entradas con la etiqueta sysadmin. Mostrar todas las entradas
Mostrando entradas con la etiqueta sysadmin. Mostrar todas las entradas

martes, 31 de enero de 2012

Pesadillas...



Si alguna vez habéis trabajado con Unix/Linux/MacOSX y después con Microsoft Windows, os habreis dado cuenta de que el S.O de Redmond es una pesadilla. Pesadilla para sysadmin, pero sobre todo para developers.Un par de ejemplos ayudarán a ilustrar la afirmación.

El pasado fin de semana "compramos" un libro en formato Adobe Digital Editions, por supuesto con su flamante DRM. El caso que sólo puedes imprimir 20 páginas. ¿Sólo 20? Si señoras y señores, sólo 20, así que si necesitas imprimir 300, como es el caso(el libro tiene 1091 páginas) pues te compras la versión "física" y te buscas la vida. Pero, si el libro es mio?. Lo sé, pero el DRM también lo sabe...Buscando información sobre cómo eliminar la restricción encontré este post "Desproteger documentos de Adobe Digital Editions con Calibre" de Álvaro Matiz , que con un par de scripts escritos en Python soluciona la papeleta al 100%. ¿Python en Windows? Sí, en Windows. Echo de menos ejecutar una aplicación .py con un simple ./ , pero con el maligno es imposible. A descargar Python 2.7 para Windows. Como aquí no tenemos apt ni yum ni zipper pues tocar navegar y buscar. Instalo Python, ejecuto el script y "fail", dependencia de la librería pycrypto, otra vez la misma historia: busca, instala, prueba...Después de 30 minutos terminé la operación con éxito. Una operación en GNU/Linux podría llevarme a lo sumo 5 minutos....Por cierto, si no conocéis Calibre, ya estáis tardando...

El segundo ejemplo es más de lo mismo. Actualmente estoy trabajando, en mi tiempo libre en un proyecto con Drupal 6 y webservices. Al instalar el módulo simpletest es necesario patchear el core de Drupal, y claro, con Microsoft Windows, es una pesadilla. En la documentación de Drupal, entre otros, recomiendan Eclipse para solucionar la "papeleta", pero ¿cómo? ¿Eclipse? Yo no uso Eclipse, y ni por asomo lo pienso instalar para aplicar un patch. El caso es que navegando encontré "UnxUtils" , port de las "GNU utils", nativas para Win32, que sólo dependen la librería msvcrt.dll: Microsoft C-Runtime y no una emulación vía Cygwin, como indican en la web del proyecto.

Un consejo: piensa un poco antes de encender tu ordenador y arrancar un sistema operativo Microsoft Windows.

Salud!
P.D: Utilizo Microsoft Windows por imposición laboral. ;)


viernes, 19 de agosto de 2011

Moodle, Drupal, SHA512 y John The Ripper.

A ver si no me lío mucho y voy al grano.

Problema:

"Sincronizar" usuario de una plataforma Moodle 1.9.x y un Drupal 7. Los usuarios deben poder acceder al Drupal7 con la misma cuenta que Moodle. No he visto módulo SSO para Drupal 7 así que decide cocinarme yo el tema. El problema es que no sabía que en Drupal 7 no "hashea" el password con MD5 sino que lo hace con SHA512.

Marrón:

Las pruebas las hice con Drupal 6, hace un tiempo, y le he comentado por anticipado al cliente "eso con un script lo soluciono en una mañana". Mal. Muy mal. Pero bueno, el proyecto está en marcha y lo único que falta es solucionar este pequeño inconveniente.

Descripción del marrón:

  • "El" Moodle y "el" Drupal se ejecutan en distintas máquinas. No es problema, por lo menos yo no veo inconveniente, a priori.
  • Tengo funcionando un script en PHP que exporta los usuarios a un fichero CSV en la máquina Moodle. Sin problema.
  • La máquina Moodle envía por scp el fichero a la máquina Drupal. Sin problema.
  • En la máquina Drupal ejecuto un script lee los registros del CSV y los inserta en la tabla users de Drupal. Aquí está el marrón.
Como indicaba, Drupal no usa md5 sino sha512, por lo tanto si intentas logearte en el sistema no podrás acceder.

Posible solución:

La mejor solución, o la más adecuada en este caso, a mi modo de ver, sería instalar OpenLDAP y se acabarían los problemas, pero no es posible.

La posible solución(no válida a efectos de LOPD, privacidad y demás, pero bueno, al final lo que cuenta es solucionar el problema( ¿?¿?¿? ) ) sería.

A) Averiguar el password del usuario.
B) Insertar/actualizar el campo password de la tabla users de Drupal.


Para el punto B, Drush es la solución, máxime cuando vamos a usar PHP y bash(shell_exec vía PHP). No voy perder el tiempo en este punto, ya que en este post viene bien explicado.

Para el punto A) voy a utilizar el fichero listado_users_passwords.txt generado en la máquina que corre Moodle, cuyo contenido(es un ejemplo, así que no os molestéis en hacer el gamberro que he modificado los datos ^_^).
user,12c41121e857a474b1ce23e24166019, guillermopuertas@microsoft.com

Preparo el fichero para que John The Ripper pueda leerlo e intentar que me indique el password del usuario y poder pasarlo como parámetro a Drush para actualizar el password.

Ahora viene el verdadero motivo por el cual escribí este post: aplicaciones multihilo.

Instalar John en un sistema basado en Debian GNU/Linux no tiene ciencia. Aptitude o apt-get install john y problema resulto. Luego bastaría con:

john -format=raw-MD5 listado_users_passwords.txt

Y en cinco minutos tema resuelto. Esto está muy bien si sólo tienes un usuario, pero cuando son 429, necesitas sí o sí agilizar el proceso. La verdad es que todavía no tengo muy claro el concepto de multihilo a nivel de programación, pero lo que sí he observado es que muchas aplicaciones compiladas para distribuciónes Linux NO tiene soporte multicore, por lo tanto tu dual o quad core por el que has pagado XXX€ y del que tanto farda con tus compis, se queda en un cutre core la mitad del tiempo de proceso. John The Ripper no es una excepción. En el proceso anterior, abrí htop y pude comprobar a ojímetro como uno de los cores del procesador/(Intel(R) Core(TM)2 Duo CPU E7200 @ 2.53GHz) del PC del trabajo estaba más ocioso que Paquirrín en agosto.

Decidí investigar,leer y comprender el por qué. John The Ripper, por lo menos en la versión para Ubuntu/Debian GNU/Linux , sólo va a usar 1 core de tu máquina.En el wiki de Openwall encontré un artículo muy interesante acerca de "Parallel and distributed processing with John the Ripper", que por supuesto recomiendo leer. Seguí navegando y no recuerdo en qué web, leí algo acerca de la versión Jumbo de John The Ripper. En la práctica es un patch que permite usar varios cores. Lo mejor de todo no es esto. Lo más interesante es que me he enterado de que hay una "Community-enhanced version" Jumbo Powered. Genial. La descargo, la compilo y a probar. Juzguen ustedes mismos.

Comando: john -format=raw-MD5 listado_users_passwords.txt
Versión John: Version: 1.7.3.1-1
Paquete: deb
SSOO: Ubuntu 10.10 x86
Kernel: 2.6.35-30-generic-pae
Resultado John:
Loaded 1 password hash (Raw MD5 [raw-md5])
3169Y (user)
guesses: 1 time: 0:00:05:25 (3) c/s: 4876K trying: 314d* - 318bh

Comando: john -format=raw-MD5 listado_users_passwords.txt
Versión John: Version: 1.7.8-jumbo-5
Paquete: src(tar.gz)
SSOO: Ubuntu 10.10 x86
Kernel: 2.6.35-30-generic-pae
Resultado John:
Using raw-md5 mode, by linking to md5_gen(0) functions
Loaded 1 password hash (Raw MD5 [gen])
3169Y (user)
guesses: 1 time: 0:00:02:32 DONE (Fri Aug 19 13:06:13 2011) c/s: 10374K trying: 314d* - 3132E

No sé si al final consiguiré mi propósito, seguro que aplicaré KISS y solucionaré de otro modo el problema.

Nota: sí, he elimando el fichero .john de mi $home.


jueves, 18 de agosto de 2011

bootinst.sh : Permission denied Slax


Me gusta Slax. La uso a menudo para instalar Gentoo en otras máquinas. En caso es que esta tarde me disponía a instalar Gentoo en mi HP-Mini y durante un tiempo(unos minutos :P ) fue imposible cambiar el permiso el fichero pues al ejecutar bootinst.sh devolvía: Permission denied. Revisando los foros de Slax, un crack apuntaba que es probable que la distribución que utilizo (Debian GNU/Linux) montase el pendrive con el atributo noexec, por lo tanto no sería posible cambiar los permisos a +x al fichero en cuestión. La solución, como casi siempre en GNU/Linux, muy sencilla:
mount /dev/sdb1 -o exec /media/usb
Ahora ya podemos ejecutar bootinst.sh y disfrutar de Slax. Por cierto, nunca está de más echar un vistazo a las páginas del manual de mount.

sábado, 9 de abril de 2011

Remake: Unixbench

Preparando el servidor OpenVZ para la "I Noite Drupal & GNU/Linux" de Mugardos he encontrado una perla en Google Code: UnixBench. El objetivo de la aplicación es muy claro: ser un indicador de rendimiento para sistemas operativos basados en Unix partiendo de los resultados base de un SPARCstation 20-60(valor 10,0)

Entre los múltiples tests realizados destacan:
.- Dhrystone : Prueba de manejo de cadenas(sin coma flotante :P)
.- Whetstone: Mide la velocidad y efiencia de las operaciones con coma flotante.
.- Execl Throughput : mide la velocidad a la cual los datos pueden ser transferidos de un archivo a otro, con diferentes tamaños de búfer.

Un consejo. No es un test rápido. En un AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ con frecuencia de 2,5ghz y 8GB de RAM el test necesitó más de 40 minutos para finalizar y mostrar resultados.
Para curiosos, geek y demás fauna, ahí van los resultados:



Version 5.1.3 Based on the Byte Magazine Unix Benchmark

Multi-CPU version Version 5 revisions by Ian Smith,
Sunnyvale, CA, USA
January 13, 2011 johantheghost at yahoo period com


1 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput 1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks 1 2 3

1 x File Copy 256 bufsize 500 maxblocks 1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks 1 2 3

1 x Pipe Throughput 1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10

1 x Process Creation 1 2 3

1 x System Call Overhead 1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent) 1 2 3

1 x Shell Scripts (8 concurrent) 1 2 3

2 x Dhrystone 2 using register variables 1 2 3 4 5 6 7 8 9 10

2 x Double-Precision Whetstone 1 2 3 4 5 6 7 8 9 10

2 x Execl Throughput 1 2 3

2 x File Copy 1024 bufsize 2000 maxblocks 1 2 3

2 x File Copy 256 bufsize 500 maxblocks 1 2 3

2 x File Copy 4096 bufsize 8000 maxblocks 1 2 3

2 x Pipe Throughput 1 2 3 4 5 6 7 8 9 10

2 x Pipe-based Context Switching 1 2 3 4 5 6 7 8 9 10

2 x Process Creation 1 2 3

2 x System Call Overhead 1 2 3 4 5 6 7 8 9 10

2 x Shell Scripts (1 concurrent) 1 2 3

2 x Shell Scripts (8 concurrent) 1 2 3

========================================================================
BYTE UNIX Benchmarks (Version 5.1.3)

System: polinico: GNU/Linux
OS: GNU/Linux -- 2.6.32-5-openvz-amd64 -- #1 SMP Mon Mar 7 22:25:57 UTC 2011
Machine: x86_64 (unknown)
Language: en_US.utf8 (charmap="ANSI_X3.4-1968", collate="ANSI_X3.4-1968")
CPU 0: AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ (2009.1 bogomips)
Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
CPU 1: AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ (2009.1 bogomips)
Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSENTER/SYSEXIT, AMD virtualization, SYSCALL/SYSRET
18:09:05 up 1:48, 3 users, load average: 0.25, 0.30, 0.23; runlevel 2

------------------------------------------------------------------------
Benchmark Run: sáb abr 09 2011 18:09:05 - 18:38:11
2 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables 18476798.9 lps (10.0 s, 7 samples)
Double-Precision Whetstone 2613.2 MWIPS (9.9 s, 7 samples)
Execl Throughput 1260.8 lps (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 308577.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 100308.1 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 697625.5 KBps (30.0 s, 2 samples)
Pipe Throughput 987893.9 lps (10.0 s, 7 samples)
Pipe-based Context Switching 102266.6 lps (10.0 s, 7 samples)
Process Creation 3968.2 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 2277.5 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 804.0 lpm (60.0 s, 2 samples)
System Call Overhead 2051427.4 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 18476798.9 1583.3
Double-Precision Whetstone 55.0 2613.2 475.1
Execl Throughput 43.0 1260.8 293.2
File Copy 1024 bufsize 2000 maxblocks 3960.0 308577.4 779.2
File Copy 256 bufsize 500 maxblocks 1655.0 100308.1 606.1
File Copy 4096 bufsize 8000 maxblocks 5800.0 697625.5 1202.8
Pipe Throughput 12440.0 987893.9 794.1
Pipe-based Context Switching 4000.0 102266.6 255.7
Process Creation 126.0 3968.2 314.9
Shell Scripts (1 concurrent) 42.4 2277.5 537.2
Shell Scripts (8 concurrent) 6.0 804.0 1340.0
System Call Overhead 15000.0 2051427.4 1367.6
========
System Benchmarks Index Score 667.9

------------------------------------------------------------------------
Benchmark Run: sáb abr 09 2011 18:38:11 - 19:07:26
2 CPUs in system; running 2 parallel copies of tests

Dhrystone 2 using register variables 36832151.8 lps (10.0 s, 7 samples)
Double-Precision Whetstone 5246.4 MWIPS (9.9 s, 7 samples)
Execl Throughput 3706.6 lps (29.6 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks 402547.4 KBps (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks 121746.1 KBps (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks 911624.0 KBps (30.0 s, 2 samples)
Pipe Throughput 1990029.1 lps (10.0 s, 7 samples)
Pipe-based Context Switching 437120.2 lps (10.0 s, 7 samples)
Process Creation 10823.0 lps (30.0 s, 2 samples)
Shell Scripts (1 concurrent) 6206.0 lpm (60.0 s, 2 samples)
Shell Scripts (8 concurrent) 809.3 lpm (60.1 s, 2 samples)
System Call Overhead 2618061.3 lps (10.0 s, 7 samples)

System Benchmarks Index Values BASELINE RESULT INDEX
Dhrystone 2 using register variables 116700.0 36832151.8 3156.1
Double-Precision Whetstone 55.0 5246.4 953.9
Execl Throughput 43.0 3706.6 862.0
File Copy 1024 bufsize 2000 maxblocks 3960.0 402547.4 1016.5
File Copy 256 bufsize 500 maxblocks 1655.0 121746.1 735.6
File Copy 4096 bufsize 8000 maxblocks 5800.0 911624.0 1571.8
Pipe Throughput 12440.0 1990029.1 1599.7
Pipe-based Context Switching 4000.0 437120.2 1092.8
Process Creation 126.0 10823.0 859.0
Shell Scripts (1 concurrent) 42.4 6206.0 1463.7
Shell Scripts (8 concurrent) 6.0 809.3 1348.9
System Call Overhead 15000.0 2618061.3 1745.4
========
System Benchmarks Index Score 1258.5

jueves, 21 de octubre de 2010

Hp Mini y Meego

Hace aproximadamente diez días me he regalado un netbook. La máquina en cuestión es un HP Mini "el negro". Por 278€ tenemos "out of the box":
  • Procesador Intel Atom 1,6 Ghz con 512Kb de caché de L2
  • 1 GB RAM DDR2 (2GB Max)
  • Disco duro SATA 160GB 5400 rpm
  • Pantalla WSVGA 10'1 1024x600
  • Intel GMA 3150
  • Batería de 6 celdas
  • LAN Ethernet 10/100 y Wireless b/g/n


Los principales motivos para elegir este modelo han sido:
  1. Batería de 6 celdas. Para tener entre 2 y 3 horas de autonomía me llegaba con el Macbook. Con el HP Mini puedo llegar a las 7 horas sin demasiados sacrificios.
  2. Marca. Me gusta HP. Si bien el diseño se podría mejorar, la calidad del producto está muy bien compensada en relación calidad/precio.



[ HP Mini 110-3005SS WS62EA]

La duda llegaba con el SSOO a instalar.
  • Si instalo Debian GNU/Linux, opción principal, tendría que dedicarle mucho tiempo, y la verdad, dada mi situación personal y laboral actual, ahora mismo es mi principal carencia: el tiempo. Descartada.
  • Ubuntu. Fue la opción durante 8 días. Tenía que viajar y tener Ubuntu 10.10 instalada y con todo el hardware funcionando fue cuestión de invertir 45 minutos y algún que otro quebradero de cabeza. El driver para la wireless ralink da problemas con ACPI, así que debemos "blacklistar" el módulo para que no lo cargue al iniciar el sistema. La verdad es que la primera semana con Ubuntu 10.10 no tuve queja alguna, todo perfecto, con las limitaciones del propio hardware de la máquina(pasar de 8GB de RAM a 1GB se nota).
echo "blacklist rt2800pci" >> /etc/modprobe.d/blacklist.conf
  • Meego. Conocía Meego, de echo tenía un par de imágenes en mi máquina de escritorio, pero claro, la falta de tiempo....Para los que no conozcan Meego, resumiendo el resumen , comentar que es el fruto de la fusión de Maemo y Moblin , es decir, el resultado del trabajo de Intel y Nokia basado en el núcleo de Linux para competir con Android. Al final he optado por la opción Meego.No quiero entrar en polémicas acerca de que si Meego es mejor o peor que Android. Simplemente daré mi opinión después de instalar y utilizar Meego en el HP Mini.
Primeras impresiones de Meego.
  • Modo Live! Increíble. Todavía no he podido indagar cómo lo han hecho, pero en 20 segundos(a ojímetro) tenemos el sistema funcionando en modo Live!. No hay que hacer nada especial para tener el usb, sólo seguir las instrucciones del sitio web de Meego. Como anécdota comentar que la imagen la he creado con el clásico dd sin ningún tipo de problema. Lo qué mas llama atención la primera vez que "juegas" con Meego es el propio entorno. Si vienes de GNOME o KDE olvídate de menús infinitos, olvídate de la clásica estructura de escritorio "linuxero" panel-menú-panel, por que Meego va más allá. Un panel superior es suficiente para controlar y disfrutar de todo el sistema.
  • Instalación. Si te ha gustado el modo Live! y te ha sorprendido lo ligero y sencillo que es el uso, la instalación es de lo más simple que he visto en mucho tiempo. Particionar el disco, configurar el idioma, red y en 5 minutos está instalado.




[ Meego funcionando en el HP Mini ]

¿Qué es lo que más me ha gustado?
  • Fluidez. Es increíble lo fluído y rápido que "se mueve" el entorno gráfico.
  • Simple e intuitivo. Tareas como configurar una conexión wifi son tan simples como "clickear" dos botones y navegar.
  • La interfaz es bonita y agradable, parece que acabas de entra en los mundos de yupi!
  • Es Linux! Es Gnome! Es Kde! Es increíble!. De serie instala el reproductor multimedia banshee, Google Chrome(ojo, tienes que descargar la ISO con el EULA de Google Chrome), Empathy...
  • Tiene un terminal!
  • Tiene un Kernel actualizado, ayer de noche instaló el solito un 2.6.35....
  • Usa YUM como gestor de paquetes, aunque prefiero apt, no hay mejor excusa para retomar el asunto "yumero"...
¿Qué es no lo que NO me ha gustado?
  • Haber tardado tanto en probarlo...
  • Nada más.
P.D: Gracias a Simón Pena por recordame el tema Meego!


martes, 28 de septiembre de 2010

Flyback, el time machine para GNU/Linux

La semana pasada he perdido el disco duro del Macbook. Lo importante: el fichero cifrado con TrueCrypt estaba a salvo, pero el resto lo he perdido. Algunas fotos, máquinas virtuales y demás se han ido por la borda. Lo que más me fastidia del tema es que siempre predico en entornos empresariales la importancia de los backups y al final soy yo mismo el peor ejemplo. El caso es que he configurado(prometo post) una máquina Linux para que MacOSX detecte el volumen que se desee como un XServe y vía AFP poder usar dicho volumen para almacenar las copias de Time Machine. Buscando y rebuscando por Google he encontrado Flyback, una herramienta similar a Time Machine pero para GNU/Linux. La instalación es muy sencilla: descargas el paquete .deb, resuelve dependencias y listo! Claro ejemplo de las bondades del apt-get.... En la web del proyecto hay más información, y por supuesto el código fuente. La aplicación en sí no es gran cosa, pero nunca está de más tomar nota.

domingo, 26 de septiembre de 2010

FreeNX, acceso seguro a GNOME(y otros...)

¿Necesitas acceder al escritorio de una máquina corriendo algún sabor de Unix o Linux? FreeNX es la solución, por lo menos para mí.NX realiza una conexión por el protocolo X11 pero encapsulado por SSH !fuera paranoias!

En la actualidad sólo lo he probado desde MacOSX Snow Leopard 10.6.4 hacia una máquina Ubuntu 10.04 LTS y la verdad es que los resultados son increíbles. [Descargar cliente Mac OS X].
Si utilizais Microsoft Windows supongo no será difícil encontrar un cliente de FreeNX.

Siempre , y cuando digo siempre es siempre, uso SSH para acceder a máquinas Unix vía remota, pero desde que he probado "en serio" NX, más de una vez incio sesión y descargo algún torrent.

Si usais Ubuntu 10.04 la instalación de FreeNX es muy sencilla, desde un terminal y como root


[root@barney]aptitude install python-software-properties && add-apt-repository ppa:freenx-team

[root@barney] aptitude update && aptitude install neatx-server


Con estos sencillo pasos ya es posible conectarse desde otra máquina a nuestra Ubuntu / Debian GNU/Linux. Sencillo, seguro y fácil: alguien da más?

lunes, 5 de julio de 2010

ipfire, otra sorpresa...


Distrowatch es una referencia en la web si hablamos de lista de distribuciones GNU/Linux y BSDs. A menudo suelo dar una vuelta por Distrowatch para ver las últimas novedades; hoy la he visitado y me he topado con una sopresa : ipfire.

Si hace unas semanas hablaba de Ebox como una solución ideal para servidor empresarial: ficheros,firewall,vpn...etc, ahora toca el turno de ipfire.

Ipfire es una distribución Linux que "sólo" sirve para realizar una función : firewall. En la página oficial del proyecto la definen como "una distribución linux-like,de instalación sencilla y segura".

Me ha llamado mucho la atención la cuidada interfaz web de administración, desde la que podemos realizar prácticamente cualquier función de administración del sistema. En este enlace podéis ver unas capturas de pantalla.

Entre sus muchas caraterísticas destacan:
  • módulo firewall basado en inspección de paquetes netfilter.
  • IDS
  • Posibilidad de crear DMZ
  • Servicios: ntp,dhcp,proxy...
  • Sistema basado en módulos para ampliar funcionalidades
  • VPN
Aún no sé si usaremos Ebox o Ipfire para el Kernel 2010 de Mugardos, pero si me preguntais ahroa mismo, Ipfire tiene las mismas posibilidades que Ebox.

viernes, 4 de junio de 2010

Señoras y señores: jubilen 'top'.

No tengo que presentar top, ¿verdad?. Si bien es cierto es una herramienta que, si mal no recuerdo, me ha acompañado en mi viajes por los terminales desde 1999, toca jubilar. A todos nos llega nuestra hora, y top merece descansar en paz.

Hace tiempo que conocía htop, pero desde hace unos meses es mi herramienta de monitorización de proceso favorita. Las razones las dejan bien claras la página web del proyecto, aunque me he tomado la molestias de enumeras algunas en el siguiente listado....

  • .- 'htop' puede desplazarse por la lista vertical y horizontalmente para ver todos los procesos y líneas de comandos completo.
  • .-'top' está sujeto a un retraso por cada tecla que presione sin asignar (especialmente molesto cuando la llave de secuencias de escape-multi son provocados por accidente).
  • .-'htop' inicia más rápido.
  • .-'Con htop' no es necesario que escriba el número de proceso para matar un proceso.
  • .-En 'htop' no es necesario que escriba el número de proceso o el valor renice prioridad a un proceso en el 'top' que hace.
  • .-'top' es más viejo
A modo de anécdota comentar que tanto en Debian GNU/Linux como en Ubuntu Linux htop viene incluído en los repositorios oficiales de las distribuciones.

domingo, 9 de mayo de 2010

sshfs MacOSX



No suelo utilizar MacOSX para desarrollo, pero en ocasiones sí necesito acceso vía SSH a alguna máquina. Ultimamente necesito realizar ciertas operaciones que requieren un acceso al directorio remoto constante, y lanzar multitud de conexiones SSH no es una opción ni práctica ni elegante.Si no conocéis sshfs, os recomiendo documentaros y desde ya utilizarlo.
Echo de menos apt-get en MacOSX(ya, los ports y demás(no me apetece)), y "out of the box" no tiene soporte sshfs. He encontrado "ssh for Mac OS X". De la instalación ni hablar. Descargar, instalar, reiniciar y ya tenemos soporte sshfs. Como anécdota comentar que he modificado el $PATH y he añadido la ruta del binario de sshfs. Accedemos al terminal y editamos $HOME/.bash_profile

export PATH=/undir/otrodir:/Applications/sshfs/bin/:$PATH

El resto no tiene más historia. Por cierto, el próximo miércoles 12 cierro el chiringo por vacaciones.

martes, 12 de enero de 2010

Pánico en la habitación reiser.

Un buen título para una película de terror sería el de este post. Tan pronto como hablo de leer particiones reiserfs desde Windows, no puedo acceder a una de 932GB dónde almaceno contenido multimedia.
El primer síntoma del "problema" es que no se podía acceder desde Gnome. "Ummm...que raro, si en este disco, que por cierto tiene cuatro(4) meses de vida útil en mi máquina, nunca me había dado problemas". El segundo síntoma lo he encontrado en /var/log/syslog y /var/log/messages, dónde se podía apreciar claramente cómo algo no marchaba bien en la unidad /dev/sdb1. Me temía lo peor. Dudaba en este post si reiserfs podía expandir el disco en caliente; ahora puedo afirmar que expandir en caliente sí; lo que no es posible es disminuir el espacio. Al grano. Este post me ha ayudado a recuperar los datos reconstruyendo el árbol. La verdad es que no me paran de llegar buenas impresiones y experiencias sobre EXT4; y teniendo en cuenta que Namesys parece que ya no sigue con el desarrollo de reiserfs, a lo mejor es buen momento para el cambio.
La operación que "copio-pego" ha llevado un buen rato, alrededor de cuatro(4) horas, así que paciencia. Debéis comprobar si tenéis instalado reiserfsprogs, que es el paquete de utilidades para "jugar" con particiones reiser. En Debian GNU/Linux, Ubuntu y derivados es muy sencillo.

apermuy@polinico:~$ dpkg -l|grep reiser
ii reiserfsprogs 1:3.6.21-1 User-level tools for ReiserFS filesystems

Ahora toca comprobar la consistencia del sistema de ficheros. Fácil.

root@polinico apermuy#reiserfsck --check /dev/sdb1

Si tenéis café a mano, o una buena película...ahora es el momento.Ups, me olvidaba comentar que es necesario desmontar la partición.

root@polinico apermuy#reiserfsck --rebuild-tree /dev/sdb1
reiserfsck 3.6.21 (2009 www.namesys.com)

*************************************************************
** Do not run the program with --rebuild-tree unless **
** something is broken and MAKE A BACKUP before using it. **
** If you have bad sectors on a drive it is usually a bad **
** idea to continue using it. Then you probably should get **
** a working hard drive, copy the file system from the bad **
** drive to the good one -- dd_rescue is a good tool for **
** that -- and only then run this program. **
** If you are using the latest reiserfsprogs and it fails **
** please email bug reports to reiserfs-list@namesys.com, **
** providing as much information as possible -- your **
** hardware, kernel, patches, settings, all reiserfsck **
** messages (including version), the reiserfsck logfile, **
** check the syslog file for any related information. **
** If you would like advice on using this program, support **
** is available for $25 at www.namesys.com/support.html. **
*************************************************************

Will rebuild the filesystem (/dev/sdb1) tree
Will put log info to 'stdout'

Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes
Replaying journal: Done.
Reiserfs journal '/dev/sdb1' in blocks [18..8211]: 0 transactions replayed
###########
reiserfsck --rebuild-tree started at Mon Jan 11 11:13:29 2010
###########

Pass 0:
####### Pass 0 #######
Loading on-disk bitmap .. ok, 229524466 blocks marked used
Skipping 15663 blocks (super block, journal, bitmaps) 229508803 blocks will be read
0%..block 23371164: The number of items (256) is incorrect, should be (1) - corrected
block 23371164: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 23371164, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 23467445: The number of items (256) is incorrect, should be (1) - corrected
block 23467445: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 23467445, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 24152599: The number of items (256) is incorrect, should be (1) - corrected
block 24152599: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 24152599, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
.block 35113524: The number of items (256) is incorrect, should be (1) - corrected
block 35113524: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 35113524, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 35250046: The number of items (256) is incorrect, should be (1) - corrected
block 35250046: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 35250046, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 37513382: The number of items (256) is incorrect, should be (1) - corrected
block 37513382: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 37513382, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
.block 68136197: The number of items (256) is incorrect, should be (1) - corrected
block 68136197: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 68136197, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
block 68192301: The number of items (256) is incorrect, should be (1) - corrected
block 68192301: The free space (0) is incorrect, should be (4048) - corrected
pass0: vpf-10110: block 68192301, item (0): Unknown item type found [0 0 0x1000000 ??? (15)] - deleted
left 0, 24118 /secc
168886 directory entries were hashed with "r5" hash.
"r5" hash is selected
Flushing..finished
Read blocks (but not data blocks) 229508803
Leaves among those 248377
- leaves all contents of which could not be saved and deleted 8
Objectids found 168888

Pass 1 (will try to insert 248369 leaves):
####### Pass 1 #######
Looking for allocable blocks .. finished
0%....20%....40%....60%....80%....100% left 0, 84 /sec
Flushing..finished
248369 leaves read
248234 inserted
- pointers in indirect items pointing to metadata 1 (zeroed)
135 not inserted
non-unique pointers in indirect items (zeroed) 2382
####### Pass 2 #######

Pass 2:
0%....20%....40%....60%....80%...vpf-10260: The file we are inserting the new item (5 8814 0x15eb8001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1a9d4001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1adc8001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1bd98001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1c974001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1d15c001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1d550001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
.vpf-10260: The file we are inserting the new item (5 8814 0x1d944001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
vpf-10260: The file we are inserting the new item (5 8814 0x1dd38001 IND (1), len 4048, location 48 entry count 0, fsck need 0, format new) into has no StatData, insertion was skipped
100% left 0, 11 /sec
Flushing..finished
Leaves inserted item by item 135
Pass 3 (semantic):
####### Pass 3 #########
/curre/ORDENAR/LIVE-CD/martes.tar.bz2vpf-10680: The file [162552 162553] has the wrong block count in the StatData (799872) - corrected to (781480)
Flushing..finished
Files found: 149084
Directories found: 17768
Symlinks found: 2035
Others: 1
Pass 3a (looking for lost dir/files):
####### Pass 3a (lost+found pass) #########
Looking for lost directories:
Flushing..finished55, 43 /sec
Pass 4 - finished done 248222, 36 /sec
Deleted unreachable items 28
Flushing..finished
Syncing..finished
###########
reiserfsck finished at Mon Jan 11 16:35:11 2010
###########


Un reboot(no sería necesario, pero yo lo he echo para evitar sorpresas) y listo!
Saludos.

viernes, 8 de enero de 2010

Leer particiones reiserfs desde Windows

Supongo que esta utilidad no será utilizada por la gran mayoría de Linuxeros, pero a mí, particularmente me ha resultado muy util. YAReG permite explorar en modo sólo-lectura particiones reiserfs desde Microsoft Windows. Lo he probado desde Window$ XP Service Pack 3 y funciona realmente bien. Tomad nota para un futuro.

Saludos.

martes, 1 de diciembre de 2009

cron-apt



Me ha llamado la atención un paquete para Debian GNU/Linux que no conocía: cron-apt. Básicamente lo usaremos para descargar paquetes e instalarlos posteriormente. Pero lo que más me ha gustado es lo que he leído en este blog : automatizar las descargas de las actualizaciones de seguridad, un puntazo!

En otro orden de cosas, ahora que tengo tiempo, he alquilado otro VPS en vpsville.ca, para jugar con Gentoo. Estoy tomando notas acerca de la configuración y espero tenerlas listas en unos días para escribir un post.

Saludos.

miércoles, 28 de octubre de 2009

Actualizar desde Ubuntu 9.04 a 9.10

Ubuntu 9.10 Countdown

Mañana Canonical liberará Ubuntu 9.10 y yo tendré que comerme todos los comentarios y post que he escrito, por que hay que reconocer que han hecho un gran trabajo.(Aunque prefiero Debian GNU/Linux).
Si no puedes esperar a descargar la ISO, y deseas actualizar vía apt-get, he leído esta mañana los pasos para actualizar la distribución desde una versión 9.04 a 9.10. Están inglés...Si os gusta más el método "consola-friki-mola-más", haciendo esto no tendréis muchos(espero) problemas.

  • aptitude install update-manager-core
  • do-release-upgrade -d

Siguiendo los pasos, y dependiendo de la conexión a Internet, se descargará 955 Mb en X minutos y comenzará el proceso de actualización. No sé si será necesario recordar que en estos casos, realizar un backup(copia de seguridad) es que más recomendado.

jueves, 24 de septiembre de 2009

La (mini) biblia de VIm


Ir a linea al iniciar: vim +36 foo.c
Ir a linea en insercion: :14
Buscar: /cadena , con n la siguiente
SHITF-N para atrás
Numeros de linea: :set number
Moverse hasta el fin de la línea - $
Moverse hasta el principio de la línea - 0
Moverse hasta la siguiente palabra - w
Moverse hasta la anterior palabra - b
Moverse hasta la siguiente palabra* - W
Moverse hasta la anterior palabra* - B
Moverse a la línea n*** - nG
Moverse hasta el final de la siguiente palabra - e
Moverse hasta el final de la siguiente palabra* - E
Encontrar el siguiente caracter c en la línea actual - fc
Encontrar el anterior caracter c en la línea actual - Fc
Llegar hasta justo antes del siguiente caracter c - t
Llegar hasta justo después del anterior caracter c - T
Encontrar el paréntesis contrario** - %
Moverse hasta la siguiente frase - (
Moverse hasta la anterior frase - )
Moverse hasta el anterior párrafo - {
Moverse hasta el siguiente párrafo - }
Moverse hasta la parte superior de la pantalla - H
Moverse hasta la parte media de la pantalla - M
Moverse hasta la parte inferior de la pantalla - L
Avanzar página - ^F
Retroceder página - ^B
Deshacer el último cambio - u
Deshacer todos los cambios de la línea actual - U
Redibujar la pantalla - ^L
Ver información del archivo actual - ^G
Reemplazar un caracter - r
Sobreescribir texto - R
Borrar el caracter actual y entrar en modo inserción - s
Cambiar la línea actual* - S
Cambiar entre mayúsculas y minúsculas - ~
Borrar texto (como el BackSpace) - X
(Sólo en vim) marcar bloque - v, V, ^V
uscar texto - /texto
epetir última búsqueda - n
Repetir última búsqueda en dirección contraria - N
Repetir última búsqueda hacia abajo - /
Repetir última búsqueda hacia arriba - ?
Repetir último cambio - .
Siguiente palabra (Modo inserción) ** - ^N
Anterior palabra (Modo inserción) ** - ^P

miércoles, 12 de agosto de 2009

Pendrives y NTFS

Aún no sé bien por qué uso NTFS como sistema de ficheros en mis pendrives. En Mac OSX tengo soporte para EXT3; entonces, no debería utilizarlo. Supongo que será por si tengo que llevar algún documento a la copistería, o intercambiar ficheros con lusers. El caso es que un pendrive que uso a menudo, al intentar montarlo en Debian GNU/Linux o Ubuntu, Gnome me invita amablemente a que lo inserte en una máquina Windows y ejecute el famoso chkdsk(Checkdisk). Cómo no me parecía una solución demasiado ética, por cuestiones obvias, me puse a buscar información y encontre la herramienta ntfsfix. No estoy seguro, pero supongo que esta herramienta forma parte de ntfsprogs. Como dice en su página del manual, ntfsfix corrige errores comunes en NTFS, pero no es una versión para Linux de chkdsk. Sólo repara inconsistencias.
Ejemplo de uso:

root@alberto:/home/alberto# ntfsfix /dev/sdf1
Mounting volume... FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... FAILED
Correcting differences in $MFTMirr record 0...OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
NTFS volume version is 3.1.
NTFS partition /dev/sdf1 was processed successfully.


Por cierto, sí forma parte de ntfsprogs, al final de la página del manual indica: ntfsfix is part of the ntfsprogs package(...)

martes, 11 de agosto de 2009

vim

Al principio fue la línea de comandos...y usaba vi. Me parecía un coñazo, "Demasiado complicado", me decía a mí mismo. Recuerdo que en un intento frustado de cursar el LPI, en el 2001, me presentaron a Nano; no a Nano el compañero de Bilo, sin al editor. Me parecía fácil de usar.Hasta hace un año, cuando me preguntaba qué editor usaba en el terminal, respondía "Nano", y muchos "talibanes" se llevaban las manos a la cabeza, y con más "desprecio que razón" exclamaban "Pero si eso es para nenazas, no conoces vi", "Sí.",respondía,"pero Nano me parece sencillo y cumple todas(las pocas) funciones que necesito." Después de este largo caminar por el Lado Oscuro de los editores, hace un año, he vuelto a vi, mejor dicho a vim. La razón principal, pese a tener una curva de aprendizaje más elevada, en mi opinión,es un editor más completo que Nano. Me gusta mucho, por ejemplo, que puedas ejecutar comandos directamente en el editor(desconozco si Nano lo hace); o lo bien que funciona con expresiones regulares. Esta mañana he visitado la web de vim(versión mejorada de vi), la entrada de la Wikipedia. He encontrado una Guía de Referencia Rápida en castellano, recomendada para los osados que quieran dejar el Lado Oscuro de los editores...

lunes, 13 de julio de 2009

Me gusta Gentoo



A menudo suelo aventurarme a la hora de dar mi opinión acerca de software y demás, pero en este caso creo que no. Conozco Gentoo de 2004 aproximadamente, desde el final de mi primera etapa Compostelana, hace ya más de 6 años. Cuando digo conozco, evidentemente no es en profundidad ni mucho menos.
Recuerdo que lo que leía siempre eran maravillas, como que sí "es una distribución que vuela..", "por y para geeks...". En 2006 conocí por casualidades de la vida a Andrés en el III CibernEncontro Kernel 2006 y la ví funcionar en un portátil Toshiba. La verdad es que como por aquel entonces comenzaba a alucinar con Debian, difícilmente sacaría tiempo para profundizar en paralelo en otra distribución GNU/Linux. Llegó VirtualBox y la cosa cambió. No sólo eso. Ahora se puede decir que tengo 2 máquinas estables: el sobremesa(clónico) y el macbook. El Macbook lo uso principalmente los fines de semana, cuando marcho a Mugardos. Llevo ya 14 meses con él y estoy encantado, tanto con MacOSX como con su rendimiento con distribuciones GNU/Linux. He probado Debian y Linux Mint; y ahora mismo desde hace un par de meses Ubuntu 9.04.
En casa, con el sobremesa, el AMDX2 Dual Core y los 8GB de RAM ayudan muchísimo para jugar con máquinas virtuales. En este mismo instante, tengo una Gentoo compilando vi y Debian como anfitrión y esto ni se entera. Al grano.

No me gusta de Gentoo:
  • Ausencia de instalador: Es un poco "coñazo" la instalación. Sí, muy geek, montándote todo a pelo y tal, pero en un entorno corporativo, será igual? Espero respuesta.
  • Tiempo instalación paquetes: Para instalar un paquetes debes "esperar" a que termine la compilación.
  • Compilar el Kernel: A efectos de aprendizaje es muy positivo que tengas que compilar el kernel, pero si necesitas una instalación rápida...Por no mencionar si te olvidas de dar soporte a un módulo, como por ejemplo el soporte de red.
Me gusta de Gentoo:
  • Aprendizaje: Realmente con Gentoo aprendes cosas. Al no tener instalador, conceptos con Gestor de Arranque,Particionado de Discos,Kernel...te quedan mucho más claros.
  • Optimización : Una bala, Gentoo es una bala. Como comentaba en el punto anterior, puede ser un punto en contra, pero a menudo es punto a favor. El rendimiento de la máquina aumenta considerablemente.
  • Portage: El gestor de paquetes es una maravilla.
  • Documentación: Es increíble : el wiki, los manuales, la comunidad...
Le estoy dando una oportunidad a Gentoo Linux, y la verdad es que no me ha defraudado en absoluto.

jueves, 9 de julio de 2009

Ese molesto pitido...

Creo recordar que en algún momento he recomendado la lectura del blog de Nasser Heidari. Recientemente ha publicado un post en el que indica como desactivar/eliminar el molesto pitido del speaker del PC. Es realmente sencillo, bastante con "cargarse" el módulo pcspkr.ko y listo.

[root@localhost] rmmod -v pcspkr.ko

Si añadimos al fichero /etc/modprobe.d/blacklist una entrada como esta, todo solucionado.

[root@localhost] echo "blacklist pcspkr" >> /etc/modprobe.d/blacklist

martes, 2 de junio de 2009

Jugando con mknod

Al generar la llave rsa con ssh-keygen recibo un error del tipo:

apermuy@bezoucos:~$ ssh-keygen
Couldn't open /dev/null: Permission denied

Investigando un poco, llego a la conclusión de que el usuario en cuestión no tiene permisos de escritura en /dev/null. Al ser este un dispositivo que no existe, debemos tirar de mknod para crearlo de nuevo, como en el siguiente ejemplo:

root@bezoucos:/home/bezoucos# mknod --mode=666 /dev/null c 1 3

El mode está claro lo que indica, c indica que es un dispositivo de caracteres con un número mayor que 1 y menor que 3.

Ahora parece que ssh-keygen no se queja:

apermuy@bezoucos:/home/bezoucos$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/apermuy/.ssh/id_rsa):

Documentar mola!