13 de octubre de 2012

Screen, comados básicos.

Comandos básicos para screen:
  • $screen -ls  ....................... List sessions.
  • $ screen -x  ...................... Attach session.
  • CONTROL a d .....................Detach screen.
  • CONTROL a S ................. Dividir pantalla horizontal.
  • CONTROL a | .....................Dividir pantalla vertical.
  • CONTROL a TAB ............Cambiar de semipantalla.
  • CONTROL a K .....................Cierra consola actual.
  • CONTROL a X ....................Elimina división de pantalla actual.
  • CONTROL a Q ..............Elimina todas divisiones menos la actual.
  • CONTROL a \  ............. Cierra todas las consolas y sale de screen.

6 de septiembre de 2012

Android virtualizado en VirtualBox

Receta:

1) Descargar .iso
http://code.google.com/p/android-x86/downloads/list?q=label:android-x86

... yo he usado la versión para eeepc.

2) Configurar la máquina virtual:
- Direccionamos el CD al .iso que usaremos como liveCD.
- También se puede hacer un disco virtual e instalarlo.
- NAT, PCnet-FAST III (Am79C973)

3) Arrancamos la maquina virtula Android.

4) Aceptamos las opciones de configuración.

5) Para que funcione la red e internet:
- Abrir el Terminal de las Apps
- teclear:

          su
          dhcpcd eth0
          setprop net.dns1 8.8.8.8

Probamos que funciona de red:
          ping www.google.com

 ok, ya podemos acceder a internet desde el virtual Android.

6) Desactivar el bloqueo de la pantalla por que no he conseguido averiguar como se desbloquea con el ratón!!! ... ...Ya he averiguado como: se hace con la tecla home durante 1 segundo.

Refs.:
http://software.intel.com/en-us/blogs/2011/10/11/getting-started-on-android-for-x86-step-by-step-guide-on-setting-up-android-2223-for-x86-testing-environment-in-oracle-virtualbox/

 http://maketecheasier.com/install-android-4-0-ice-cream-sandwich-in-virtualbox/2012/03/02

23 de agosto de 2012

Cambiar resolución de la consola linux con Grub2

La resolución inicial configurada en debian6.0 de 800x600 es poco práctica ya en la consola el texto es muy grande y se ven muy pocos caracteres.

Para cambiar esto a una mayor resolución, digamos 1024x768, desde el arranque de linux modificaremos grub2 del siguiente modo:

1) Editar el fichero /etc/default/grub
     añadir las lineas:

     GRUB_GFXMODE=640x480
     GRUB_GFXPAYLOAD_LINUX=1024x768

que indican respectivamente la resolución del menu de inicio de grub y la resolución de la consola.

2) Actualizar el fichero de configuración grub2

     # update-grub

3) Reiniciar el sistema.

Si hay algún problema con la resolución y se queda la pantalla en negro, se puede acceder al menu de configuración en el arranque de grub2 con la letra "e", cambiar los comandos de arranque, poner al final de la linea del kernel "vga=640x480" que seguro que funciona, arrancar con 'control-x' y arreglar los ficheros de configuración de grub2 que no funcionen.

Para ver las resoluciones soportadas al arranque de grub2 teclear "c" para acceder a la consola y con el comando "vbeinfo" nos indicará todas las resoluciones que soporta nuestra tarjeta gráfica.

Ref.: http://wiki.sabayon.org/index.php?title=HOWTO:_Using_Custom_Framebuffer_Resolution_with_GRUB2

9 de agosto de 2012

Reparar tablas rotas MyISAM en MySQL

MySQLUno de los problemas que aparecen de forma recurrente aunque no con de forma habitual son en las bases de datos MySQL son las tablas rotas. Se suelen producir cuando las tablas no se han cerrado correctamente y lo típico es cuando se apaga el ordenador en caliente, con MySQL metiendo o consultando datos.

Las tablas marcadas como crashed deben repararse lo cual, si las tablas son extensas, lleva su tiempo.

Para tablas MyISAM tenemos dos comandos:

msqlcheck: comprueba tablas con en servidor MySQL en funcionamiento.
myisamchk: comprueba tablas con en servidor MySQL parado.

Si el problema es serio usar myisamchk que es mas potente. Parar el servidor MySQL y reparar el problema.


Las bases de datos MySQL se encuentran en el directorio /var/lib/mysql/

Dentro de este directorio hay subdirectorios con el nombre de cada base de datos que contienen los ficheros correspondientes a cada tabla.

Comandos:

  • myisamchk --check               /var/lib/mysql/mybasededatos/*.MYI
  • myisamchk --silent --fast      /var/lib/mysql/mybasededatos/*.MYI
  • myisamchk –recover -q        /var/lib/mysql/mybasededatos/*.MYI
  • myisamchk –recover            /var/lib/mysql/mybasededatos/*.MYI
  • myisamchk –safe-recover    /var/lib/mysql/mybasededatos/*.MYI
  • myisamchk –o                      /var/lib/mysql/mybasededatos/*.MYI


Protocolo:

0) Parar el servidor MySQL:
         # service mysql stop

1) Chequear integridad de todas las tablas de todas las bases de datos MySQL:
     Rápida: solo chequea las que están marcadas como rotas:

         myisamchk --silent --fast /var/lib/mysql/*/*.MYI

     Este comando esta bien para detectar de forma rápida si hay tablas marcadas como crased.
2) Reparando las tablas rotas:
     Como son procesos que duran mucho tiempo es recomendable probar primero la reparación rápida.

     Reparación rápida: solo intenta reparar el arbol del índice:

         # myisamchk -r -q tabla.MYI

     Reparacion estandard:
         # myisamchk -r tabla.MYI

     Reparación safe-recover, no esta en el manual? 
         # myisamchk -r --safe-recover tabla.MYI


3) Optimizar las tablas de una base de datos

         # myisamchk -o tabla.MYI                            una tabla
         # myisamchk -o -B basededatos                  todas las tablas de las bases indicadas
         # myisamchk -o /var/lib/mysql/*/*.MYI          optimizar todo


También he visto este comando que no he usado:
# myisamchk --silent --force --update-state -O key_buffer=64M -O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M *.MYI

Ref.:

8.6. El programa mysqlcheck para mantener y reparar tablas


7 de agosto de 2012

Nueva presentación de las búsquedas de documentos pdf en www.pedeefes.com

www.pedeefes.com
La presentación de documentos del indexador y buscador de documentos pdf  - www.pedeefes.com se ha renovado, siendo más directo y ágil.

Se ha simplificado la cantidad de información para cada documento obtenido de la búsqueda y se ha diseñando una presentación tipo librería que permite una navegación más rápida por los documentos.


 ...


Cada documento encontrado en la búsqueda presenta la siguiente información:
  • Un preview de la primerá página del documento .pdf.
  • Cada imagen de los documentos es un link directo al documento que nos permite ver o descargar el documento .pdf completo.
  • Un link a la web donde se aloja el documento, lo que nos permite ver su origen.
  • El Tag del link al docuemento  .pdf.
  • El número de Páginas del documento .pdf.
  • El tamaño en Kb. del documento.

Con esta información podemos navegar agílmente por los documentos y hacernos una idea aproximada de si es el documento que estamos buscado, abrirlo en una nueva ventana del navegador  haciendo click en el preview y descargarlo en caso que nos interese.

Una buena idea es descargar desde www.pedeefes.com los documentos pdf a nuestro ebook y leerlos offline cuando tengamos un poco de tiempo libre.

RAID-1 por software en debian con dos memorias USB

Para mejorar la velocidad de las bases de datos un aspecto crítico es la velocidad de acceso al disco duro.

Con hdparm podemos comprobar la velocidad de acceso y optimizar la configuración del disco duro para reducir el tiempo de acceso.

Los sistemas RAID  es lo mas adecuado para mejorar el acceso y seguridad de los datos. He configurado dos memorias USB En las bases de datos un tema crítico para mejorar la velocidad de busqueda es el tiempo de acceso al disco duro. Para comprobar los tiempos de acceso podemos usar la herramienta hdparm.

Probado con dos memorias USB de 32GB en mi servidor micra, con debian 6.0

Protocolo para montar un sistema RAID1 con dos memorias USB:

1) Creo particiones iguales formateadas en ext3 en los usb.

2) Monto los usb en micra en /mnt/usb1 y /mnt/usb2

3) Mido las velocidades de acceso de cada usb por separado:
                # hdparm -tT /dev/sdb1    (177.29 MB/sec ; 15.41 MB/sec)
                # hdparm -tT /dev/sdc1    (178.13 MB/sec ; 15.45 MB/sec)

4) Instalo mdadm. Lo configuro para que no inicie ningún raid al arranque.
               # aptitude install mdadm

5) Desmontamos los discos USB para que nos deje crear el RAID
               # umount /dev/sdb1
               # umount /dev/sdc1

6) Creamos el disco RAID-1 con los dos USB:
               # mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

7) Formateamos el nuevo disco RAID:
               # mkfs.ext3 /dev/md0

8) Montamos el dispositivo RAID:
               # mount /dev/md0 /mnt/raid1

.. y ya esta.

Veamos la velocidad de acceso:

          # hdparm -T /dev/sdb /dev/sdc /dev/md0
          /dev/sdb:  Timing cached reads:   350 MB in  2.01 seconds = 174.41 MB/sec
          /dev/sdc:  Timing cached reads:   350 MB in  2.00 seconds = 174.61 MB/sec
          /dev/md0:  Timing cached reads:   338 MB in  2.01 seconds = 168.46 MB/sec

                                         ¡¡¡ Pues no hemos mejorado nada !!! ???

Revisando /proc/mdadm veo que todavia no ha terminado la sincronización de los dispositivos:
                # cat /proc/mdadm
                Personalities : [raid1] 
                md0 : active raid1 sdb1[1] sdc1[0]
                30468024 blocks super 1.2 [2/2] [UU]
                [======.......]  resync = 30.2% (9201920/30468024) finish=42.4min speed=8346K/sec
                unused devices:

La sincronización tarda mucho!!!! ya que tiene que recomponer el raid.
Esto lo hace cada vez que se activa el RAID o se cambia un disco.


PROBANDO LA BDD EN EL RAID1:
Paso la base de datos indexpdf02 al raid1 y redirecciono el directorio en /var/lib/mysql/ a directorio copiado en /mnt/raid1 de modo que las consultas las realizará en el disco raid1.
---------------------------------------------------------------------------------------------------------------
Consulta "google" en el HD160GB, tarda 66.60 sec y recupera 4070 documentos.
         Reinicio mysq
Consulta "google" en el RAID1, tarda 86,13 sec y recupera 4070 documentos.
---------------------------------------------------------------------------------------------------------------
Consulta "server" en el HD160GB, tarda 87,36 sec y recupera 7075 documentos.
         Reinicio mysq
Consulta "server" en el RAID1, tarda 222,19 sec y recupera 7075 documentos.
---------------------------------------------------------------------------------------------------------------

Confirmado,esto NO mejora la velocidad de lectura y con los USB.
Puede que sea porque todavia no estan sicronizados los datos de los USB???

... efectivamente hay que dejar que se sincronicen los discos que componen el RAID.


PROBANDO LA BDD EN EL RAID1  after resync:
---------------------------------------------------------------------------------------------------------------
Consulta "google" en el HD160GB, tarda 31.98 sec y recupera 4070 documentos.
         Redirecciono la bdd y reinicio mysq
Consulta "google" en el RAID1, tarda 11.05 sec y recupera 4070 documentos.
---------------------------------------------------------------------------------------------------------------
Consulta "raid server" en el HD160GB, tarda 98.61 sec y recupera 244 documentos.
         Redirecciono la bdd y reinicio mysq
Consulta "raid server" en el RAID1, tarda 89.93 sec y recupera 244 documentos.
---------------------------------------------------------------------------------------------------------------
Consulta "google server" en el HD160GB, tarda 451.33 sec y recupera 510 documentos.
         Redirecciono la bdd y reinicio mysq
Consulta "google server" en el RAID1, tarda 447.35 sec y recupera 510 documentos.
---------------------------------------------------------------------------------------------------------------

Copiando, salvando y Redireccionando la bdd:
Copio la BDD al RAID, la remobro para tener una copia de seguridad y redirecciono mysql a la bdd en el raid.

from HD160GB to RAID:
mv indexpdf02 zz-indexpdf02
ln -s /mnt/raid1/indexpdf02/ indexpdf02
service mysql restart

from RAID to HD160GB:
rm indexpdf02
mv zz-indexpdf02/ indexpdf02/
service mysql restart

De este modo puedo comprobar el rendimiento en el disco duro y en sistema raid de los USB.

Ver: http://misnotaslinux.blogspot.com.es/2010/01/bases-de-datos-mysql-distribuidas-en.html


Conclusiones:

- La configuración de un RAID por software en debian es muy sencilla.

- El limitante que he encontrado en este RAID por software ha sido el bus de comunicación de datos de los USB que al ser común constituye el cuello de botella de la transferencia de datos.

- El tiempo para rehacer el RAID es considerable. De modo que no hay que conectar y desconectar los USB o montar y desmontar el RAID ya que cada vez que lo hagamos tiene que rehacerse y esto lleva su tiempo.

- Pese a todo si he visto una mejora en el tiempo de acceso a los datos, de modo que puede ser una alternativa de apoyo en sistemas con escasos recursos y aliviar algo la carga a discos duros.


Ref.:

http://www.linuxhispano.net/2011/02/09/calcular-la-velocidad-del-disco-en-linux/
http://lamaquinadiferencial.wordpress.com/2009/02/22/raid-1-por-software-en-ubuntu-debian-discos-en-espejo/
http://www.sahw.com/wp/archivos/2007/03/04/como-montar-en-diez-comodos-pasos-un-raid-para-debian-gnulinux/
http://www.megalinux.com.ar/articulos:raid

15 de julio de 2012

Foremost para recuperar ficheros borrados en linux

Lo típico..., despues de horas de programación el script php no parece por ningún sitio. Especialmente ya que he metido la pata y remachacado el directorio donde estaba.

Para recuperar ficheros borrados en linux se puede usar la aplicacion foremost.

Foremost rastrea el disco duro en busca de achivos y los identifica mediante cadenas de datos hexadecimales propios del tipo de ficheros que estamos buscando.

Es posible configurar a foremeost para que busque los ficheros que contengan la cadena exadecimal que queramos.

Por ejemplo, en mi caso que he perdido un script en php que comenzaba con:

#!/usr/bin/php

configuraré a foremost para que encuentre los archivos que comiencen con estos caracteres, a ver si hay suerte.

1) Hay que pasar el texto a buscar a hexadecimal. Podemos usar xxd desde la consola de linux

echo "#!/usr/bin/php" | xxd
0000000: 2321 2f75 7372 2f62 696e 2f70 6870 0a    #!/usr/bin/php.

Quitamos el 0a que es el retorno de carro y ponemos \x

 \x23\x21\x2f\x75\x73\x72\x2f\x62\x69\x6e\x2f\x70\x68\x70

2) Vamos al fichero de configuracion de foremost en /etc/foremost.conf
y añadimos la linea:

php  y  100000   \x23\x21\x2f\x75\x73\x72\x2f\x62\x69\x6e\x2f\x70\x68\x70

3) Ejecutamos foremost que buscara los ficheros que contengan la cadena especificada y los ficheros encontrados los guardará en el directorio ./recuperados

# foremost  -i /dev/sda1 -o ./recuperados

4) Cafe, siesta o peli ... ya que esto puede tardar.

5) Y en el directorio tendremos todos los ficheros que ha encontrado en el disco duro indicado que tienen la cadena especificada. Muchos puede no ser válidos o estar corruptos; ... que es lo mas frecuente.

6) Para encontrar lo que buscamos podemos usar:

# cat * | grep -l textoabuscar

aunque como hay ficheros binarios este comano NO me ha funcionado.

7) Finalmente he hecho un pequeño bash-script que me soluciona el problema y que me dice los ficheros que tienen contienen el textoabuscar:


#!/bin/bash/
for file in $(ls); do
   if grep -q 'textoabuscar' $file
      then
      echo $file
   fi
done
exit 0
Ejecutar el bash-script en el directorio donde esten los archivos recuperados y os dirá los archivos que contienen el textoabuscar.

Y ahora solo queda abrir los archivos y ver si es el script que tanto tiempo habia costado programar y que se habia borrado por error.

En mi caso ha habido suerte !!!

11 de julio de 2012

Configurar una máquina virtual con IP fija en VirtualBox desde la consola Debian Linux



Todo esto lo he probado, y funciona!!, en un fitPC-1 AMD-geode con 512mb de RAM. Con Debian 6.0.5, sin modo gráfico.

Linux HowTo:

Instalamos VirtualBox
        # aptitude install virtualbox-ose

Esto instala el paquete de vistualbox, sus dependencias y genera los módulos necesarios de forma automática.
Tienen que estar la headers de nuestro kernelpara que genere los modulos necesarios.

Si el módulo no se ha cargado aparecerá este error:

 WARNING: The character device /dev/vboxdrv does not exist.
         Please install the virtualbox-ose-modules package for your kernel and
         load the module named vboxdrv into your system.
  You will not be able to start VMs until this problem is fixed.

Cargar los módulos:
          # modprobe vboxdrv
          # modprobe vboxnetflt


Creamos maquina virtual:
          # vboxmanage createvm -name newmachine -register

Creamos el disco duro:
          # vboxmanage createvdi -filename newmachine.vdi -size 8000 -register

Registramos el disco duro
          # VBoxManage registerimage disk newmachine.vdi -type normal

Para desregistrarlo: unregisterimage


Asociamos el disco duro a la máquina virtual:
          # vboxmanage  modifyvm  newmachine  --hda  newmachine .vdi --ostype debian


Sale un error que no encuetra el IDE Controler; sol:
          # vboxmanage storagectl newmachine --name "IDE Controller" --add ide
https://forums.virtualbox.org/viewtopic.php?f=2&t=25319

Ahora lo asocia bien.

Le asignamos la memoria correspondiente a la máquina virtual
          # vboxmanage  modifyvm  newmachine  --memory 224
ya que el server micra solo tiene 512mb!!
http://josemanuelruizbaena.blogspot.com.es/2008_11_01_archive.html

Activamos la red NAT:
          # VBoxManage modifyvm newmachine --nic1 nat --cableconnected1 on

Configuramos el puesto de escucha:
virtualbox_desde_consola:/# VBoxManage modifyvm newmachine -vrdpport 3389
!!!para esto hay que tener instalado el VirtualBox Extension Pack

Arrancar vm:
          # VBoxManage startvm newmachine -type headless

http://www.webspheretools.com/sites/webspheretools.nsf/docs/Virtual%20machine%20has%20terminated%20unexpectedly%20during%20startup

Parar maquina:
          #VBoxManage controlvm newmachine  poweroff

Reiniciar maquina:
          #VBoxManage controlvm  newmachine  reset



CONFIGURANDO LA RED DE VirtualBox con ips estáticas:


http://yordanisp.blog.com.es/2010/03/03/configuracion-de-red-con-ips-estaticas-en-virtualbox-8109492/

1) # aptitude install uml-utilities bridge-utils

2) el usuario debe pertencer al grupo uml-net
    # gpasswd -a usuario uml-net

3) Modificar /etc/network/interfaces para activar el interface a usar por la vm, tap0 y crear el bridge:

   auto lo
   iface lo inet loopback

   aqui el iface wlan0

   auto tap0

   iface tap0 inet manual
   up ifconfig $IFACE 0.0.0.0 up
   down ifconfig $IFACE down
   tunctl_user usuario

   auto br0
   iface br0 inet static
   address 192.168.1.2
   netmask 255.255.255.0
   gateway 192.168.1.254
   bridge_ports all tap0

4) Reiniciamos el network:
    # /etc/init.d/networking restart

5) Modificar la vm:
    # VBoxManage modifyvm newmachine --nic1 hostif --cableconnected1 on --hostonlyadapter1 tap0

Dentro de la máquina virtual configurar su tarjeta de red con la IP que se quiera.


Tutoriales:
Manual virtualbox: http://www.virtualbox.org/manual/
Script bridge para VirtualBox: http://www.improvisa.com/09-04-2008/bridge-automatico-para-virtual-box/
All about VirtualBox and debian: http://wiki.debian.org/VirtualBox
...and more:            http://www.trimentation.com/wp/?p=75
                                http://www.improvisa.com/02-03-2009/virtualbox-desde-consola/


30 de junio de 2012

Arreglar el MBR de un disco que no arranca, usando boot-repair

Project LogoUna de las cuestions mas problemáticas y tediosas de solucionas es el manejo del mbr para el arranque de los sistemas opertivos.
En algunos casos es un auténtico suplicio el hacer que vuelva a arrancar el sistema con normalidad.

La solucion mejor es arrancar el ordenador desde un sistema live en un cd o mejor en un usb e intentar repara el sector de arranque del disco duro.

Una herramienta que me ha sido especilamente util es boot-repair

La he usado para repara el mbr de sistemas clonados a diferentes discos y en problemas con el arranque de origen desconocido.

Protocolo:

1) Arrancar el sistema desde un live USB, yo he usado xubuntu 12.04.
2) Tener acceso a internet.
3) Abrir una consola.
4) Ejecutar:

       sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
       sudo apt-get install -y boot-repair && boot-repair

5) Reapara el MBR del disco :

http://pix.toile-libre.org/upload/img/1335263156.png


6) Reboot desde el disco duro.

7) Cruzar todos los deditos.


Ref.:
http://sourceforge.net/p/boot-repair/home/Home/
https://help.ubuntu.com/community/Boot-Repair

22 de junio de 2012

Optimización de Hadware para grandes bases de datos MySQL


MySQLUna obsesión de los que trasteamos con grandes bases de datos es la alta accesibilidad, reducir el tiempo de busquedas, updates, inserts y la configuración óptima de hardware que optimize el rendimiento.

En www.pedeefes.com he encontrado varios documentos muy interesantes sobre este tema, que ademasme serviran para optimizar la base de datos de www.pedeefes.com que ya va por 220.000 documentos indexados con un índice de palabras con 120.000.000 de tuplas.


   





Ref.:
www.pedeefes.com

búsqueda: raid mysql 


15 de junio de 2012

Montar discos NTFS con permisos de escritura

Un problema que ocurre es que los discos de windows NTFS los monta debian sin permisos de escritura.
Para montar estos discos NTFS con permisos de escritura lo podemos hacer:

Por ejemplo:
Disco a montar:               /dev/sda1
Directorio de montaje:    /mnt/ntfs

1)  Desmontar /dev/sda1
          # umount /dev/sda1

2) Instalar ntfs-3g 
          # aptitude install ntfs-3g

3) Montar del disco ntfs
          # mount -t ntfs-3g /dev/sda1  /mnt/ntfs

Y ya tenemos el disco NTFS /dev/sda1 montado en /mnt/ntfs con permisos de escritura.

http://www.taringa.net/posts/linux/1659083/Montar-NTFS-en-Debian-Linux.html
http://en.wikipedia.org/wiki/NTFS-3G

Clonar una discoduro a un archivo vdi compactado

Una alternativa a la hora de hacer una copia de seguridad de un sistemas que queremos dar de baja es hacer una máquina virtual, de este modo tendremos un caopia de seguridad opertaiva, que podremos ejecutar en cualquier máquiba con VirtualBox instalada.

Ademas podemos hacer que la copia se en un discoduro virtual .vdi comprimido y extensible para ahorranos gigas de espacio en blanco.

Linux Protocol:

1) Arrancamos desde la máquina a clonar.

2) Borramos todo lo que no necesitemos o no queramos conservar.


3) Instalamos zerofree
     # aptitude install zerofree


3) Seguimos liberando espacio del disco:
    # aptittude purge
    # aptitude clean


4) Remontamos el disco duro en modo read only
    # telinit 1
    # mount -n -o remount,ro /dev/[sda1] /


5) llenamos el espacio no usado con ceros
    # zerofree /dev/sda1

6) Iniciamos otro sistema Linux desde un live usb que tengamos acceso al disco a clonar


7) Clonamos el disco
    # dd if=/dev/sda of=/rutade backup/hd.img

8) Convertimos el fichero .img en .vdi
    # VBoxManage convertfromraw -format VDI hd.img hd.vdi

9) Compactamos el disco virtual .vdi
    # VBoxManage modifyhd hd.vdi --compact

Ya solo falta crear una máquina virtual con VirtualBoxManager y usar este disco virtual como soporte.

Ref.:
Reducir el tamaño de los discos de las máquinas virtuales (vdi vmdk)
Como clonar una máquina ejecutable en VirtualBox en un USB

9 de mayo de 2012

Copia de bases de datos MySQL con scp

Cuando se quiere hacer una copia de una base de datos MySQL de un servidor a otro la forma mas sencilla es copiar el directorio de la base de datos que se encuentra en /var/lib/mysql/

En caso de querer enviar la bddacopiar a otra máquina en red se puede usar scp:

server1# scp -rC /var/lib/mysql/bdd_acopiar  root@server2:/var/lib/mysql/ 
server2# chown -R mysql:mysql /var/lib/mysql/bdd_acopiar                  
server2# /etc/init.d/mysql restart                                        


... y ya tenemos un clon de bbd_acopiar en server2.

La opción -C de scp comprime los datos antes de enviarlos y en la máquina receptora ya  aparece descomprimido. Esto es especialmente recomendable con conexiones lentas de internet y ya que las bases MySQL suelen tener unos niveles de compresión muy buenos lo que acelera la trasferencia.

5 de mayo de 2012

Comparativa de Virtual Private Severs

Está de moda eso de tener algo en la nube. La mayoria de los que alardean de esto ya tenian gran arte de su información en la nube desde hace años, ...y ellos sin saberlo.

El caso es que tenía ganas de probar un Virtual Private Server (VPS) para ver como funcionaba y testearlo con una base de datos grande y el indexador de mi buscador de documentos pdf  - www.pedeefes.com.

He revisado las ofertas de los proveedores de cloud VPS mejor posicionados en Google, con las ofertas vigentes y su precio al mes IVA incluido.

Proveedor PACK RAM_gb HD_gb LimiteTranf Oferta Alta EUROS/mes Permanencia
1and1 L 0,5 20 ilimitado

23,59 € 12 meses
1and1 XL 1,0 40 ilimitado

35,39 € 12 meses
1and1 XXL 2,0 80 ilimitado

47,19 € 12 meses
gigas nova 1,0 25 200gb 2 meses 0€ 8 € 22,42 € 1 mes
gigas pro 2,0 40 300GB 2 meses 0€ 8 € 34,22 € 1 mes
gigas elite 3,0 50 600GB 2m a 0€ de 12m 57,82 € 1 meses ?
webfusion inicio 2,0 100 ilimitado 2m a 0€ de 12m 20,05 € 12 meses
webfusion proyectos 3,0 150 ilimitado 1m a 0€ de 12m 35,39 € 3, 12meses
hostalia base 1,0 25 1000GB 2m a 0€ de 12m 17,70 € 24 meses
hostalia avanzado 2,0 50 1000GB

22,08 € 24 meses
strato A 0,5/1 20 100GB
0 8,14 € 6 meses
strato M 1/2 30 1000GB 6m a 8,14€/m 0 19,94 € 6 meses
strato L 2/4 50 1000GB
0 31,74 € 6 meses
arsys basico 0,25/1 10 100GB

34,22 € 6 meses

Nota bene: Estos precios son los inidicados en la web de los proveedores correspondientes en abril-2012, revisar la web de los proveedores ya que seguro que ya han cambiado !!!.

Hay ofertas interesantes con precios razonables, y sin largos compromisos de permanencia; ideal  para probar el servicio.

Me llama la atención la escasa de capacidad de disco duro de algunos proveedores.

He contratado uno para ver como funciona esto de los VPS.

La contratación y disponibilidad del VPS ha sido muy rápida e inmediata, una vez pagado el servicio. Hay varias alternativas de Sistemas Operativos, yo me he instalado Debian, por supuesto.

Tengo mi ip fija, 50Megas de velocidad de descarga y acceso ssh muy rápido; yuuuhu!!.

La disponibilidad del servico tecnico ha sido muy buena, por chat,email, incluso me llamó un humano por teléfono!!. Pero he de decir que al primer problema realmente técnico que tuve con el servidor, no me lo supieron resolver y tuve que buscarme la solución yo solito. Asi que es conveniente tener nociones de administración de sistemas o contratar un servidor administrado.

Lo peor de los VPS es que te acostumbras a ellos y no hay oferta ni capacidad de disco duro que 100 años dure. ;)))

3 de mayo de 2012

Proceso completo para crear un usuario linux


Como crear un nuevo usuario en linux:
 
      Crear usuario newuser:
# useradd newuser
      Asignarle password:
# passwd newuser
      Crear su directorio:
# mkdir /home/newuser
      Copiar archivos de configuracion en su directorio, por ejemplo:

# cp .bashrc /home/newuser  
      Asignar el directorio al nuevo usuario:
# chmod -d /home/newuser
       Dar permisos y propiedad del directorio del newuser:
# chown newuser:newuser -R /home/newuser
# chmod 755 -R /home/newuser

       Asignar el bash para el newuser:
# nano /etc/paswwd ---> que la linea de newuser tenga /bin/bash


Bibliografia:
http://www.taringa.net/posts/linux/13352904/Crear-un-usuario-nuevo-y-todo-lo-que-ello-implica.html

2 de mayo de 2012

Como clonar una máquina ejecutable en VirtualBox en un USB

Los sistemas virtualizados estan de moda y por un precio razonable se puede terner un Virtual Private Server decentito. Yo sin ir mas lejos, tengo mi buscador de archivos pdf en un VPS con Debian 6.0 .

Es muy recomendable hacer copias de seguridad de los servidores de rendimiento ante posibles desastres y para tener el sistema base instalado y configurado listo para copiarlo en un disco duro y no tener que volver a instalar y configurar todo el sistema.

Una forma de hacer estas copias de seguridad es clonar el disco completo:

# dd if=[origen] of=[destino]

como el fichero resultante es una copia exacta, bit a bit, del disco duro ...
¿se podria usar como disco duro virtual y ejecutarlo en VirtualBox?
De este modo tendríamos una copia funcional del servidor ademas de una cópia de seguridad.

Pues la respuesta es ... SI:


1) Hacer una imagen del disco duro
Importante: Hay que acceder a la máquina con una distribución live y no montar el disco a clonar.

# dd if=/dev/sda of=/ruta del fichero/newMicra.img

La imagen la grabé en un disco duro USB. Esta imagen tiene el tamaño completo del disco duro aunque el sistema base ocupe menos.
Para reducir el tamaño podemos comprimir el archivo imagen con tar o bzip2.

Para probar si podia arrancar la imagen .img en un sistema virtualizado conecté el disco duro usb en un portatil con Xubuntu 11.04 y VirtualBox 4.1.2 instalado.

3) Convertir la imagen del disco duro en un disco virtual .vdi
VirtualBox no reconcoce el fichero generado por dd, hay que tranformar la imagen en un fichero .vdi

#  VBoxManage convertfromraw -format VDI newMicra.img new.Micra.vdi


4) Dar permisos de lectura y escritura al disco virtual
Para poder activar el discoduro virtual en VirtualBox debe tener permisos de lectura y escritura.


 # chmod a+rw newMicra.vdi

5) Crear la máquina virtual en VirtualBox:

y asignar el disco duro al fichero creado en el dispositivo usb.


6) Ejecutar la máquina virtual y ...



... ya tenemos un clon de nuestro servidor, portable, en un USB, ejecutable en cualquier máquina con VirtualBox y donde poder experimentar sin peligro como si fuera el sistema original.

Otra aplicación de esto sería hacer cópias de seguridad funcionales, potables y ejecutables en cualquier máquina con VirtualBox instalado.

27 de abril de 2012

Como optimizar el servidor MySQL

Una vez que tienes diseñada y funcionando tu base de datos MySQL la siguiente tarea es mejorar su rendimiento para que el tiempo de búsqueda se el menor posible.
La configuración del fichero /etc/mysql/my.cnf que viene por defecto al instalar MySQL  funciona bien para bases de datos pequeñas y sin muchas exigencias, pero no es óptimo para basesde datos grandes y de alto rendimiento.

Pero ¿Como modificar el fichero my.cnf de configuracion del servidor MySQL?

He encontrado estas herramientas de diagnóstico del funcionameinto de MySQL, evaluando la configuracion actual, recomendando modicifaciones en el /etc/mysql/my.cnf que podemos ir pobando y ver si mejoran el rendiemiento del servidor.

1) MySQL Tuning Primer Script
Se trata de un script escrito en Bash, que revisa la actividad del servidor MySQL y lo compara con la configuración actual.
Lo descargamos de
https://launchpad.net/mysql-tuning-primer/trunk/1.6-r1/+download/tuning-primer.sh
le damos permisos de ejecución, lo ejecutamos, ...y vemos el resultado:


En este caso se trata de una base de datos muy grande y ya me gustaria disponer de mas de 4,7GB de RAM para MySQL !!!

Es una muy buena herramienta y que me ha ayudado muchoa a optimizar mis voluminosas bases de datos.


2) Otra herramienta de diagnótico para optimizar MySQL es mysqltuner, escrita en Perl.

Es complementaria a la anterior y presenta los datos de forma mas compacta, con las recomendaciones al final.



Y ademas coincide en el diagnóstico con la anterior!!!.
Esta visto que tendré que aumentar el key_buffer_size de mi mysqld y la memoria RAM.


Teneis mas informacion sobre el tema en mi buscador de documentos pdf
www.pedeefes.com, buscando con las palabras: mysql optimization.

8 de abril de 2012

MySQL: Mostrar toda la información de las tablas

Para mostrar toda la información de las tabals de la base de datos activa:

mysql> SHOW TABLE STATUS;

y de una tabla en particular:

 mysql> SHOW TABLE STATUS LIKE 'tablename';

Tamaño de las bases de datos en MySQL

Este comando MySQL indica todas las bases de datos en MySQL y su tamaño en MB.

mysql> SELECT table_schema, sum( data_length + index_length ) / 1024 / 1024 "Tamaño en MB" FROM  information_schema.TABLES GROUP BY table_schema;


 http://forums.mysql.com/read.php?108,201578,201578

MySQL: Contar las tuplas de todas las tablas de una base de datos


mysql> select table_schema, sum(table_rows) from information_schema.tables where table_schema = "nombre-base-de-datos"


26 de marzo de 2012

www.pedeefes.com un buscador de Documentos pdf

Reconozco mi debilidad por los documentos en formato pdf. En la red hay gran cantidad de pedeefes de acceso libre.

Yo realizo muchas busquedas centradas especificamente en documentos con este formato ya que suelen ser fuente de información de alta calidad. Pero me encontraba que los buscadores no me daban información sobre el documento como su tamaño, páginas, autor, fecha de publicación, etc.

De modo que hace unas semanas decidí comenzar un proyecto dedicado a buscar, indexar y direccionar documentos pedeefes de la red, almacenado toda la información en una base de datos.

La tarea es inmensa ya que el número de pedeefes en la red es astronómica, de modo que me he centrado en los que me resultan más interesantes como los dedicados a temas de informatica, programación, innovación, economia, empresa, bases de datos, linux, ciencia, ... etc, etc, el número de documentos indexados y la temática crece y crece dia a dia.

Creo que la base de datos ha llegado a un volumen de información interesante de modo que he programado un buscador para su uso público, pudiendo acceder a la información que tiene indexada en www.pedeefes.com , me esta resultando una herramienta tremendamente util para la localización, descarga y lectura de documentos pedeefes libres con mi lector de ebooks.

De momento es una version beta, en desarrollo, que voy mejorando su funcionamiento y alimentando su base de datos.

Espero que sea util y cualquier sugerencia no dudeis en comentármela.



28 de febrero de 2012

Instalando Madwifi en Ubuntu para wifi Atheros

La tarjeta Atheros no funciona muy fina en ubuntu/xubuntu de modo que voy a cambiar el driver ath5k por el de madwifi:

Hecho en xubuntu 11.10 con wifi "Atheros Communications Inc. AR5212/AR5213 Multiprotocol MAC/baseband processor (rev 01)"

1) Comprobar y/o instalar el paquete build-essential:
# aptitude install build-essential

2) Descargar la última versión de madwifi en: http://snapshots.madwifi-project.org/
# wget http://snapshots.madwifi-project.org/madwifi-0.9.4-current.tar.gz

3) Descomprimir el archivo:
# tar -zxvf madwifi-0.9.4-current.tar.gz

4) Entramos en el subdirectorio:
# cd  madwifi-0.9.4-r4178-20120131

5)  Creamos e instalamos los modulos:
# make
# make install
# modprobe ath_pci

6) Para que se instale automaticamente al inicio añadir "ath_pci"  al fichero /etc/modules
# echo "ath_pci" >> /etc/modules

7) Reiniciar el sistema
# reboot

8) Comprobar que el módulo se han cargado correctamente tras el reboot:
# lsmod | grep ath

Con el driver madwifi mi tarjeta wifi Atheros funciona mucho mejor, sin caídas de velocidad ni desconexiones.


27 de febrero de 2012

Consultar y cambiar la codificación de caracteres de un fichero

Para saber la codificación de caracteres de un fichero:

$ file --mime-encoding [file]


Para cambiar la codificación de un fichero de
ISO-8859-1 a UTF-8:

$ iconv -f ISO88591 -t UTF8 [file.in] > [file.out]


26 de febrero de 2012

Limitar acceso phpmyadmin a localnet

(1) Crear el archivo:
/usr/shares/phpmyadmin/.htaccess

deny from all
allow from 127.0.0.1
allow from 192.168.1

Este ejemplo permite el acceso desde el localhost y desde la subnet 192.168.1.1-255. Se pueden poner los host individuales o subnets que se quieran, o algun host externo, ip o url, con acceso permitido.

(2) Añadir al archivo:  /etc/phpmyadmin/apache.conf
... ...
Directory /usr/share/phpmyadmin

... ...
                AllowOverride All
... ...

/Directory
... ...


Con esto activamos el fichero .htaccess en /usr/share/phpmyadmin

(3) Y reiniciar apache2:
# /etc/init.d/apache2 restart

24 de febrero de 2012

La anatomía de Google

Aquí os dejo el trabajo de fin de carrera de un par de tipos de la Universidad de Stanford sobre un indexador y buscador de páginas web.
Así a primera vista tiene muy buena pinta.
Mis felicitaciones a Sergey y Larry ;)))

A los que os guste el tema de spidering, scraping, indexing y databaseing no os lo podéis perder.

http://infolab.stanford.edu/pub/papers/google.pdf

7 de enero de 2012

Electrónica Virtual

Con mi nuevo reto para el 2012 de iniciarme el la microelectrónica programable es necesario ponerse al dia en electrónica y esto de los condensadores, resistencias y voltajes lo tengo muy olvidado.

Hay mucho Software Libre para el diseño de electrónica y también para el diseño de circuitos electrónicos.

Estos son algunos de los softwares que veo interesantes y voy a revisar:


fritzing.org


www.gpleda.org



spins.fedoraproject.org


Ardulab



Solo faltraría un botoncito "start" para simular nuestro circuito ..., afortunadamente esto, al menos en fritzing, NO es posible; lo que nos obliga a salir de nuestro cibermundo virtual y probar físicamente nuestros proyectos. Adios a matrix  ___  ;))))

Hardware Libre y Arduino

Todavia recuerdo cuando con mi amigo JR intentanmos encender unos leds con el slot trasero de los Spectrum del instituto ante la mirada perdida del profesor. 20 años depues las cosas han cambiado hasta un punto inimaginable. Como buen propsito para el 2012 quiero indagar sobre microelectrónica, un bune campo puede ser los microcontroladores programables.
Mi objetivo es pasar del fascinante mundo del código al mundo real, mediante el control por software de componentes electrónicos.
Buscando, buscando veo una interesante actividad en Hardware Libre, ademas de ser una idea con la estoy especialmente deacuerdo, es ideal para aprender, experimentar y dievertirse con el hardware.
Uno de los artefactos mas populares en este campo es Arduino, con cantidad de proyectos amateurs de electrónica, robótica, software, ... y una comunidad de usuarios muy activa.

Un documental sobre la historia de Arduino:




Los primeros pasos con Arduino en dos tutoriales de www.bricogeek.com:

parte 1/2
parte 2/2

Aqui hay material para divertirse.