martes, 15 de noviembre de 2011

Encender un ordenador con wakeonlan en Ubuntu

El problema es que las últimas versiones de Ubuntu desactivan el arranque remoto mediante la tarjeta de red (wakeonlan). Para evitar este problema, se puede activar realizando los siguientes pasos:

  1. Instalar los paquetes ethtool y wol (wakeonlan).
    El paquete ethtool se utiliza para activar la tarjeta en modo escucha cuando se apague el ordenador.
    El paquete wol, sirve para encender un equipo remotamente mediante el comando wakeonlan.
  2. Ahora, hay que ver qué interface de red estamos utilizando. Esto se logra mediante el siguiente comando linux:

    ifconfig

  3. Por último, una vez sepamos la interface que utilizamos, escribimos lo siguiente:

    sudo ethtool -s eth1 wol g

    Siendo eth1 la interfaz de red con la tarjeta en modo escucha.

martes, 6 de abril de 2010

Cosas a tener en cuenta cuando se programa en Linux/Windows

1. Como el símbolo separador de fichero es distinto para Windows como para sistemas Unix, se debe utilizar en JAVA la constante File.separatorChar en vez de '\' (backslash) o '/' (slash).

2. Para evitar los problemas de codificación (que es distinto en Windows y Linux), no utilizar archivos de texto, sino archivos XML. En tal caso, ASEGURAR DE PONER LA CABECERA XML. Por ejemplo:


o


Esto permitirá que cualquier analizar de XML interprete CORRECTAMENTE su contenido.

3. Cuando no se vaya a recuperar de una excepción... ¡¡¡NO IMPRIMÁIS MENSAJES!!! ¡Lanzar la excepción hacia arriba! Es decir, añadir clausulas throws a la funciones.

martes, 1 de septiembre de 2009

Comando para ver qué versión de Ubuntu tienes instalada

$lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 7.10
Release: 7.10
Codename: gutsy

viernes, 12 de junio de 2009

Quitar los ^M de los archivos

Obtenido de http://www.lsi.upc.edu/lclsi/FAQ/HTMLs/UNIX/SP/comandos/CntrlM_FichDOS.html

Al pasar un fichero de DOS a Unix pueden quedar caracteres ocultos que podemos no desear. Para quitarlo solo es necesario:

    $ dos2unix fichero_entrada fichero_salida

Si solo se desea imprimirlo

    $ dos2unix fichero |lpr -Pimpresora

Encontrar el número de serie de dispositivos en Linux/Windows

Encontrar el número de serie del disco duro y de la placa base en Windows

En esta página http://www.rgagnon.com/javadetails/java-0580.html aparece esta información. Utiliza un visual basic script que lo genera al momento en un archivo temporal.

Motherboard serial number

import java.io.File;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class MiscUtils {
private MiscUtils() { }

public static String getMotherboardSN() {
String result = "";
try {
File file = File.createTempFile("realhowto",".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);

String vbs =
"Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"
+ "Set colItems = objWMIService.ExecQuery _ \n"
+ " (\"Select * from Win32_BaseBoard\") \n"
+ "For Each objItem in colItems \n"
+ " Wscript.Echo objItem.SerialNumber \n"
+ " exit for ' do the first cpu only! \n"
+ "Next \n";

fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
input.close();
}
catch(Exception e){
e.printStackTrace();
}
return result.trim();
}

public static void main(String[] args){
String cpuId = MiscUtils.getMotherboardSN();
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, cpuId, "Motherboard serial number",
javax.swing.JOptionPane.DEFAULT_OPTION);
}
}


Hard disk serial number
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class DiskUtils {
private DiskUtils() { }

public static String getSerialNumber(String drive) {
String result = "";
try {
File file = File.createTempFile("realhowto",".vbs");
file.deleteOnExit();
FileWriter fw = new java.io.FileWriter(file);

String vbs = "Set objFSO = CreateObject(\"Scripting.FileSystemObject\")\n"
+"Set colDrives = objFSO.Drives\n"
+"Set objDrive = colDrives.item(\"" + drive + "\")\n"
+"Wscript.Echo objDrive.SerialNumber"; // see note
fw.write(vbs);
fw.close();
Process p = Runtime.getRuntime().exec("cscript //NoLogo " + file.getPath());
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
input.close();
}
catch(Exception e){
e.printStackTrace();
}
return result.trim();
}

public static void main(String[] args){
String sn = DiskUtils.getSerialNumber("C");
javax.swing.JOptionPane.showConfirmDialog((java.awt.Component)
null, sn, "Serial Number of C:",
javax.swing.JOptionPane.DEFAULT_OPTION);
}
}


Encontrar el número de serie del disco duro y de la placa base en Linux

Sin permiso de superusuario

Con el comando lshal, hay que encontrar el número de serie de la placa base entre los parámetros que te devuelve. Aunque hay que instalar el paquete hal con el siguiente comando:

sudo apt-get install hal


Con permiso de superusuario

El número de serie del disco duro se encuentra con el siguiente comando:

sudo /sbin/hdparm -i /dev/sda1

viernes, 9 de enero de 2009

Como cambiar la hora (en modo texto) en Ubuntu

Fuente de: http://www.ubuntu-es.org/index.php?q=node/3950

Estando como root, tienes que poner:

date --set "2008-05-10 11:25"

y como lei en algun lado, es mejor sincronizar el hardware para que luego el bios no te cambie la hora:

hwclock --set --date="2008-05-10 11:25"

Cambiar la JVM de Ubuntu gij por sun-java6-jre

Obtenido de: http://www.guia-ubuntu.org/index.php?title=Java

sudo apt-get install sun-java6-jre
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-6-sun/bin/java" 1
sudo update-alternatives --set java /usr/lib/jvm/java-6-sun/bin/java