sábado, 21 de abril de 2012

Java conexion a oracle 11g con jar

programa bajado de * @see Enlace: http://www.carpente.es/archivos/fic/opt/acs/jdbc.zip


import java.sql.*;
import oracle.jdbc.*;

/**
 * Programa de muestra para enseñar el uso de JDBC con bases de datos oracle.
 * <p>
 * Compilar: $ javac -classpath .:ojdbc6.jar EjemploJDBC.java
 *<p>
 * Ejecutar: $ java -classpath .:ojdbc6.jar EjemploJDBC
 * <p>
 * @author Adrián Carpente Recouso
 * @see Enlace: http://www.carpente.es/archivos/fic/opt/acs/jdbc.zip
 * En el siguiente en enlace podéis descargaros la presentacion vista en clase sobre JDBC.
 * @version Versión 1.0 - 16 Marzo del 2011
 */
public class EjemploJDBC
{
    //Datos para el acceso a la base de datos
    static String HOST = "X.X.X.X";
    static int PUERTO = 1521;
    static String SID = "Nombre";
    static String USUARIO = "usuario";
    static String CONTRASENA = "contraseña";


    /**
     * Método con el cual se cargan los divers de Oracle que hay en el fichero ojdbc6.jar.
     * En caso de no poder cargar los drivers se muestra por pantalla el motivo y
     * se detiene el programa.  
     */
    public static void cargarDriver()
    {
        try
        {
            //Cargarmos los drivers para manejar la base de datos.
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
        }
        catch(ClassNotFoundException e)
        {
            System.err.println("Drivers de Oracle no encontrados: " + e.getMessage());
            System.exit(0);
        }
        catch(IllegalAccessException e)
        {
            System.err.println("Acceso no permitido a los drivers de Oracle: " + e.getMessage());
            System.exit(0);
        }
        catch(InstantiationException e)
        {
            System.err.println("No se ha podido instanciar los drivers de Oracle: " + e.getMessage());
            System.exit(0);
        }
        catch(Exception e)
        {
            System.err.println("Error cargando los drivers de oracle: " + e.getMessage());
            System.exit(0);
        }
    }

    /**
     * Método que inicial la coñexión en la base de datos Oracle.
     * @param usuario Usuario de la base de datos. En las cuentas de la
     *                FIC es \"login\"
     * @param constrasena Contraseña de la base de datos. En las cuentas de la
     *                    FIC es tu DNI.
     * @param host Dominio o IP del servidor de base de datos. En la FIC es xurxo,
     *             en caso de no funcionar probar con xurxo.cc.fic.udc.es
     * @param puerto Puerto en el que está escuchando el servidor Oracle. En la
     *               FIC usan el 1521 que es el puerto por defecto de Oracle.
     * @param sid Identificador de la instancia de la base de datos. Se puede
     *            obtener desde un terminal ejecutando: $ echo $ORACLE_SID Para la
     *            versión Oracle Database 10g Express el identificador es XE. En
     *            las cuentas que tenemos creadas en la FIC el SID es docenciadb.
     * @return Una instancia de una conexión iniciada en la base de datos. Si se
     *         produce algún problema iniciando la conexión se muestra el error y
     *         devuelve null.
     */
    public static Connection conexion(String usuario, String constrasena,
                                      String host, int puerto, String sid)
    {
        try
        {
            //Iniciamos la conexión en la base de datos.
            return DriverManager.getConnection("jdbc:oracle:thin:" + usuario + "/" + constrasena + "@" + host + ":" + puerto + ":" + sid);
        }
        catch(Exception e)
        {
            System.err.println("Error iniciado la conexión a la base de datos: " + e.getMessage());
            return null;
        }
    }


    /**
     * Método principal en el que se ejecutan todas las consultas SQL.
     */
    public static void main(String args[])
    {
        //Cargamos los driver para trabajar con la base de datos Oracle
        cargarDriver();
      
        Connection conexion = null; //Objeto para la conexión a la BD
        Statement sentencia = null; //Objeto para la ejecutar una sentencia SQL
        PreparedStatement sentenciaP = null; //Objeto para crear sentencias parametrizables y reusables
        ResultSet resultado = null;//Objeto para guardar los resultados de las sentencis

        try
        {
            //Iniciamos la conexión en la base de datos
            conexion = conexion(USUARIO, CONTRASENA, HOST, PUERTO, SID);


            //***********  EJEMPLO DE CONSULTA SQL SENCILLA ************************//
           System.out.println("SELECT ename, job, sal\n" +
                               "FROM emp\n" +
                               "ORDER BY ename;\n");

            //Obtenemos una instancia de Statement con la que enviaremos instrucciones SQL a la base de datos.
            sentencia = conexion.createStatement();

            //creamos y ejecutamos una consulta SQL
            resultado = sentencia.executeQuery("SELECT ename, job, sal " +
                                               "FROM emp " +
                                               "ORDER BY ename");

            //Mostramos los resultados de la consulta
            System.out.println("Nombre  \tTrabajo  \tSueldo");
            while(resultado.next())
            {
                System.out.println(resultado.getString("ename") + "   \t" +
                                   resultado.getString("job") + "  \t" +
                                   resultado.getInt("sal"));
            }
            //*********************************************************************//



          
            //************ EJEMPLO DE CONSULTA SQL PREPARADA **********************//
            System.out.println("------------------------------------------------\n\n" +
                               "SELECT ename, sal\n" +
                               "FROM emp\n" +
                               "WHERE sal > ? AND job = ?;\n");

            //Creamos una sentencia de tipo PreparedStatement con la consulta SQL que queremos realizar
            sentenciaP = conexion.prepareStatement("SELECT ename, sal " +
                                                   "FROM emp " +
                                                   "WHERE sal > ? AND job = ?");
          
            //Asignamos los valores de los parámetros
            System.out.println("Usando: sal > 1000 y job = CLERK");
            sentenciaP.setInt(1, 1000); //El parámetro 1 es un entero con valor 1000
            sentenciaP.setString(2, "CLERK"); //El parámetro 2 es una cadena con el valor "CLERK"
          
            resultado = sentenciaP.executeQuery();

            //Mostramos los resultados de la consulta
            System.out.println("\nNombre   \tSueldo");
            while(resultado.next())
            {
                System.out.println(resultado.getString("ename") + "   \t" +
                                   resultado.getString("sal"));
            }

            //----- Reutilizamos la misma consulta con otros valores de los parámetros --------//

            //Asignamos los nuevos valores de los parámetros
            System.out.println("\nUsando: sal > 1300 y job = SALESMAN");
            sentenciaP.setInt(1, 1300);          //Aun que en este caso se han modificado
            sentenciaP.setString(2, "SALESMAN"); //los 2 parámetros puede modificarse uno solo

            //Ejecutamos la consutla con los nuevos valores de los parámetros
            resultado = sentenciaP.executeQuery();

            //Mostramos los resultados de la consulta
            System.out.println("\nNombre   \tSueldo");
            while(resultado.next())
            {
                System.out.println(resultado.getString("ename") + "   \t" +
                                   resultado.getString("sal"));
            }

            //*********************************************************************//




            //***********  EJEMPLO DE CREACION DE UNA TABLA  **********************//
            System.out.println("------------------------------------------------\n\n" +
                               "CREATE TABLE personas (\n" +
                               "dni VARCHAR(9) NOT NULL,\n" +
                      "nombre VARCHAR(10) NOT NULL,\n" +
                      "fecha_nacimiento DATE NOT NULL,\n" +
                      "sueldo INT DEFAULT 0,\n" +
                      "CONSTRAINT clave_p_persona PRIMARY KEY (dni));\n");

            //Obtenemos una instancia de Statement con la que enviaremos instrucciones SQL a la base de datos.
            sentencia = conexion.createStatement();

            //Creamos la nueva tabla
            sentencia.executeUpdate("CREATE TABLE personas ( " +
                                    "dni VARCHAR(9) NOT NULL, " +
                                    "nombre VARCHAR(10) NOT NULL, " +
                                    "fecha_nacimiento DATE NOT NULL, " +
                                    "sueldo INT DEFAULT 0, " +
                                    "CONSTRAINT clave_p_persona PRIMARY KEY (dni))");

            System.out.println("Tabla personas creada correctamente");
            //*********************************************************************//




            //***********  EJEMPLO DE INSERCION DE DATOS  **********************//
            System.out.println("------------------------------------------------\n\n" +
                               "INSERT INTO personas (dni, nombre, fecha_nacimiento, sueldo)\n" +
                               "VALUES('12345678A', 'Jose', TO_DATE('17/01/1989','dd/mm/yyyy'), 1200);\n");

            //Obtenemos una instancia de Statement con la que enviaremos instrucciones SQL a la base de datos.
            sentencia = conexion.createStatement();

            //Insertamos los datos en la tabla
            int filasInsertadas = sentencia.executeUpdate("INSERT INTO personas (dni, nombre, fecha_nacimiento, sueldo) " +
                                                          "VALUES('12345678A', 'Jose', TO_DATE('17/01/1989','dd/mm/yyyy'), 1200)");        

            if(filasInsertadas == 1)
                System.out.println("Se han insertado " + filasInsertadas + " fila.");
            else
                throw new SQLException("Error insertando datos en la tabla personas.");
            //*********************************************************************//




            //***********  EJEMPLO DE CONSULTA SQL SENCILLA ************************//
            System.out.println("------------------------------------------------\n\n" +
                               "SELECT dni, nombre, fecha_nacimiento, sueldo\n" +
                               "FROM personas;\n");

            //Obtenemos una instancia de Statement con la que enviaremos instrucciones SQL a la base de datos.
            sentencia = conexion.createStatement();

            //creamos y ejecutamos una consulta SQL
            resultado = sentencia.executeQuery("SELECT dni, nombre, fecha_nacimiento, sueldo " +
                                               "FROM personas");

            //Mostramos los resultados de la consulta
            System.out.println("DNI  \tNombre  \tFecha nacimiento  \tSueldo");
            while(resultado.next())
            {
                System.out.println(resultado.getString("dni") + "    " +
                                   resultado.getString("nombre") + "    \t" +
                                   resultado.getDate("fecha_nacimiento") + "\t\t" +
                                   resultado.getInt("sueldo"));
            }
            //*********************************************************************//



          
            //***********  EJEMPLO DE ELIMINACION DE TABLAS  **********************//
            System.out.println("------------------------------------------------\n\n" +
                               "DROP TABLE personas;");

            //Obtenemos una instancia de Statement con la que enviaremos instrucciones SQL a la base de datos.
            sentencia = conexion.createStatement();

            //Eliminamos la tabla
            sentencia.executeUpdate("DROP TABLE personas");
            System.out.println("Tabla personas eliminada correctamente");
            //*********************************************************************//




            //******  EJEMPLO DE VARIAS CONSULTAS EN LA MISMA TRANSACCION  ********//
            System.out.println("------------------------------------------------\n\n"
                             + "INSERT INTO dept (deptno, dname, loc)\n"
                             + "VALUES (50, 'Cálculo', 'A Coruña');\n\n"
                             + "INSERT INTO emp\nVALUES (6655, 'Juan', 'PRESIDENT', NULL, "
                             + "to_date('17/01/89','dd/mm/yy'), 5000,  NULL, 50)\n");

            boolean transaccionConfirmada = false;
            try
            {
                //Desactivamos el modo autocommit
                conexion.setAutoCommit(false);

                //Obtenemos una instancia de Statement con la que enviaremos instrucciones SQL a la base de datos.
                sentencia = conexion.createStatement();

                //Añadimos un nuevo departamento a la tabla dept
                sentencia.executeUpdate("INSERT INTO dept (deptno, dname, loc) " +
                                       "VALUES (50, 'Cálculo', 'A Coruña')");

                sentencia = conexion.createStatement();
                //Añadimos un trabajador al nuevo departamento
                sentencia.executeUpdate("INSERT INTO emp (ename, job, sal) " +
                                       " VALUES ('Juan'" +
                                       ",'PRESIDENT',6655)");
//, NULL, "
  //                                    + "to_date('17/01/89','dd/mm/yy'), "
    //                                  + "5000,  NULL, 50)");

                //Confirmamos la transacción
                conexion.commit();
                transaccionConfirmada = true;

                System.out.println("Departamento y empleado añadidos correctamente");

                //Reestablecemso el modo autocommit
                conexion.setAutoCommit(true);
            }
            finally
            {
                //si ha ocurrido algun problema deshacimos los cambios
                if (!transaccionConfirmada)
                {
                    conexion.rollback();
                    System.out.println("Ha ocurrido un problema.");
                }
            }
            //*********************************************************************//

          
          
          
            //****** ELIMINAMOS LO AÑADIDO EN LA TRANSACCION ANTERIOR ************//
            System.out.println("------------------------------------------------\n\n" +
                               "DELETE FROM emp WHERE empno = 6655;\n"
                             + "DELETE FROM dept WHERE deptno = 50;\n");

            //Obtenemos una instancia de Statement con la que enviaremos instrucciones SQL a la base de datos.
            sentencia = conexion.createStatement();

            //Eliminamos el empleado a la tabla emp
      //      sentencia.executeUpdate("DELETE FROM emp WHERE empno = 6655");

            //Obtenemos una instancia de Statement con la que enviaremos instrucciones SQL a la base de datos.
            sentencia = conexion.createStatement();

            //Elimanos el departamento de la tabla dept
            sentencia.executeUpdate("DELETE FROM dept WHERE deptno = 50");

            System.out.println("Departamento y empleado eliminados correctamente");
            //*********************************************************************//
        }
        catch (Exception e)
        {
            System.err.println("Se produjo el siguiente error: " + e.getMessage());
        }
        finally
        {
            try
            {
                //Cerramos la conexión establecida con la base de datos
                if(conexion != null)
                {
                    conexion.close();
                }

                if (resultado != null)
                {
                    resultado.close();
                }

                if (sentencia != null)
                {
                    sentencia.close();
                }

                if (sentenciaP != null)
                {
                    sentenciaP.close();
                }
            }
            catch(SQLException e)
            {
                System.err.println("Error cerrando la sesión en la base de datos: " + e.getMessage());
            }
        }
    }
}


Java una clase le archivos de directorios y busca palabras en archivos


import java.io.*;
import java.util.Calendar;

class LeeArchivo {
public static void main(String [] arg)
 {
File archivo = null;
try {
//archivo = new File("/home/heli/projava/2012012021-dbJal.log");//"archivo.txt" es el archivo que va a leer
String linea;
//String subcadena = "ORA-";
String [] words = {"ORA-","EXP-"};

       Calendar calendar = Calendar.getInstance();
       int anio_ = calendar.get(Calendar.YEAR);
       int mes_ = calendar.get(Calendar.MONTH)+1;
       int dia_ = calendar.get(Calendar.DAY_OF_MONTH);
System.out.print("año : " + anio_ + " mes: " + mes_ + " dia : " + dia_ + " \n");



//Muestra los archivos en el directorio mencionados
String sDirectorio = "/home/heli/projava/";
File f = new File(sDirectorio);

if (f.exists())
{ // Directorio existe
//System.out.println ("El directorio Existe");
}
else { //Directorio no existe
System.out.println ("El directorio NO existe");
return;
}

File[] ficheros = f.listFiles();
String nombreArchivo ="";
for (int x=0;x<ficheros.length;x++){
nombreArchivo=ficheros[x].getName();
if (nombreArchivo.indexOf("201201")>=0 ) {

System.out.println(" Leyendo archivo : " + nombreArchivo + " \n ");
//Busca palabra coincidente dentro de una linea
FileReader fr = new FileReader (nombreArchivo);
BufferedReader br = new BufferedReader(fr);
//int i,j,aux=0;

while((linea=br.readLine())!=null) {
//busca hora de inicio
if( linea.indexOf("Inicio de Respaldo en Servidor") >= 0  ) {
System.out.print("\n largo : " + linea.length() + " \n");
linea =linea.replace("/"," ") ;

System.out.print(linea + "\n ");
                                                        System.out.print("fecha inicial:" + linea.substring(linea.length()-19, linea.length()) + "\n" );

}

if( linea.indexOf("Termino de Respaldo en Servidor") >= 0  ) {
System.out.print( " fecha final: " +  linea.substring(linea.length()-19, linea.length()) + "\n" );
}

if( (linea.indexOf(words[0]) >= 0) ||  (linea.indexOf(words[1]) >= 0) ) {
System.out.print(linea + "\n");
}
else
{
//System.out.print("NO");
}
}
fr.close();
}
}


  }
catch(IOException a){
System.out.println(a);
 }
 }
}

martes, 10 de abril de 2012

virtualizacion con kvm windows 7 vitualizacion con kvm instalacion de windows 7 virtual

espacio ocupada de instalcion de windows 7 , 8.47 gb
tiempo de instalacion completa 1 hora y 10 minutos

espacio ocupada de instalacion de windows xp 3.13 gb
tiempo de instalacion 40 minutos



Creacion de una maquina virtual nueva

































CLONACION DE UN EQUIPO




nose




crea maquinas virtuales



adicionando volumen



addicionando nueva ruta de deposito de maquinas virtuales



no se ve



asignando storage



finalizando asignacion de puente de red




asignando puente de red



asignando nueva red




inicio de creacion de maquina virtual




Detalle de host de maquinas virtuales




capturando contraseña del usuario



seleccionando modo pausa





antes de clonar para no apagar la maquina lo puse en modo pausa


asignando ruta donde estara el archivo imagen de la maquina virtual




cambio de ruta de la imagen clone























Comando de apagado y reinicio en windows

fuente http://www.taringa.net/posts/info/1612633/Comando-de-apagado-y-reinicio-en-windows.html

1. Primero ir a "Inicio->Ejecutar" o presionar "Tecla + R"

2. Luego escribir
dijo:

shutdown -s -t 5 -c mensaje


o
dijo:

shutdown -r -t 5 -c mensaje


. Donde el parametro "s" es para apagar y el "r" es para reiniciar, el parametro "t" es en que quieres que se ejecute la accion, debe estar en segundos y por ultimo el mensaje.

3. En caso hayas introducido el comando por error y tengar algo importante sin guardar puedes introducir el comando
dijo:

shutdown -a


el cual interrumpira los comandos antes mencionados

lunes, 9 de abril de 2012

Proveedores de internet vigilarán descargas de contenido

22/03/2012
Proveedores de internet vigilarán descargas de contenido
A partir del próximo 12 de julio, empresas proveedoras de servicios de Internet (ISP) como Cablevisión, Verizon y Time Warner Cable, entre otras, comenzarán a vigilar lo que descargan sus clientes a través de su banda ancha en Estados Unidos.

Así lo anunció la Asociación Americana de la Industria Discográfica (RIAA), al considerar que con esta medida se buscará frenar la descarga ilegal de archivos, principalmente música y películas. Cada ISP que se adhiera al programa de la asociación, deberá crear su propio sistema de monitoreo y advertencias para sus usuarios.

Cuando se determine que uno de sus clientes accedió a material pirata, la empresa proveedora le informará que está haciendo algo ilegal. Si continúa con ese tipo de descargas, le volverá a enviar un aviso para preguntar si no ha recibido las anteriores advertencias y le informará de los riesgos que corre. Si persiste por cuarta ocasión, el ISP lanzará una alerta (Mitigation Measure Copyright Alert), con lo cual será posible reducir el servicio del usuario, sin contarle el internet de forma absoluta.

Se espera que la iniciativa comience a operar en julio próximo, ya que el proyecto de la ley para detener la piratería en línea (SOPA, por sus siglas en inglés) ha quedado empantanado en el Congreso de Estados Unidos por la presión del sector de tecnologías de la información, que se opone a las iniciativas de la industria del disco y del cine, según la RIAA.

viernes, 6 de abril de 2012

martes, 3 de abril de 2012

interfaz de red debian 6


en este archivo se agregan la interfaces

root@xxx:~# cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 172.30.10.66
netmask 255.255.255.0
network 172.30.10.0
broadcast 172.30.10.255
gateway 172.30.10.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 193.0.0.127
dns-search liconsa.gob.mx

allow-hotplug eth5
iface eth5 inet static
address 172.30.10.72
netmask 255.255.255.0
network 172.30.10.0
broadcast 172.30.10.255
gateway 172.30.10.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 193.0.0.127
dns-search liconsa.gob.mx

cuando hice cambio a la interface eth0 y reinicie la interface de red , no me tomaba los cambios
# /etc/init.d/networking stop
# /etc/init.d/networking start
ejecutaba el comando ifconfig y el eth0 seguia apareciendo con la ip anterior , despues ejecute el siguiente comando y tomo el cambio en el eth0
# ifup eth0
# ifconfig #veras en cambio
Agregue la interface eth5
# gedit interfaces
y aplique el mismo procedimiento anterior y funciono
# ifup eth5


instalar qemu-kvm en debian Squeeze


url donde me base http://wiki.debian.org/es/KVM 
otra url para consultar http://nuevaeracr.blogspot.mx/2010/06/kvm-en-debian-gnulinux.html
aptitude install kvm virt-managerroot@hydra:~# aptitude install qemu-kvm virt-manager
The following NEW packages will be installed:   bridge-utils{a} ebtables{a} etherboot-qemu{a} gawk{a} libaio1{a} libgtk-vnc-1.0-0{a} libvde0{a} libvdeplug2{a} libvirt-bin{a} libvirt0{a}    libxenstore3.0{a} netcat-openbsd{a} openbios-ppc{a} openbios-sparc{a} openhackware{a} python-gtk-vnc{a} python-libvirt{a} python-pycurl{a}    python-urlgrabber{a} qemu{a} qemu-keymaps{a} qemu-kvm qemu-system{a} qemu-user{a} qemu-utils{a} seabios{a} vde2{a} vgabios{a} virt-manager    virt-viewer{a} virtinst{a}  0 packages upgraded, 31 newly installed, 0 to remove and 0 not upgraded. Need to get 28.1 MB of archives. After unpacking 81.8 MB will be used. Do you want to continue? [Y/n/?] y Get:1 http://debian.mirror.iweb.ca/debian/ squeeze/main gawk amd64 1:3.1.7.dfsg-5 [806 kB]
Get:31 http://debian.mirror.iweb.ca/debian/ squeeze/main virt-viewer amd64 0.2.1-1 [32.0 kB]                                                               Fetched 28.1 MB in 1min 19s (352 kB/s)                                                                                                                     Extracting templates from packages: 100%
Processing triggers for python-central ... Setting up virtinst (0.500.3-2) ... Setting up virt-manager (0.8.4-8) ... Processing triggers for python-support ...
root@hydra:~# useradd -c "usuario libvirt" -d /home/usrvirt/ usrvirt root@hydra:~# passwd usrvirt Enter new UNIX password:  Retype new UNIX password:  passwd: password updated successfully root@hydra:~# chown -R usrvirt.usrvirt /home/usrvirt/ root@hydra:~# adduser usrvirt libvirt Adding user `usrvirt' to group `libvirt' ... Adding user usrvirt to group libvirt Done.