domingo, 31 de enero de 2016

Configurar cadena de conexión con Oracle en Amazon RDS (tnsname)

Es posible que muchos de vosotros os desesperéis a la hora de configurar una cadena de conexión que os permita conectaros con vuestras instancias RDS de tipo Oracle haciendo uso del tnsname.ora. Mediante el presente artículo, pretendo describiros de una forma breve y sencilla como tenéis que configurar la cadena de conexión. En primer lugar, los datos que necesitáis son los siguientes:

  • Host
  • Puerto
  • SID
El Host será el endpoint de la instancia RDS, el puerto el 1521 y el SID el DB Name. Para obtener estos datos, dentro de RDS, seleccionar vuestra instancia y pulsar sobre "See Details".

Detalles instancia RDS

Una vez dentro de los detalles, podreís encontrar los valores que buscáis tal y como se aprecia en la siguiente imagen:

Detalles específicos instancia RDS

La cadena de conexión que tendréis que emplear en el tnsnames será del siguiente estilo:

ddbb =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = tunombre.eu-west-1.rds.amazonaws.com)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = ORCL)
    )
  )

Con estos parámetros, ya podréis conectaros a vuestra instancia RDS.

sábado, 22 de agosto de 2015

Obtener el SID de un usuario en Windows

Todos las cuentas de usuario en Windows disponen de un identificador denominado SID. Es posible, que tras analizar eventos de auditoría, nos encontremos con el SID en vez del nombre del usuario. A tal efecto, expongo varias formas sencillas para obtener el usuario a partir de su SID. Si queremos obtener el SID de un usuario local, ejecutaremos el siguiente comando:

wmic useraccount where name='USUARIO' get sid

Nota: Sustituir la palabra usuario por el usuario a buscar.


Por el contrario, si queremos obtener el nombre de usuario a partir de su SID ejecutaremos el siguiente comando:

wmic useraccount where sid='SID' get name

Nota: Sustituir la palabra SID por el SID del usuario a buscar.


Finalmente, para hacer cualquier consulta para un usuario del dominio, se añadirá el campo domain tal como se puede apreciar en el siguiente comando:

wmic useraccount where (sid='SID' and domain='Dominio') get name

Nota: Sustituir la palabra SID por el SID y Dominio por el dominio del usuario a buscar.


viernes, 21 de agosto de 2015

Conectarse a un cluster Oracle a través de ODBC en Windows Server 2012

Suele ser común establecer conexiones ODBC en Windows para poder conectarse a bases de datos como las de Oracle. El problema se produce cuando la base de datos a la cual queremos conectarnos es un cluster y responde a múltiples direcciones IP. A continuación, procederé a describir los pasos necesarios para conectarse por ODBC a una base de datos Oracle que está montada en un cluster. 

En primer lugar necesitaremos descargarnos el paquete instant client basic de Oracle así como el instant client odbc. Es muy importante, descargarse la versión que coincida con la base de datos Oracle a la cual queremos conectarnos. A modo de ejemplo, si nos conectamos a un Oracle 12, nos bajaremos el paquete 12. Podéis bajaros el paquete desde el siguiente enlace

Una vez descargados los dos paquetes, fusionaremos los mismos, es decir añadiremos al contenido del instan client basic, el contenido de instant client ODBC. No os preocupéis si sobrescribe algún fichero, no pasa nada. 

A continuación, almacenaremos la carpeta con los archivos de instant client en una ubicación que deberemos de recordar, por ejemplo en la siguiente:

C:\instantclient_12_1

Posteriormente, se añadirá como variable de usuario ORACLE_HOME enlazando a la ruta de instant client. 


Para verificar si la variable se ha añadido correctamente, se podrá realizar un echo de la misma en un terminal.



El siguiente paso consistirá en generar un fichero con nombre tnsnames.ora dentro de la siguiente ruta de instant client:

C:\instantclient_12_1\network\admin

Nota: Es muy importante que el fichero generado tenga el nombre bien puesto, os aseguro que en este paso falla mucha gente.

En el fichero en cuestión, se añadirán las cadenas de conexión correspondiente, A modo de ejemplo os pongo una:


cronicas.de.un.informatico1 =

(DESCRIPTION =

(LOAD_BALANCE = ON)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = hostname1)(PORT = 1528))

(ADDRESS = (PROTOCOL = TCP)(HOST = hostname2)(PORT = 1528))

)

(CONNECT_DATA =

(SERVICE_NAME = croni1)

)

)

cronicas.de.un.informatico2 =

(DESCRIPTION =

(LOAD_BALANCE = ON)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = hostname1)(PORT = 1527))

(ADDRESS = (PROTOCOL = TCP)(HOST = hostname2)(PORT = 1527))

)

(CONNECT_DATA =

(SERVICE_NAME = croni2)

)

)

El siguiente paso consistirá en instalar el driver ODBC. A tal efecto, ejecutaremos un terminal como administrador, accederemos a la ubicación de instant client y ejecutaremos el siguiente comando:

odbc_install.exe


Una vez instalado el driver, ejecutaremos el complemento de Windows ODBC DATA SOURCE Administrador de 64 bits.


Nota: Si se ha empleado el driver de 32 bits, ejecutar el complemento de 32 bits.

A continuación, agregaremos un DSN de sistema seleccionado como origen de datos el controlador Oracle in instantclient_12_1. En caso de error, ver la nota final del articulo.


Finalmente, dentro de TNS Service Name, ya se desplegarán las cadenas de conexión que hemos generado previamente en el fichero tnsnames.ora


IMPORTANTE: No os desquiciéis si en el momento de añadir el origen de datos os devuelve un error indicando una referencia a SQLORAS32.DLL Si os sucede dicho error, instalar el paquete Microsoft Visual C++ 2010 Redistributable Package x64 (x86 si vuestro servidor no es de 64). Una vez instalado, probar varias veces a añadirlo hasta que funcione. En algunos casos es necesario reiniciar el servidor.




Mostrar equipo en el escritorio de Windows Server 2012

Creo esta entrada para indicar como añadir fácilmente el icono de equipo en el escritorio de Windows Server 2012. En primer lugar, se pulsará la tecla windows + r y se ejecutará el siguiente comando:

"%Systemroot%\system32\rundll32.exe" shell32.dll,Control_RunDLL desk.cpl,,0

ejecutar comando

Tras la ejecución del comando, el sistema nos mostrará la siguiente ventana, en la que tendremos que seleccionar la casilla de verificación de "Equipo". 


Finalmente, pulsaremos el botón aceptar para confirmar la adición del icono en el escritorio. 



domingo, 22 de febrero de 2015

Configurar un servidor DHCP en Ubuntu / Debian

Es posible que tengáis la necesidad de configurar un servidor dhcp y queráis emplear un servidor Ubuntu o Debian. Para ello, he configurado esta pequeña guía para que os sirva de aprendizaje.

En primer lugar necesitáis instalar el software ISC dchp server a través de le ejecución del siguiente comando:

apt-get install isc-dhcp-server

Posteriormente, es recomendable que configuréis el servidor para prevenir las actualizaciones a través de DNS. A tal efecto, se editará el siguiente archivo de configuración:

nano /etc/dhcp/dhcpd.conf

Nota: Los siguientes cambios se deberán de realizar en dicho archivo de configuración.

Una vez en modo edición, se modificará la siguiente directiva de la siguiente forma:

ddns-update-style none;

En el caso de que el servidor sea el principal, se descomentará la siguiente línea:

authoritative;

A continuación se establecerá el nombre de dominio así como los servidores DNS, modificando las siguientes líneas:

#option definitions common to all supported newtorks...
option domain-name "cronicasdeuninformatico.com";
option domain-name-server 8.8.8.8, 8.8.4.4

Nota: En este caso se ha empleado el dominio de cronicasdeuninformatico y los servidores dns de Google.

Se recomienda aumentar el tiempo de concesión modificando las siguientes directivas:

default-lease-time 86400;
max-lease-time 604800;

Nota: Estos parámetros variarán en función de las necesidades de cada usuario.

Finalmente, será necesario adaptar la configuración que se necesite acerca de los parámetros de red correspondientes:
 
subnet 192.168.1.0 netmask 255.255.255.0 { 
    range 192.168.1.30 192.168.1.50; 
    option subnet-mask 255.255.255.0; 
    option broadcast-address 192.168.1.255; 
    option routers 192.168.1.10; 
}

Nota: En este caso se ha configurado el rango de concesión que varía entre la dirección 192.168.1.30 - 192.168.1.60 También ha sido necesario especificar la máscara de red y la dirección de broadcast. Finalmente, destacar que es necesario establecer la puerta de enlace, en este caso 192.168.1.10

Una vez modificado el fichero, se guardará el mismo. Para verificar la sintaxis, se ejecutará el siguiente comando:

dhcpd -t

Para iniciar el servidor DHCP se ejecutará el siguiente comando:

sudo service isc-dhcp-server start

Para pararlo ejecutar el siguiente comando:

sudo service isc-dhcp-server stop

Finalmente destacar que es posible configurar parámetros adicionales como por ejemplo los siguientes:

option ntp-servers 192.168.1.200; 
option netbios-name-servers 192.168.1.200
option netbios-node-type 8;

sábado, 21 de febrero de 2015

Añadir y eliminar registros en Bind9 a través de comandos en Ubuntu/Debian

Aquellas personas que empleen Bind9 pueden estar interesadas en el envío de comandos que permitan añadir o eliminar registros en Bind9. Para ello, es necesario tener habilitada la actualización de registros en dicho servidor DNS. A continuación os describo una forma para enviar actualizaciones de punteros:

Nota: la dirección IP será la de vuestro servidor DNS. La zona el dominio que queráis modificar. El host, el puntero a modificar.

Eliminar un registro DNS:

/usr/bin/nsupdate
server 127.0.0.1

zone cronicasdeuninformatico.com
update delete host.cronicasdeuninformatico.com
send
quit

Eliminar un registro DNS a través de un script:

echo "server 127.0.0.1" > fichero

echo "cronicasdeuninformatico.com" > fichero

echo "update delete host.cronicasdeuninformatico.com > fichero

echo "send" > fichero

echo "quit"  > fichero


/usr/bin/nsupdate -d fichero

Nota: En este caso es necesario indicar el tipo de puntero DNS a añadir, en este ejemplo de tipo A. De la misma forma, es muy importante que empleéis correctamente el TTL que tengáis configurado en vuestro servidor DNS, en este caso 604800.

Añadir un registro DNS:

/usr/bin/nsupdate
server 127.0.0.1

zone cronicasdeuninformatico.com
update add host.cronicasdeuninformatico.com 604800 A 192.168.1.1
send
quit

Añadir un registro DNS a través de un script:

echo "server 127.0.0.1" > fichero

echo "cronicasdeuninformatico.com" > fichero

echo "update add host.cronicasdeuninformatico.com 604800 A 192.168.1.1 > fichero

echo "send" > fichero

echo "quit"  > fichero


/usr/bin/nsupdate -d fichero

viernes, 20 de febrero de 2015

Cuidado al emplear verbose con el comando tar y otros a través de cron en Ubuntu / Debian

Si eres un apasionado de los Scripts y te interesa ejecutarlos periódicamente a través del cron del sistema, ten cuidado si usas opciones de verbose. En mi caso, me pasó con el comando tar. Había generado un script que me permitía realizar mis copias de seguridad y acostumbrado a emplear tar cvfz, dicho script funcionaba correctamente. El problema se producía al emplear cron. Por algún oscuro motivo, no era capaz de que mi Script funcionara correctamente a través de cron.

Tras un análisis de la situación y recurrir a Internet, encontré múltiples casos en los cuales había mas gente a la cual le ocurría lo mismo. El motivo:

Existe un problema en Ubuntu cuando se emplean trabajos a través de cron que generan salidas. Cron intenta enviar un correo al usuario para informarle, pero como no hay definido ningún agente de transferencia de correo, esta salida no se puede enviar. 

Para solventar este problema se pueden realizar dos acciones:

  1. Añadir la siguiente línea en el encabezado de cron:
    MAILTO=""
  2. Quitar la parte del verbose a los comandos que emplees en el cron. Por ejemplo, en el caso de tar cvfz sería quitar la "v". tar cfz
Espero que el artículo sea de vuestra ayuda.

jueves, 19 de febrero de 2015

Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY XXXXXXXXXXXXX Ubuntu

Es posible que al añadir un determinado repositorio, el sistema nos indique el siguiente error cuando ejecutemos un apt-get update:

Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY XXXXXXXXXXXXX

Navegando por Internet puedes encontrar diversas soluciones para resolver el problema. La que a mí me ha funcionado mejor es la del blog de diversidadyunpocodetodo pero adaptada a mis necesidades ya que el identificador no correspondía al de mi caso. 

A tal efecto, es necesario anotar el identificador obtenido y tratar de volver a obtener la llave pública correspondiente. Para ello, ejecutaremos el siguiente comando:

gpg --keyserver keyserver.ubuntu.com --recv XXXXXXXXX
gpg --armor --export XXXXXXXXX | sudo apt-key add -

Nota: Será necesario sustituir XXXXXXX por el identificador que devuelva el error ya que puede ser distinto en función de cada caso.

Finalmente, bastará con volver a ejecutar un apt-get update para que los repositorios vuelvan a actualizarse de nuevo correctamente. Destacar que si al ejecutar el comando gpg --keyserver el sistema no devuelve ninguna respuesta, es posible que nos encontremos en una red en la cual exista un bloqueo a peticiones de este tipo.


martes, 10 de febrero de 2015

Problema de pantalla negra al instalar Ubuntu en ordenadores con tarjeta gráfica Nvidia

De vez en cuando, Linux nos suele jugar algún que otro problema a la hora de emplear drivers propietarios. En el caso de la instalación de Ubuntu, es normal que muchos de vosotros no podáis completarla debido a que os sale una pantalla negra. De la misma forma, este problema suele estar asociado al uso de los drivers propietarios de Nvidia.

Para solventar este problema, es necesario acceder a la parametrización de la instalación de Ubuntu. Para ello, tenéis que pulsar la tecla c y añadir la opción nomodeset de la siguiente forma:

Si instalas de manera gráfica, pulsar F6 "Otras opciones" y seleccionar nomodeset. Encima de las opciones tendrás que escribir después de quit splash -- nomodeset. 

Instalar ubuntu nomodeset

En el caso de que la instalación sea en modo comando, existe una opción que permite especificar los comandos. Concretamente pulsando la tecla "c". Bastará con añadir después de quit splash la opción nomodeset de la siguiente forma:

quit splash -- nomodeset

En el caso de que encontréis otras soluciones no dudéis en publicarlas en los comentarios.

Finalmente, destacar que cuanto termine la instalación se recomienda que instaléis los drivers propietarios de Nvidia.

lunes, 4 de agosto de 2014

Eliminar limitación de 1000 filas en MySQL Workbench

Seguramente que a muchos os ha pasado que el limite de 1000 filas de MySQL Workbench no os satisface debido a que queréis visualizar mas filas. Cambiar la configuración en MySQL Workbench para poder visualizar filas adicionales es muy sencillo.

En primer lugar, se accederá a la pestaña Edit y luego a Preferences. Posteriormente, se accederá a la pestaña SQL Queries. En dicha pestaña será necesario quitar la opción de "Limit Rows" tal y como se aprecia en la siguiente imagen:

Quitar limite 1000 MySQL Workbench