gentoo linux, java, software libre y otras hierbas
Oct, 02 2009 - 6:00 pm

Obtener información del sistema [memoria disponible, %CPU, espacio en disco] en Java

En esta guía aprenderemos a obtener información de los recursos sistema en Java, usando la librería Sigar. Los datos que podremos extraer son los siguientes:

  • Información de la CPU.
  • Espacio en disco disponible.
  • Cantidad de espacio que consume un directorio en específico.
  • Cantidad de memoria RAM disponible y en uso.
  • Información de red (dirección IP, nombre de la NIC, puertos abiertos, tablas de enrutamiento, etc.)
  • Información de los procesos que se están ejecutando en el sistema.
  • Asignación de variables de entorno.
  • Uptime, o cantidad de tiempo que el equipo ha estado encendido.
  • Nombre y versión del sistema operativo.
  • Usuarios logueados actualmente.

Resaltadas en negrita está la información en la que nos concentraremos en el ejemplo. Pero antes aclaremos un poco que es Sigar: el API de Sigar nos proporciona una serie de métodos que nos permiten obtener información del sistema operativo; consta de una librería de Java (.jar) y otras librerías nativas específicas para cada sistema operativo soportado (libsigar-amd64-linux.so, para Linux de 64 bits o sigar-x86-winnt.dll para Windows de 32 bits, por poner un ejemplo).

Teniendo esto en cuenta, para hacer funcionar dicha API en una de nuestras aplicaciones, bastaría con tener el archivo .jar y la librería específica de nuestro sistema operativo. En el desarrollo del ejemplo se usará Eclipse y, aunque se explicará cómo añadir las librerías en el proyecto, se da por conocido el funcionamiento del flag --classpath de los comandos javac y java (obligatorio si no se usa ningún IDE).

El resultado…

Siempre pongo primero el resultado ya que nos aclara la visión de hacia donde vamos, y de paso saber si lo que está aquí es lo que buscamos. Esta es la salida del programa en mi Gentoo Linux:

Leer el resto de la entrada…

15 Comentarios | deja el tuyo

Ago, 30 2009 - 5:30 pm

Lista de códigos de colores para bash

Siempre olvido cómo generar salida coloreada en la consola, y por lo tanto pierdo tiempo buscando en Internet. Así que, aprovechando que tengo fresco dicho tema, mejor dejo un listado y las instrucciones con el ánimo de que sea útil para alguien (y para mi, por supuesto).

  • Negro 0;30
  • Gris oscuro 1;30
  • Azul 0;34
  • Azul resaltado 1;34
  • Verde 0;32
  • Verde resaltado 1;32
  • Cian 0;36
  • Cyan resaltado 1;36
  • Rojo 0;31
  • Rojo resaltado 1;31
  • Púrpura 0;35
  • Púrpura resaltado 1;35
  • Café 0;33
  • Amarillo 1;33
  • Gris 0;37
  • Blanco 1;37


Ejemplos…

Si lo vas a probar usando el comando echo, debes ejecutarlo con el parámetro -e:

echo -e 'Esto es \e[0;31mrojo\e[0m y esto es \e[1;34mazul resaltado\e[0m'

Resultadobash-colors

echo -e 'Así se escribe \e[1;34mG\e[0m\e[1;31mo\e[0m\e[1;33mo\e[0m\e[1;34mg\e[0m\e[1;32ml\e[0m\e[1;31me\e[0m'

Resultado: google

Como puedes observar, se trata de poner lo que quieras colorear entre los caracteres de escape \e[CODIGOm y \e[0m.

5 Comentarios | deja el tuyo

Abr, 16 2009 - 2:14 pm

La clase BigInteger en Java

BigInteger y BigDecimal son clases envoltura de los tipos primitivos int y double, sin embargo tienen ventajas sobre los tipos primitivos. Cuando necesites usar números grandes en Java la mejor opción es usar estas clases, ya que su limite de almacenamiento es el límite de memoria que tenga la máquina virtual de Java.

Además, estas clases proporcionan algunos métodos bastante interesantes, como las operaciones básicas o saber si el número es primo o no. Como siempre vamos con algunos ejemplos de apoyo:

Operaciones básicas con la clase BigInteger

En el siguiente ejemplo se hace uso de los métodos add, substract, multiply y divide para realizar las operaciones básicas de suma, resta, multiplicación y división: Leer el resto de la entrada…

10 Comentarios | deja el tuyo

« Entradas anteriores