28 marzo 2014



Cuando se produce un error en un servidor de producción y no tenemos un plan B para volver a tener nuestro sitio online podemos perder mucho.

Por eso es importante tener backups actualizados o hasta un servidor espejo (mirror) que siempre nos evite un dolor de cabeza cuando falle el servidor primario.

Para esta ocasion el escenario tiene 2 servidores: uno de produccion y el otro de mirror.

Rsync es una utilidad de Unix que sincroniza archivos y directorios de una ubicacion a otra.Podemos hacer uso de
rsync server1:/myfiles server2:mybackupfiles
Eso copiará todo el contenido de myfiles del server1 a la carpeta mybackupfiles en el server2

Primero probemos esto
$ rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/
Y escriban la contraseña que se les solicita. Si esto funciona va todo bien,el problema es que si deseamos hacerlo automatico necesitamos q no sea necesario escribir la contraseña...y eso haremos.

Configurando mirror

Se necesita generar la llave pivada/publica para permitir a ssh trabajr sin contraseña.Esto puede sonar peligroso,y lo es,pero es mejor que guardar la contraseña en texto plano.De todos modos generemos la llave que se usará en este mirror
ssh-keygen -t rsa -b 2048 -f /home/usuario/mirror-rsync-key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again: 
Your identification has been saved in /home/usuario/mirror-rsync-key.
Your public key has been saved in /home/usuario/mirror-rsync-key.pub.
The key fingerprint is:
b8:01:95:91:4c:2d:73:2c:14:2c:ef:ae:e9:58:27:d5 usuario@mirror
The key's randomart image is:
+--[ RSA 2048]----+
|     =*B         |
|    ..O +        |
|    .o =         |
|     ..o         |
|     .+ E        |
|     ..o         |
|    o.o          |
|   o +.          |
|  ..+.           |
+-----------------+
Esto generara dos ficheros en la ruta /home/usuario/ . Ahora enviemos el archivo .pub al servidor principal con scp
$ scp /home/usuario/mirror-rsync-key.pub 
remoteuser@remotehost:/home/remoteuser/  

Configurando servidor de producción:

$ ssh remoteuser@remotehost
remoteuser@remotehost's password: [escribe la contraseña correcta aquí]
$ if [ ! -d .ssh ]; then mkdir .ssh ; chmod 700 .ssh ; fi 
$ mv thishost-rsync-key.pub .ssh/ 
$ cd .ssh/ 
$ if [ ! -f authorized_keys ]; then touch authorized_keys ; 
chmod 600 authorized_keys ; fi 
$ cat mirror-rsync-key.pub >> authorized_keys 
Al abrir el archivo authorized_keys podemos ver algo como esto
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxzfzsUU0gtLAoZRCCEOhRwicc/vsL9WAn
JWJqnZ+/u+teM2zSN6MUNxYDrNhBGsDXSx0qmiOECyDbhpPOCwT/b6hQ4GtU1UOdFl/D5
6rxSaErp3GRuaL2/9ZtxdoyrlBwI7Y47pLOIHAC3miSezgxIDdtGdSpTx8yfoNMqFTTTy
GqFpJFAfvNZZyfRl2trYrCpyB0JQh04FT87SPuWBtm/kHw3rR1Zlh/Aagp6gMREd9htHr
Y4Wop60Ji72+rZAcuJHbOLUB29No50RxCdoXdf/oQVBU6j9itQbGyw6p6Lc/1cojftU7I
SlTNvRYVBLchFtlfT0R1TJGXJCt+5WiVQ== usuario@mirror
A esto le agregaremos unas lineas por motivos de seguridad quedando asi
from="10.1.1.1",command="/home/remoteuser/validate-rsync" 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxzfzsUU0gtLAoZRCCEOhRwicc/vsL9WAnJWJqnZ+
/u+teM2zSN6MUNxYDrNhBGsDXSx0qmiOECyDbhpPOCwT/b6hQ4GtU1UOdFl/D56rxSa
Erp3GRuaL2/9ZtxdoyrlBwI7Y47pLOIHAC3miSezgxIDdtGdSpTx8yfoNMqFTTTyGqFp
JFAfvNZZyfRl2trYrCpyB0JQh04FT87SPuWBtm/kHw3rR1Zlh/Aagp6gMREd9htHrY4W
op60Ji72+rZAcuJHbOLUB29No50RxCdoXdf/oQVBU6j9itQbGyw6p6Lc/1cojftU7ISl
TNvRYVBLchFtlfT0R1TJGXJCt+5WiVQ== usuario@mirror
Donde 10.1.1.1 es la IP del mirror y /home/remoteuser/validate-rsync es un script como se muestra a continuación:
#!/bin/sh 

case "$SSH_ORIGINAL_COMMAND" in 
*\&*) 
echo "Rejected" 
;; 
*\(*) 
echo "Rejected" 
;; 
*\{*) 
echo "Rejected" 
;; 
*\;*) 
echo "Rejected" 
;; 
*\<*) 
echo "Rejected" 
;; 
*\`*) 
echo "Rejected" 
;; 
*\|*) 
echo "Rejected" 
;; 
rsync\ --server*) 
$SSH_ORIGINAL_COMMAND 
;; 
*) 
echo "Rejected" 
;; 
esac
Esto hace que solo el cliente con la ip indicada pueda ejecutar rsync usando esta llave.Por favor asegurarse que  el script sea ejecutable
chmod 755 /home/remoteuser/validate-rsync
Hecho todo esto ya podemos acceder desde el servidor mirror al servidor de produccion con:
$ rsync -avz -e "ssh -i /home/mirror/mirror-rsync-key" remoteuser@remotehost:/remote/dir /this/dir/

Configuracion del Cron

Crear un script llamado rsync-remotehost-backups
#!/bin/sh 

RSYNC=/usr/bin/rsync 
SSH=/usr/bin/ssh 
KEY=/home/mirror/mirror-rsync-key 
RUSER=remoteuser 
RHOST=remotehost 
RPATH=/remote/dir
LPATH=/this/dir/ 

$RSYNC -az -e "$SSH -i $KEY" $RUSER@$RHOST:$RPATH $LPATH
Cuando el script funcione correctamente usar crontab -e y agregar la linea a continuación:
0 5 * * * /home/mirror/rsync-remotehost-backups
Recordar que los los 5 caracteres corresponden a minutos, horas, dia del mes,mes,dia de la semana.






Segundo video de la actualización a IPv6 del curso de actualizacion Cisco CCNA Exploration.

Espero lo disfruten .Saludos


19 marzo 2014



Intentando ejecutar mi aplicación Feriados 2014 en mi laptop recién formateada me surgió el siguiente error
Unexpected exception 'Cannot run program 
"/home/valsrock/Development/adt-bundle-linux/sdk/platform-tools/adb"
:error=2 No such file or directory' while attempting to get adb version from 
/home/valsrock/Development/adt-bundle-linux/sdk/platform-tools/adb
Esto sucede debido a que mi Debian tiene arquitectura AMD-64 .Para solucionar este problema debemos habilitar la arquitectura de 32 bits e instalar las librerias necesarias.

dpkg --add-architecture i386
apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1
Una vez esto ya podemos iniciar Eclipse y ejecutar nuestra maquina virtual.


18 marzo 2014




Primer video de la actualizacion a IPv6 del curso de actualizacion Cisco CCNA Exploration.

Espero lo disfruten .Saludos



09 marzo 2014


Saludos a todos, permítanme compartir estas instrucciones muy útiles antes de poder interactuar con un switch cisco.

Retirar cable de energia
presionar el boton mode (15 seg) con el cable de energia en 220 hasta visualizar el prompt switch

Borrar el archivo de configuración de inicio
switch:flash_init

Checkear si el el switch tiene clave
swich:dir flash: 

Borrar los archivo de configuracion
switch: delete flash:config.text (archivo que guarda la contraseña)
switch: delete flash:vlan.dat (archivo que guarda la configuración de la vlans)

Reiniciar el switch
switch:boot (reinicia el switch)

18 febrero 2014


Estos archivos usarán IPv6 automáticamente si esta disponible, pero también se puede seleccionar el protocolo deseado en los links que aparecen.

File SizeExample / PortTime To Download
Very Large File
1 GB
(1,024 MB)

High-quality movie download
70mins @ 2 Mbps
17mins @ 8 Mbps
5mins @ 30 Mbps
3mins @ 60 Mbps
75secs @ 120 Mbps
IPv4 Port: 80, 81, 8080
IPv6 Port: 80, 81, 8080
Large File
0.5 GB
(512 MB)

Movie download; game demo
35mins @ 2 Mbps
9mins @ 8 Mbps
3mins @ 30 Mbps
70secs @ 60 Mbps
35secs @ 120 Mbps
IPv4 Port: 80, 81, 8080
IPv6 Port: 80, 81, 8080
Large File
200 MB

45 minutes of TV from BBC iPlayer;
large operating system update
14mins @ 2 Mbps
4mins @ 8 Mbps
1mins @ 30 Mbps
27secs @ 60 Mbps
14secs @ 120 Mbps
IPv4 Port: 80, 81, 8080
IPv6 Port: 80, 81, 8080
Medium File
100 MB

High-quality MP3 audio CD download;
2 minute HD (720p) movie trailer
8mins @ 2 Mbps
2mins @ 8 Mbps
27secs @ 30 Mbps
14secs @ 60 Mbps
7secs @ 120 Mbps
IPv4 Port: 80, 81, 8080
IPv6 Port: 80, 81, 8080
Medium File
50 MB

MP3 audio CD download
4mins @ 2 Mbps
1min @ 8 Mbps
14secs @ 30 Mbps
7secs @ 60 Mbps
4secs @ 120 Mbps
IPv4 Port: 80, 81, 8080
IPv6 Port: 80, 81, 8080
Small File
20 MB

Standard quality movie trailer
80secs @ 2 Mbps
20secs @ 8 Mbps
6secs @ 30 Mbps
3secs @ 60 Mbps
1.5secs @ 120 Mbps
IPv4 Port: 80, 81, 8080
IPv6 Port: 80, 81, 8080
Small File
10 MB

A 30 second video clip
40secs @ 2 Mbps
10secs @ 8 Mbps
3secs @ 30 Mbps
1.5secs @ 60 Mbps
0.7secs @ 120 Mbps
IPv4 Port: 80, 81, 8080
IPv6 Port: 80, 81, 8080
Extra Small File
5 MB

A high quality 5 minute MP3 music file
20secs @ 2 Mbps
5secs @ 8 Mbps
1.5secs @ 30 Mbps
0.7secs @ 60 Mbps
0.4secs @ 120 Mbps
IPv4 Port: 80, 81, 8080
IPv6 Port: 80, 81, 8080
MB = Megabyte; GB = Gigabyte

20 enero 2014


No hay mucho que decir porque la imagen habla por sí sola... Este cuadro resume muy bien los joins que se usan en SQL a menudo y lo comparto con todos ustedes.

Espero que sea tan útil como para mi.

Saludos

18 enero 2014

Buenas tardes tengas tod@s ustedes. Métodos de activación existen muchas, desde el famoso Loader que se usaba en Windows 7 hasta la herramienta Microsoft Office Toolkit, todas son buenas hasta cierto punto, pero si podrías activar tu Windows con una licencia original, ¿no lo harías? apuesto a que sí.

La info completa puedes conseguirla a través de este link pero les evitaré el _effort_ para algunos que no entiendan inglés.

Empecemos:

1.- Si recién vas a instalar tu Windows 8 (muy a la moda no? xD) usa uno de los seriales de instalación que la página provee: anexa este código /X6KQy6iR a www.pastebin.com

2.- Ya tienes todo instalado, ¡enhorabuena! ahora pasemos a la activación:

Mismo principio: Anexa este código /WdTmgL6q a www.pastebin.com

Bien, ahí encontrarás las licencias que vamos a usar para la activación de nuestro Windows 8.1, cabe aclarar que lo haremos vía Skype, así que será mejor que lo tengas instalado y sino, pues, ¿a qué esperas?.

3.- Deshabilita tu conexión a internet.



4.- Clic derecho en el Menú Inicio y elige la opción "Símbolo del sistema (administrador)"


5.- Tipea lo siguiente y luego presiona enter:

slmgr.vbs -ipk <Product Key>

6.- Ahora, sin cerrar el prompt tipea lo siguiente y luego presiona enter: slui 4



7.- Selecciona el País o Región, puedes escoger Perú o Reino Unido, igual el número al que llamaremos es el del Reino Unido xD. Clic en Siguiente.



8.- Habilita tu conexión a internet.

9.- Abre Skype.

Primero elige: Reino Unido
Marca el número: 448000188354

Bueno acá hay que tener ¡MUCHO CUIDADO! ... No hay que ser un capo en inglés para entender lo que el bot te diga, pero te lo facilito.

Primero que nada, por seguridad y ese tipo de temas, te preguntara que ingreses un número que él mismo dirá. Es un inglés bastante entendible, no creo que haya problemas para poder identificar el número.

Segundo, te preguntará si eres Usuario o Empresa (tipo de licencia), presionarás 1.

Te pedirá ingresar el ID de instalación (paso 7). Dicho ID lo ingresarás con el teclado de Skype.



Tercero, te preguntará para cuántas computadoras querrás la licencia, presionarás 1.

Una vez ingresado el ID y respondido a las preguntas, te lanzará el ID que ingresarás en los cuadros en blanco. Dicho ID es deletreado número por número, no tendrás dificultad alguna para ingresarlo dentro del cuadro, para cuando haya finalizado cada Bloque (Block A, B, C, ..., H) presionarás la tecla hash (#), y si no escuchaste bien el número del Bloque puedes presionar la tecla asterisco (*) para repetir el último bloque.

Una vez ingresado todos los bloques, clic en siguiente y ¡HURRA POR TI! ya tienes tu Windows 8.1 ACTIVADO PERMANENTEMENTE, y si no me crees, abre "Símbolo de sistema (administrador)" y tipea: slmgr /xpr presiona enter y ¡SORPRESA!


P.D.- Si de casualidad en Pastebin no hay licencia, no te asustes, solo sé paciente hasta que publiquen una. Es constantemente actualizado. ¡Buena Suerte! ;)

20 diciembre 2013

Ordenar las ips de una base de datos puede ser una tarea algo complicada, ya que por lo general suelen guardarse en un campo de texto. Esto significa que al momento de ordenar el campo de Ips lo hará alfabeticamente provocando resultados como este:

140.203.115.179
140.203.115.18
140.203.115.180
140.203.115.189
140.203.115.19
140.203.115.190
140.203.115.191

Para solucionar este problema emplearemos la función INET_ATON() que recibe una cadena en formato ip y obtiene un numero en decimal .

Con este codigo podremos ordenar sin problemas nuestras ip:

select Ip from ipblock order by inet_aton(Ip) 

140.203.115.18
140.203.115.19
140.203.115.179
140.203.115.180
140.203.115.189
140.203.115.190
140.203.115.191

Espero les haya servido como a mi .

Saludos

12 diciembre 2013



Hay dos formas de obtener el Android Device ID:

  1. Escribe *#*#8255#*#* en tu teclado telefónico como si fueras a llamar a un numero y pronto veras algo como la siguiente imagen donde aparecerá tu Device ID en GTalk Service Monitor.

  2. La otra opcion es descargar una aplicacion desde google play llamada "Device ID" que rápidamente revelará cual es tu Android Device ID.
Subscribete a mi RSS Sigueme en Twitter!