Posts Tagged ‘linux’

Convirtiendo fecha Unix a fecha regular

Thursday, February 4th, 2010

Algunos logs de ciertos servicios solamente proveen fecha Unix, lo cual hace un poco difícil hacerse la idea de que fecha/hora exactamente se trata.

Pero la conversión en la consola es sumamente sencilla:

Convirtiendo fecha Unix a fecha regular:

$ date -d @1265312185

Convirtiendo una fecha específica a fecha Unix:

$ date --date "Thu Feb  4 13:36:25 CST 2010" +%s

Convirtiendo fecha actual a fecha unix:

$ date +%s

Script rápido para ver uso de memoria por programa

Friday, January 29th, 2010

Hace un buen tiempo alguien me mostró un mini script con el cual se visualiza el uso de memoria en un equipo con GNU/Linux , el cual es el siguiente:

$ ps aux  | awk '{print $6" "$11,$12,$13,$14}' | egrep -v "0.*\[.*\]" | awk '{print $1/1024" Mb --> "$2,$3,$4,$5}' | sort -g

Cuya salida es parecida a la siguiente:
....
6.39062 Mb --> gnome-screensaver
6.85547 Mb --> /usr/libexec/vino-server --sm-disable
7.22656 Mb --> /usr/libexec/multiload-applet-2 --oaf-activate-iid=OAFIID:GNOME_MultiLoadApplet_Factory --oaf-ior-fd=18
7.27344 Mb --> /usr/libexec/gnome-settings-daemon
7.98438 Mb --> C:\windows\system32\explorer.exe /desktop
8.35547 Mb --> /usr/libexec/gnome-volume-manager --sm-disable
10.8438 Mb --> metacity
11.1094 Mb --> c:\Archivos de programa\Alcatel\A4980\Alcatel 4980\a4980.exe
14.7305 Mb --> vinagre
20.1914 Mb --> gnome-terminal
20.6758 Mb --> planner
21.2227 Mb --> c:\Archivos de programa\Alcatel\A4980\Alcatel 4980\a4980.exe
24.2578 Mb --> gnome-panel
25.5977 Mb --> nautilus
31.6602 Mb --> claws-mail
91.875 Mb --> gedit
109.188 Mb --> /usr/bin/X :0 -audit 0
144.84 Mb --> /usr/bin/firefox

Por cierto no recuerdo quien fue el autor original de dicho script, y si lo conocen haganmelo saber para darle crédito :D

666 Días funcionando

Monday, November 10th, 2008

Haciendo una revisión rutinaria a un servidor, me encuentro con lo siguiente:

[root@proxy ~]# uptime
09:19:19 up 666 days, 35 min, 3 users, load average: 0.05, 0.01, 0.00

Aparte de el número 666 que causa un poco de morbo, cabe notar el hecho que ha estado casi dos años funcionando sin necesidad de reiniciar.

Cuánto es el mayor tiempo que han tenido uptime una máquina Linux ??

PD: Linux Rocks

Ascii Art en errores de kernel GNU/Linux @ Sparc

Wednesday, October 15th, 2008

Jugando con una UltraSparc II en GNU/Linux me dio un curioso crash dump:

...

Oct 15 12:03:54 quetzalcoatl [  253.145378] spitfire_data_access_exception:
SFSR[0000000000801009] SFAR[fffff800be90bf88], going.
Oct 15 12:03:54 quetzalcoatl [  253.145472]               \|/ ____ \|/
Oct 15 12:03:54 quetzalcoatl [  253.145495]               "@'/ .. \`@"
Oct 15 12:03:54 quetzalcoatl [  253.145517]               /_| \__/ |_\
Oct 15 12:03:54 quetzalcoatl [  253.145540]                  \__U_/
Oct 15 12:03:54 quetzalcoatl [  253.145636] emerge(3364): Dax [#1]
Oct 15 12:03:54 quetzalcoatl [  253.145687] TSTATE: 0000004411009606 TPC:
00000000004c3dd0 TNPC: 00000000004c3dd4 Y: 00000000    Not tainted

...

La imagen de una persona sacandome la lengua en un crash dump no es tan divertida como pensó el desarrollador del kernel...

Curioso bug en avahi 0.6.22

Thursday, September 25th, 2008

Una brevísima introducción a avahi

Avahi es una implementación del concepto "exploración de la red para descubrir servicios", en otras palabras del estándar Zeroconf , utilizado por ejemplo para descubrir impresoras de red, compartidos de win2, servidores ftp, hosts, mas que todo en LANs.

Avahi no es exclusivo de GNU/Linux, sino que hay implementaciones en otros sistemas operativos, por ejemplo el famoso Bonjour de OS X.

El bug

Recientemente revisando rutinariamente los logs me fijé en lo siguiente:

...

Sep 24 08:38:57 phoenix ath_pci: wifi0: Atheros 5424/2424: mem=0xf2000000, irq=16
Sep 24 14:38:57 phoenix avahi-daemon[11671]: Joining mDNS multicast group on interface wlan0.IPv4 with address 192.168.11.70.
Sep 24 14:38:57 phoenix avahi-daemon[11671]: New relevant interface wlan0.IPv4 for mDNS.
Sep 24 14:38:57 phoenix avahi-daemon[11671]: Registering new address record for 192.168.11.70 on wlan0.IPv4.
Sep 24 08:41:48 phoenix acpid: received event "ac_adapter ACAD 00000080 00000001"
Sep 24 08:41:48 phoenix acpid: notifying client 6097[106:1009]

...

Como se puede notar la fecha reportada en el syslog en las líneas correspondientes a avahi se muestran incorrectamente e investigando esto se debe a que avahi corre en un chroot y no maneja bien la configuración de zonas horarias; la solución para que se muestre correctamente es copiar el archivo tz en el directorio /etc/avahi

# mkdir /etc/avahi/etc

#cp /etc/localtime /etc/avahi/etc/

Reiniciamos el servicio y listo.

Hay un ticket sobre lo anterior en http://avahi.org/ticket/221

Leyendo Imágenes de nero .nrg en GNU/Linux

Wednesday, June 11th, 2008

Cuando nuestros colegas windozeros nos envían imágenes de CD es muy común que utilicen el software Nero para crearlas el cual genera archivos con extensión .nrg que no es legible directamente por el comando mount o los comandos para copia de CDs.

Pero existe un sencillo programa que permite convertir imágenes .nrg a .iso , la instalación es tan sencilla como:

Gentoo # emerge app-cdr/nrg2iso

Debian # apt-get install nrg2iso

Su utilización es igual de sencilla:

$ nrg2iso archivo.nrg archivo.iso

Y nos mostrará la siguiente salida:

|=========================>[100%]
archivo.iso written : 731492508 bytes

Listo!, podemos montar la imagen o quemarla.

Mupen64Plus , emulador N64 para Linux

Thursday, May 15th, 2008

Recientemente me enteré de la existencia de mupen64plus, un desarrollo activo para emular la famosa consola de juegos nintendo64.

Mupen64 plus es un fork del inactivo mupen64, el cual soporta sistemas de 32 y 64 bits :) con plugins para audio, rendering (RDP), co-procesador (RSP) y entrada.Existen 3 plugins de video para OpenGL los cuales son glN64, RiceVideoLinux, y Glide64.

Existen dos formas de instalarlo, compilarlo o bajar el paquete precompilado para la arquitectura en que estamos. Para cualquier de las dos maneras debemos visitar el vínculo de descarga . Personalmente baje el precompilado para 64 bits el cual me ha funcionado muy bien. Ademas para los usuarios win2 hay una versión disponible.

Los menus de la aplicación son mas que intuitivos y estaría demás explicar cada una de las opciones, solamente la advertencia que debemos de configurar el plugin de entrada (Input plugin) para asignar teclas correspondientes a las de la consola y poder operar los juegos.

Y por supuesto, las capturas de pantalla:

Screenshot de Mupen64plusScreenshot de Mupen64plusScreenshot de Mupen64plusScreenshot de Mupen64plusScreenshot de Mupen64plus

Lo que más me sorpendió de esta aplicación es el poco consumo de CPU que utiliza asi que no habrá peligro de tostarlo si nos enviciamos en algun jueguillo :)

sdlmame: Emulador MAME para Linux

Friday, February 15th, 2008

Hablando con unos compas informáticos de los juegos de nuestra época, saliendo el tema de los juegos ARCADE, con juegos tales como Progear, Samurai Shodown y el famosísimo Metal Slug me di a la tarea de recordar viejos tiempos y ejecutarlos en mi Linux Box.

Investigando me di cuenta que los nombres que más suenan en GNU/Linux son xmame y sdlmame , el primero se encuentra muy inactivo en cuanto al desarrollo aunque es muy utilizado y el segundo acaba de realizar un release por lo que me decidí por este último.

sdlmame no se encuentra en el árbol de Gentoo ni en el repositorio de Debian, así que el método de instalación es el manual :) estos son los pasos que seguí.

  • Descomprimir el zip: vostorga@alpha ~/mamefiles $ unzip sdlmame0123u1.zip
  • Cambiamos al directorio del fuente: vostorga@alpha ~/mamefiles $ cd sdlmame0123u
  • Tener lo siguiente instalado en nuestra distro :

GCC: 3.4.x, 4.0.x, o 4.1.x; SDL: 1.2.10 o superior y sus archivos de desarrollo ; Librerías y headers OpenGL o alternativamente MesaGL y su kit de desarrollo

  • Hardware:

Al menos a 1800 MHz y una tarjeta de video con soporte de aceleración

  • Editar el makefile
    Si poseemos una distro de 64 bits debemos setear PTR64=1
    Si poseemos Linux/ppc o una PS3 :-o !! debemos setear BIGENDIAN=1
    Otras opciones que parezcan apropiadas, ojo que el makefile tiene comentarios suficientes
  • Ejecutar el comando make , la compilación se toma un buen tiempo, así que a esperar...
  • Una vez finalizado podremos ejecutar el comando mame desde la consola, si todo va bien debe de salir una ventana roja diciendo que no ha encontrado roms, esto es lógico puesto que justo lo acabamos de compilar.
  • Debemos de conseguir los archivos de BIOS para ejecutar los juegos, la obtención de dichos archivos no la discutiré aquí, simplemente debemos de copiar esos archivos, que son generalmente de extensión zip, al directorio roms
  • Luego debemos de conseguir los juegos (roms) , hay algunos que son "free", por ejemplo en http://mamedev.org/roms/ , aunque googleando la frase "mame roms" se encuentran muchos ; estos los debemos de posicionar en el directorio "roms"
  • Ejecutamos nuestro emulador, con un simple "./mame" nos saldrá una lista de los juegos disponibles, muchas veces bastará con presionar enter y se ejecutará el juego. En mi caso esto no funcionó asi xD así y aconsejo que lean los archivos SDLMAME.txt y docs/config.txt , les muestro el comando tal como me funciona a mi:

mame-menu-thumb

  • ./mame roms/rom.zip -oslog -video opengl -window
  • El parámetro -oslog me muestra el log en la consola, lo cual es muy útil al momento de depurar errores
    -video opengl permite utilizar aceleración opengl, sin este parámetro el video es lentísimo y se ocupa aceleracion por software (muy lento y posiblemente cocine el cpu)
    -window permite ver el emulador en una ventana, la cual se puede redimencionar facilmente tambien podemos omitir este parámetro y veremos todo en pantalla completa :)

Les muestro unos screenshots del sdlmame en acción, y disfruten esos juegos arcade!

mame-mslug1-thumbmame-mslug2-thumb

mame-mslug3-thumbsamsho-thumb

Actualización 3-3-2008 :

He subido el fuente del sdlmame a la dirección http://vostorga.org/files/sdlmame0123u3.zip para que lo descarguen con mas comodidad

Visualización de utilización de ancho de banda con NTOP

Wednesday, January 30th, 2008

Muchas veces hemos querido conocer de una manera fácil y rápida la utilización de ancho de banda de cada usuario en la LAN de la oficina, la casa, redes públicas etc., con el propósito de detectar cuellos de botella en nuestro acceso compartido a Internet, a menudo causado por usuarios utilizando media docena de programas P2P...., para lo cual podemos disponer de una herramienta denominada ntop.

Ntop es una herramienta que nos muestra gráficamente la utilización del ancho de banda, al mismo estilo que el conocido comando top, el cual se accede a través de un navegador web.

Ntop tiene múltiples funciones y solo mencionaré algunas:

  • Muestra tráfico de acuerdo a los protocolos utilizados
  • Recopila información sobre el usuario de una IP (direcciones de correo utilizadas, utilización de ancho de banda por hora, identificación de sistema operativo, ...)
  • Soporta los protocolos IPv4/IPv6, IPX, AppleTalk, Netbios entre otros
  • Utilización de gráficos
  • Utilización de bases de datos RRD
  • Soporte para múltiples interfaces de red
  • Cuenta con más de 10 años de desarrollo

Su instalación es sencilla (obviamente en el proxy/router)

Debian: apt-get install ntop

Gentoo: emerge net-analizer/ntop

Ntop no tiene un archivo central de configuración, sino que sus opciones se especifican en tiempo de ejecución, regularmente la distribución donde lo utilicemos tiene una forma básica de configurar la interfaz/interfaces de red que se utilizarán, por ejemplo dpkg-reconfigure ntop en Debian, para obtener más info de las opciones podemos revisar el buen man ntop.

Y para verlo en acción, dejo 3 capturas de pantalla

thumb-ntop1.png

thumb-ntop2.png

thumb-ntop3.png

Utilizando túnel ssh para acceder a X

Friday, January 18th, 2008

Como administrador de servidores el 99% de las tareas puede ser hecha desde una consola, pero en ese 1% restante podemos necesitar de una interfaz gráfica. Para acceder al X de un servidor remoto podemos utilizar VNC, XDMCP, entre otros pero enfrentaremos un problema si solamente tenemos acceso a ese equipo a través del puerto de SSH (regularmente el 22), situación que me sucedió y explico como hacerle frente. El primer requisito es que el servidor al cual queremos acceder gráficamente tenga instalado x11vnc el cual no es más que un servidor VNC para X, instalarlo es tán fácil como:

Debian: apt-get install x11vnc

Gentoo: emerge x11-misc/x11vnc

Luego hacemos un tunel a la conexión vnc ejecutando: ssh -t -L 5901:localhost:5900 usuario@servidor

Ya logueados en el server ejecutamos: x11vnc

Por último ejecutamos en la máquina local un visor VNC, por ejemplo: vncviewer localhost:1

Listo! Ya tenemos acceso gráfico al servidor remoto, es de notar que al momento de ejecutar x11vnc este se ejecuta sin contraseña asi que hay que tomar las precauciones del caso; el propio x11vnc en su salida muestra como utilizar contraseñas.