Mysql

Logo Mysql

Introducción

MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario.

Instalación y desinstalación

En linux

Desde los repositorios

Instalación

Para instalar mysql desde los repositorios tendremos que instalar los siguientes paquetes ejecutando las siguientes ordenes o instalandolos con nuestro gestor de paquetes gráfico.

El paquete mysql-server es el servidor:

>> sudo aptitude install mysql-server

Si vamos a usar php5 con mysql tendremos que instalar el paquete php5-mysql que es la extensión que comunica mysql con php5:

>> sudo aptitude install php5-mysql

También instalaremos el paquete libapache2-mod-auth-mysql que es la extensión que comunica apache con mysql:

>> sudo aptitude install libapache2-mod-auth-mysql

Desinstalación

Si lo hemos desinstalado desde los repositorios, para desinstalarlo tenemos que quitar los paquetes indicados anteriormente:

>> sudo aptitude purge mysql-server libapache2-mod-auth-mysql php5-mysql

Desde el código fuente

Instalación

Los pasos a seguir para compilar, instalar y configurar mysql son:

  1. Crear un usuario y un grupo que se llamen mysql
  2. Descomprimir y compilarlo
  3. Usar un fichero de configuración por defecto
  4. Poner como propietario de los ficheros instalados al usuario y grupo creados para ello
  5. Ejecutar el script mysql_install_db indicándole el usuario que tendrá que usar (mysql)
  6. Poner como propietario de los ficheros instalados al root menos los de la carpeta var

Hacemos los pasos:

>> groupadd  mysql
>> useradd -g mysql mysql
>> gzip -d mysql-5.0.37.tar.gz
>> tar -xvf mysql-5.0.37.tar
>> cd mysql-5.0.37
>> ./configure --prefix=/usr/local/mysql
>> make
>> sudo make install
>> sudo cp support-files/my-medium.cnf /etc/my.cnf
>> cd /usr/local/mysql
>> sudo chown -R mysql .
>> sudo chgrp -R mysql .
>> sudo bin/mysql_install_db --user=mysql
>> sudo chown -R root .
>> sudo chown -R mysql var
>> sudo bin/mysqld_safe --user=mysql &

Desinstalación

Desde la carpeta que hemos descomprimido antes, tendremos que ejecutar el siguiente comando:

>> sudo make uninstall

Configuración

Conexion remota

Para que mysql acepte peticiones desde otras máquinas tendremos que ir al fichero my.conf y buscar la línea bind-address para sustituir 127.0.0.1 por la ip de la máquina donde hemos instalado mysql. Por ejemplo si lo hemos instalado en una máquina de ip 65.234.132.253 tendremos que editar la línea para dejarla así:

  bind-address = 65.234.132.253

Para poder conectarnos con root a mysql desde otro ordenador tendremos que ejecutar las siguientes ordenes:

>> mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 33
    Server version: 5.0.75-0ubuntu10.2 (Ubuntu)

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

  mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'CONTRASEÑA_ROOT' WITH GRANT OPTION;
    Query OK, 0 rows affected (0.02 sec)
  mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)

Usuario y contraseña por defecto

Por defecto el usuario es root y no tiene contraseña.

Cambiar la contraseña del root

Para cambiar la contraseña de root (por ejemplo a clave04root):

>> /usr/local/mysql/bin/mysqladmin -u root password 'clave04root'

Archivo de configuración

El archivo de configuración puede estar en las siguientes rutas:

/etc/mysql/my.cnf

Backup sin interrumpir

http://www.howtoforge.com/back_up_mysql_dbs_without_interruptions

 

OTRA de BACKUP http://www.trensim.com/javierav/archives/70

BACKUP A MAIL http://www.dbrunas.com.ar/article.php/20070306060303695

Hacer una copia de seguridad

Creamos un arhivo dbbackupdaily.sh y le ponemos el siguiente contenido:

 #!/bin/sh
 #created by Alexander Sea
 #Daily Backup
 #version 1.0
 DIR="path-of-your-backup-folder"
 datestr=$(date +%m-%d-%Y)
 uname="your-mysql-user-name"
 passwd="your-password"

 ##mysql databases
 mysqldump --user=$uname --password=$passwd --opt yourDB1 > $DIR/$datestr-yourMySQLDB1.sql
 mysqldump --user=$uname --password=$passwd --opt yourDB2 > $DIR/$datestr-yourMySQLDB2.sql
 mysqldump --user=$uname --password=$passwd --opt yourDB3 > $DIR/$datestr-yourMySQLDB3.sql
 
 ##postgresql databases
 pg_dump -U postgres yourPGDB > $DIR/$datestr-yourPGDB.sql
 ## END OF THE SCRIPT

Lo añadimos al cron para que lo ejecute diariamente:

10 1 * * 1-5 sh /DBbackup.sh

3. $ crontab cronweekdays.txt

4. To view the list of cron jobs:

>> crontab -l

Apache

Apache

Introducción

Apache es un servidor web.

Instalación

Para instalarlo tendremos que instalar el paquete apache2 desde nuestro gestor de paquetes gráfico favorito o ejecutando la siguiente orden:

>> sudo aptitude install apache2

Uso

  • Si lo hemos instalado como servicio:

>> sudo /etc/init.d/apache2 start
>> sudo /etc/init.d/apache2 stop
>> sudo /etc/init.d/apache2 restart
  • Si no lo hemos instalado como servicio (standalone):

>> /usr/local/apache2/bin/apachectl start
>> /usr/local/apache2/bin/apachectl restart
>> /usr/local/apache2/bin/apachectl stop

Configuración

El fichero de configuración

El fichero de configuración se llama httpd.conf y esta en la siguiente ruta:

  • Desde las fuentes: /usr/local/apache2/conf/httpd.conf
  • Desde el repositorio: /etc/apache2/httpd.conf

Directorio raiz por defecto

  • Desde las fuentes: /usr/local/apache2/htdocs
  • Desde el repositorio: /var/www/

Cambiar el directorio de las páginas web

Modificar en el fichero de configuración /usr/local/apache2/conf/httpd.conf la variable DocumentRoot con la ruta nueva:

DocumentRoot "/media/windows/WEB"

Seguridad

  • La variable ServerTokens nos permite decidir que información dice el servidor. ServerTokens por defecto tiene el valor Full, por seguridad es decir cuanto menos información. Un ejemplo de los valores de esta variable y de sus salidas serian los siguientes:
Prod: Apache
Major: Apache/2
Minor: Apache/2.0
Minimal: Apache/2.0.55
OS: Apache/2.0.55 (Debian)
Full: Apache/2.0.55 (Debian) PHP/5.1.2-1+b1 mod_ssl/2.0.55 OpenSSL/0.9.8b

Por lo que editaremos el fichero /etc/apache2/apache2.conf y pondremos la variable ServerTokens con el valor Prod:

ServerTokens Prod
  • La variable ServerSignature permite la configuración del pie de página que aparece en ciertos mensajes generados por el servidor (mensajes de error, salida de mod_info , etc.). Si se utiliza ServerSignature On, se añade una línea con el número de versión de Apache, el nombre del servidor ServerName, y el email del responsable ServerAdmin. Por ejemplo:
Not Found  
The requested URL /docu/proyecto_web/img34.png was not found on this server.

Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_fastcgi/2.4.2 PHP/5.2.0-8+etch7 mod_ssl/2.2.3 OpenSSL/0.9.8c Server at www.realidadfutura.com Port 80

Por lo tanto la pondremos en Off. Editaremos el fichero /etc/apache2/apache2.conf y pondremos la variable ServerSignature en Off:

ServerSignature Off
  • Por seguridad es conveniente deshabilitar el método TRACE y dejar solo los que voy a necesitar GET,HEAD, POST y OPTIONS. Esto habra que indicarselo en cada VirtualHost gracias a la variable TraceEnable. Por ejemplo, para deshabilitarlo en el VirtualHost por defecto iremos al archivo /etc/apache2/sites-available/default y dentro de la etiqueta VirtualHost pondremos la variable TraceEnable en Off:
TraceEnable off

Impedir que ciertas IPs accedan a una carpeta del servidor

Crear o modificar un archivo de nombre .htaccess en la carpeta e introducirle el siguiente contenido:

Order Deny,Allow
Allow from 155.210.155.169
Deny from all

Para hacerlo de esta forma necesitaremos que este activa la opción AllowOverride de usar archivos .htaccess a un valor distinto a None

Impedir que otras webs usen nuestras imagenes

A veces otras webs pueden usar imagenes nuestras subidas en nuestro servidor (consumiendo nuestro respectivo ancho de banda). Para evitar esto tendremos que crear o editar el archivo .htaccess en la carpeta principal de nuestra página web y añadir las siguientes líneas:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://tu-dominio.com [NC]
RewriteCond %{HTTP_REFERER} !^http://www.tu-dominio.com [NC]
RewriteRule .*\.(gif|jpg|swf|png|jpeg)$ - [NC,F]

Si ademas queremos que cuando usen una imagen nuestra, les aparezca otra, solo tendremos que cambiar la úlñtima línea por esta otra:

RewriteRule .*\.(gif|jpg|swf|png|jpeg)$ imagen_ladron.jpg [L]

Siendo imagen_ladron.jpg la imagen que queremos que les salga.

Security enhanced linux

Aveces podemos encontrarnos con el siguiente problema en el apache (aunque tengamos los permisos bien):

Permission denied: access to /index.html denied

Esto puede deberse a que algunos linux (similares a Red Hat, por ejemplo en Centos 5) implementan últimamente un sistema de seguridad llamado Security-Enhanced Linux.

Security-Enhanced Linux (o SELinux) es una arquitectura de seguridad integrada en el kernel 2.6.x usando los módulos de seguridad linux (o linux security modules, LSM). Este es un proyecto de la Agencia de Seguridad Nacional (NSA) de los Estados Unidos y de la comunidad SELinux. La integración de SELinux en Red Hat Enterprise Linux fue un esfuerzo conjunto entre al NSA y Red Hat

Usarlo

Por ejemplo: si queremos darle permisos al apache para que pueda acceder a una carpeta TU_CARPETA. Primero veremos que no tiene los permisos para que pueda ser accedida por el apache con la siguiente orden:

>> ls -Z TU_CARPETA
   drwxr-xr-x  root root system_u:object_r:home_root_t    TU_CARPETA

Entonces le daremos los permisos con la siguiente orden:

>> chcon -R -h -t httpd_sys_content_t TU_CARPETA

Por último comprobaremos que ya tiene los permisos:

>> ls -Z TU_CARPETA
   drwxrwxrwx  root root root:object_r:httpd_sys_content_t TU_CARPETA

Deshabilitarlo

Para saber si lo tenemos activado tendremos que ejecutar la siguiente orden (si esta off, significa que no esta activado lo que lo deshabilita, lo que quiere decir que esta activado):

>> getsebool -a | grep httpd
   allow_httpd_anon_write --> off
   allow_httpd_bugzilla_script_anon_write --> off
   allow_httpd_mod_auth_pam --> off
   allow_httpd_nagios_script_anon_write --> off
   allow_httpd_squid_script_anon_write --> off
   allow_httpd_sys_script_anon_write --> off
   httpd_builtin_scripting --> on
   httpd_can_network_connect --> off
   httpd_can_network_connect_db --> off
   httpd_can_network_relay --> off
   httpd_disable_trans --> off
   httpd_enable_cgi --> on
   httpd_enable_ftp_server --> off
   httpd_enable_homedirs --> on
   httpd_rotatelogs_disable_trans --> off
   httpd_ssi_exec --> off
   httpd_suexec_disable_trans --> off
   httpd_tty_comm --> on
   httpd_unified --> on

Activamos la opción de deshabilitar y comprobamos que se ha activado:

>> setsebool -P httpd_disable_trans 1
>> getsebool -a | grep httpd
   allow_httpd_anon_write --> off
   allow_httpd_bugzilla_script_anon_write --> off
   allow_httpd_mod_auth_pam --> off
   allow_httpd_nagios_script_anon_write --> off
   allow_httpd_squid_script_anon_write --> off
   allow_httpd_sys_script_anon_write --> off
   httpd_builtin_scripting --> on
   httpd_can_network_connect --> off
   httpd_can_network_connect_db --> off
   httpd_can_network_relay --> off
   httpd_disable_trans --> on
   httpd_enable_cgi --> on
   httpd_enable_ftp_server --> off
   httpd_enable_homedirs --> on
   httpd_rotatelogs_disable_trans --> off
   httpd_ssi_exec --> off
   httpd_suexec_disable_trans --> off
   httpd_tty_comm --> on
   httpd_unified --> on

Por último reiniciamos el apache para que tenga efecto:

>> sudo /etc/init.d/apache2 restart
   Parando apache2:                                             [  OK  ]
   Iniciando apache2:                                           [  OK  ]

Problemas

External APR-util

 Puede ser que apache nos de un erro como el siguiente:

configure: error: Cannot use an external APR-util with the bundled APR

Solución

Para solucionar este error, tendremos que instalar el paquete libaprutil1-dev:

>> sudo aptitude install  libaprutil1-dev
temas: 

Escritorio remoto en Ubuntu con Freenx

Escritorio remoto en Ubuntu con Freenx

Introducción

En Ubuntu hay muchas maneras de conectarnos por escritorio remoto. La que mas me gusta es con freenx (mas seguro que con VNC y mucho mas rápido). En este articulo veremos como instalarlo, configurarlo y usarlo.

Instalación

Tendremos que instalar dos partes. En el ordenador al que nos queremos conectar, tendremos que instalarle el servidor freenx. En el ordenador desde el que nos conectaremos al otro ordenador, tendremos que instalar el cliente nxclient.

Instalar el servidor

Lo primero que necesitaremos es tener un repositorio que tenga el paquete freenx-server. Si no tenéis ninguno podéis usar este:

deb http://ppa.launchpad.net/freenx-team/ubuntu TU_DISTRO main
deb-src http://ppa.launchpad.net/freenx-team/ubuntu TU_DISTRO main

Dependiendo de vuestra versión de ubuntu cambiareis TU_DISTRO por una de las siguientes que corresponda a vuestra distribución:

  • feisty
  • gutsy
  • hardy
  • intrepid
  • jaunty
  • karmic
  • lucid

Tambien podemos añadirlo con el siguiente comando:

>> sudo add-apt-repository ppa:freenx-team

Una vez lo tengamos en nuestro repositorio procederemos a instalarlo con las siguientes ordenes:

>> sudo aptitude update
>> sudo aptitude upgrade
>> sudo aptitude install freenx

Instalar el cliente

Para instalar el cliente tendremos que ir a la web http://www.nomachine.com e ir a la sección de descargas y seleccionar el programa NX Client y para que Sistema Operativo lo necesitamos (Windows o Linux), y si es para linux elegiremos después la versión para Ubuntu NX Client DEB for Linux.

Después de bajarlo lo instalaremos. Para instalarlo en Ubuntu desde consola tendremos que ejecutar la siguiente orden:

>> sudo dpkg -i nxclient_3.2.0-9_i386.deb

Configuración

Establecer el puerto donde sshd esta escuchando

Freenx una sshd para establecer las conexiones con más seguridad. Por ello tiene que saber en que puerto esta escuchando sshd. Por defecto piensa que está en el 22, pero si esta en otro puerto, tendremos que indicarselo. Para ello tendremos que editar el fichero /etc/nxserver/node.conf y descomentaremos la variable SSHD_PORT y le pondremos el valor de nuestro puerto.

Por ejemplo, si nuestro servidor sshd esta escuchando en el puerto 4022, tendremos que dejar la línea así:

SSHD_PORT=4444
temas: 

Tipos de enchufes y compatibilidad eléctrica por el mundo

Enchufes del mundo

Introducción

Dentro de unas semanas (como ya sabréis alguno) voy a hacer un viaje al extranjero y con la dependencia que tenemos hoy en dia de los aparatos electricos (cámaras de video, fotos, moviles, videoconsolas, mp4, mp3, ...) necesitamos disponer de alguna forma para cargarlos. Entonces nos pueden surgir muchas dudas: ¿Como saber si podré enchufarlo?, ¿será compatible con los enchufes que abrá allí?, ¿que enchufes tienen en otro país?, ¿tengo que comprar un adaptador?, ... Este artículo trata de resolver esas dudas.

Para saber si podremos conectar nuestro aparato (ordenador portatil, mp3, movil, cámara de fotos o de video, ...) a la red eléctrica de otro país, tendremos que tener en cuenta dos cosas: si es compatible el aparato con la red eléctrica de allí y si es compatible el enchufe con los de allí.

¿Es compatible mi aparato electrónico con la red eléctrica?

Para saber si podré usar mi aparato electrónico en el otro país, hay que fijarse en los tipos de entradas eléctricas compatibles con nuestro aparato que aparecerán en  el transformador o enchufe del aparato (se especificara con la palabra input).

Nos podemos encontrar con un rango de voltajes y varias frecuencias. Por ejemplo lo siguiente:

INPUT: 100V-240V 50/60Hz

Esto significa que podemos enchufarlo a un voltaje que este entre 100V y 240V y que tenga una frecuencia de 50 o 60 Hz. Así que este aparato podriamos usarlo en Estados Unidos de América ya que allí hay un voltaje de 120V (esta comprendida entre los 100 y los 240V) y una frecuencia de 60 Hz. Solo nos quedará mirar si el enchufe es compatible (en el segundo apartado)

Si por el contrario el aparato solo es compatible con uno o varios voltajes (por ejemplo solo compatible con 230V) y entre ellos no se encuentra el del país al que viajamos, entonces necesitaremos un transformador que nos pase del voltaje del enchufe al voltaje de nuestro aparato. Ene ste caso tendremos que tener en cuenta que el transformador nos dé la potencia suficiente para nuestro aparato, mirando los watios que dá el transformador y los que necesita el aparato. Si el voltaje se encuentra entre los soportados tendremos que indicarle al aparato el voltaje al que le conectaremos solo tendrémos que comprobar si el enchufe es compatible (segundo apartado). Por ejemplo, las fuentes de alimentación de los ordenadores suelen soportar dos voltajes: 230 y 115V, y se les indica a través de una pestaña que está en al fuente al lado del enchufe.

Para saber las frecuencias y los voltajes que tienen los enchufes del país al que viajáis, podéis mirarlo en esta web. (Adjunto la lista de las frecuencias y voltajes eléctricos por si el otro enlace deja de funcionar)

¿Es compatible el enchufe de mi aparato?

Esta es al parte menos importante. Si nuestro aparato es compatible (mirando el apartado anterior) con la red eléctrica, lo único que necesitamos es poder meter el conector de nuestro aparato al enchufe del país al que viajemos. Estos suelen ser diferentes dependiendo del país (tipo A, tipo B, tipo B3, tipo BF, tipo C, tipo SE, tipo D con o sin toma de tierra, ...), difieren en la forma de las clavijas (planos, redondos) y en su número (2, 3, ...). Para saber que tipo de enchufe hay en el país al que vais, podéis mirarlo en esta web.

Si no es el mismo tipo de enchufe en los dos países necesitaremos un adaptador de un enchufe a otro y que lo podréis encontrar en tiendas de electrónica (esto es muy barato).

Espero que os sirva este artículo. Además aquí tenéis otra web con los enchufes, voltajes y frecuencias de diferentes países por si os fallan los otros enlaces

 

Crear y reparar archivos comprimirdos con volúmenes de recuperación (rev)

Volúmenes de recuperación

Introducción

Hoy os vamos a explicar otra manera de recuperar archivos rar dañados comprimidos en volumenes. Hace unos días os explicamos como hacerlo usando archivos par2 y hoy os vamos a explicar como hacerlo con volúmenes de recuperación (extensión rev).

Los volúmenes de recuperación o fichero .rev son ficheros especiales que pueden ser creados por WinRAR y que permiten reconstruir volúmenes ausentes o dañados. Solo pueden usarse con archivos multivolumen.

Creación de los ficheros de recuperación

Vamos a crear 10 archivos de recuperación a partir del fichero comprimido en volumenes. Para ello le pasaremos el parámetro rv seguido del numero de ficheros que queremos crear (en nuestro caso 10) y luego pondremos el nombre del primer fichero del volumen (en nuestro caso prueba.part01.rar)

>> rar rv10 prueba.part01.rar
 
RAR 3.80   Copyright (c) 1993-2008 Alexander Roshal   16 Sep 2008
Shareware version         Type RAR -? for help
 
Creating prueba.part01.rev
Creating prueba.part02.rev
Creating prueba.part03.rev
Creating prueba.part04.rev
Creating prueba.part05.rev
Creating prueba.part06.rev
Creating prueba.part07.rev
Creating prueba.part08.rev
Creating prueba.part09.rev
Creating prueba.part10.rev 100%
Done

Recuperación de un archivo dañado

Imaginemos que tenemos un archivo rar comprimido en volúmenes pero que nos faltan dos de esos volúmenes. Si tenemos los archivos de revisión (extensión rev) podremos intentar recuperar los archivos perdidos con ellos. Para ello tendremos que poner el parámetro rc seguido del nombre del primer archivo del volumen (en nuestro caso prueba.part01.rar)

>> rar rc prueba.part01.rar
  
RAR 3.80   Copyright (c) 1993-2008 Alexander Roshal   16 Sep 2008
Shareware version         Type RAR -? for help
 
Calculating control sums of all volumes.
5 recovery volumes found
Cannot find volume prueba.part12.rar
Cannot find volume prueba.part71.rar
2 volumes missing
Reconstructing... 100%
Done

Como podemos ver se han podido recuperar.

temas: 

Crear y reparar archivos comprimirdos con sus archivos par2

recuperar archivos multivolumen rar con archivos par2

Introducción

A veces puedes encontrarte con archivos comprimidos en varios volúmenes (prueba.part001.rar, prueba.part002.rar, prueba.part003.rar, ...). Puede darse el caso de que un archivo de este volumen no lo tengas o este corrupto (dañado). Hoy en día podemos disponer de herramientas que nos permitan descomprimir el contenido comprimido aun teniendo este problema (siempre que se haya comprimido creando unos archivos necesarios) si hay suficiente información para ello en el volumen.

Los ficheros Par2 pueden ser utilizados para reparar ficheros comprimidos dañados. Pero para ello se habrán tenido que crear al hacer el archivo comprimido. El proceso analiza los bloques de cada fichero rar y publica si esta completo, incompleto o perdido. Cada fichero par2 se puede utilizar para arreglar cierto número de bloques. Todo lo que necesitas es tener la suficiente cantidad de ficheros par2 que puedan arreglar los bloques perdidos para poder repararlos. Puedes reparar cualquier fichero rar dañado con cualquier fichero par2.

Lo primero que tendremos que hacer es instalar el programa:

>> sudo apt-get install par2

Creación de los ficheros par2

Si vamos a comprimir algo en varios archivos rar, podemos crear los  archivos par2 para que cuando lo queramos descomprimir y no tengamos alguno de los  archivos o que alguno de los archivos se haya dañado con el tiempo o al transprotarlo. Como ejemplo, vamos a crear una lista de archivos comprimidos. Vamos a comprimir el fichero prueba.avi con una compresión del 1 en archivos de 5 megas:

>> rar a prueba.rar -v5m -m1 prueba.avi
  ...
>> ls
  prueba.avi         prueba.part02.rar  prueba.part04.rar  prueba.part06.rar  prueba.part08.rar  prueba.part10.rar
  prueba.part01.rar  prueba.part03.rar  prueba.part05.rar  prueba.part07.rar  prueba.part09.rar

Ahora vamos a crear 4 archivos par2 de nombre prueba y con un tamaño igual para los 4:

>> par2create -u -n4 prueba prueba.part*.rar
   ...  
   Block size: 25012
   Source file count: 10
   Source block count: 2004
   Redundancy: 10%
   Recovery block count: 200
   Recovery file count: 4
  
   Opening: prueba.part01.rar
   ...
   Opening: prueba.part10.rar
   Computing Reed Solomon matrix.
   Constructing: done.
   Wrote 5002400 bytes to disk
   Writing recovery packets
   Writing verification packets
   Done

Ya tenemos creados los archivos par2, lo comprobamos:

>> ls
   prueba.avi   prueba.part01.rar  prueba.part03.rar  prueba.part05.rar  prueba.part07.rar 
   prueba.part09.rar  prueba.vol000+16.par2  prueba.vol048+64.par2   prueba.par2
   prueba.part02.rar  prueba.part04.rar  prueba.part06.rar  prueba.part08.rar  prueba.part10.rar 
   prueba.vol016+32.par2  prueba.vol112+88.par2

Otros ejemplos serían:

  • Crear archivos par2 del mismo tamaño y con un 10% de redundancia:
>> par2create -u -r10 prueba prueba.part*.rar

Recuperación con ficheros par2

Si queremos descomprimir un archivo comprimido en varios archivos rar pero no tenemos todos los archivos o alguno de estos esta dañado, podemos hacerlo si tenemos los archivos par2. Vamos a ver un ejemplo de uso si un archivo troceado en trozos con archivos PAR2 y que le falta 1 archivo (prueba.part019.rar). Estos son los archivos que tenemos:

>> ls
  prueba.md5
  prueba.par2
  prueba.part001.rar
  ...
  prueba.part018.rar
  prueba.part020.rar
  ...
  prueba.part030.rar
  prueba.vol000_50.PAR2
  prueba.vol050_50.PAR2
  prueba.vol100_50.PAR2

Ahora vamos a ejecutar el programa par2 para que compruebe cuantos archivos faltan o estan dañados y si tiene los suficientes bloques para recuperarlos:

>> par2repair prueba.par2
   par2cmdline version 0.4, Copyright (C) 2003 Peter Brian Clements.
  
   par2cmdline comes with ABSOLUTELY NO WARRANTY.
  
   This is free software, and you are welcome to redistribute it and/or modify
   it under the terms of the GNU General Public License as published by the
   Free Software Foundation; either version 2 of the License, or (at your
   option) any later version. See COPYING for details.
  
   Loading "prueba.par2".
   Loaded 370 new packets
   Loading "prueba.vol100_50.PAR2".
   Loaded 50 new packets including 50 recovery blocks
   Loading "prueba.vol000_50.PAR2".
   Loaded 50 new packets including 50 recovery blocks
   Loading "prueba.vol050_50.PAR2".
   Loaded 50 new packets including 50 recovery blocks

   There are 30 recoverable files and 0 other files.
   The block size used was 2000000 bytes.
   There are a total of 1529 data blocks.
   The total size of the data files is 19021486678 bytes.
   
   Verifying source files:
   
   Target: "prueba.part001.rar" - found.
   ...
   Target: "prueba.part058.rar" - found.
   Target: "prueba.part059.rar" - missing.
   Target: "prueba.part060.rar" - found.
   ...
   Target: "prueba.part130.rar" - found.
   
   Scanning extra files:
   
   Repair is required.
   1 file(s) are missing.
   30 file(s) are ok.
   You have 1495 out of 1529 data blocks available.
   You have 150 recovery blocks available.
   Repair is possible.
   You have an excess of 116 recovery blocks.
   34 recovery blocks will be used to repair.

   Computing Reed Solomon matrix.
   Constructing: done.
   Solving: done.

   Wrote 16776448 bytes to disk
   ...
   Wrote 13108224 bytes to disk

   Verifying repaired files:

   Target: "prueba.part019.rar" - found.

   Repair complete.

Como podemos ver había suficientes bloques para recuperar el archivo perdido y lo ha recuperado.

temas: 

Raid 1 por software en linux

raid 1 en linux con ubuntu

Introducción

En linux existe un programa para hacer raid por software. Este se llama mdadm. En esta guia explicaré como hacer un raid 1 con dos particiones del mismo tamaño.

Detectar un raid ya construido

Puede ser que hayamos creado un raid anteriormente en otro SO y queramos montarlo en el nuestro. Para ello podemos decirle al programa que los gestiona, que escanée las particiones para descubrir los raid que hay en ella.

Para ello tendremos que ejecutar los siguientes comandos:

>> sudo apt-get install mdadm
>> sudo mdadm --assemble --scan

Hacer un raid

Lo primero será tener instalado mdadm, que es el programa que hará el raid por software. Instalamos el programa mdadm con la siguiente orden:

>> sudo apt-get install mdadm

Por ejemplo, tenemos una partición con datos (/dev/sda5) y queremos hacer un raid 1 con otra partición que tenemos sin datos (/dev/sdb1). Lo primero será desmontar las dos particiones:

>> sudo umount /dev/sda5
>> sudo umount /dev/sdb1

Comprobamos que las dos particiones tienen el mismo tamaño:

>>sudo fdisk -l
...
/dev/sda5            5227       35741   245111706   83  Linux
...
/dev/sdb1               1       30515   245111706   83  Linux
...

Ahora vamos a crear el raid con la partición que no tiene los datos originales (acordaros que si creáis varios raid, tendréis que poner un nombre a cada uno: /dev/md0, /dev/md1, ...):

>> sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 missing
  mdadm: /dev/sda5 appears to contain an ext2fs file system
      size=245111704K  mtime=Sun Jun 21 13:01:34 2009
  Continue creating array? y
  mdadm: array /dev/md0 started.

Ahora formateamos la partición del raid. Por ejemplo, para crear un sistema de ficheros de linux lo haremos con la siguiente orden (podemos formatearlo con lo que queramos: ntfs, fat32, ext4, ...):

>> sudo mkfs -t ext4 /dev/md0

Ya tenemos el raid creado con la partición sin datos. Ahora vamos a pasar los datos, de la partición que los contiene, al raid. Para hacerlo, primero tendremos que montar las particiones:

>> sudo mount /dev/sda5 /media/datos
>> sudo mount /dev/md0 /media/raid

Ahora copiaremos todos los datos de /media/datos a /media/raid (no hay que copiar las carpetas del sistema de archivos como lost+found).

Una vez hemos llegado aquí, ya tendremos el raid creado con los datos dentro, pero solo con 1 disco. Ahora añadiremos  al raid la partición que tenía los datos (/dev/sda5) para que se reconstruya con los datos del raid:

>> sudo mdadm --manage /dev/md0 --add /dev/sda5
   mdadm: added /dev/sdb1

Se empecará a copiar la información de la partición primaria en la que hemos añadido ahora. Para ver como va el proceso podremos ejecutar el siguiente comando para ver el % que lleva: 

>> cat /proc/mdstat
  Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
  md0 : active raid1 sdb1[2] sda5[0]
        245111616 blocks [2/1] [U_]
        [>....................]  recovery =  0.3% (857600/245111616) finish=66.4min speed=61257K/sec

O tambien podemos ver el proceso de reconstrucción con este otro comando:

>> sudo mdadm --detail /dev/md0
/dev/md0:
...
    Update Time : Sun Jun 21 15:38:24 2009
          State : clean, degraded, recovering
 Active Devices : 1
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 1
 
 Rebuild Status : 13% complete
...
    Number   Major   Minor   RaidDevice State
       0       8        5        0      active sync   /dev/sda5
       2       8       17        1      spare rebuilding   /dev/sdb1

Esperaremos hasta que desaparezca esta línea. Una vez acabado este proceso, iremos al fichero /etc/mdadm/mdadm.conf y añadiremos la línea en la que indicamos las particiones queu forman el raid, quedando el fichero de la siguiente forma:

...
# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
DEVICE partitions
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
# This file was auto-generated on Thu, 21 May 2009 21:47:53 +0200
# by mkconf $Id$
ARRAY        /dev/md0 devices=/dev/sda5,/dev/sdb1

Una vez que ya tenemos creado dispositivo raid, vamos a ponerla en el /etc/fstab para que el ordenador la monte cada vez qeu se encienda. Lo primero que tenemos que saber es el UUID de nuestra particion raid. Para ello tendremos que ejecutar la siguiente orden (por ejemplo pasa saber el UUID del dispositivo md0):

>> sudo vol_id -u /dev/md0
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

(* En versiones ams nuevas de ubuntu podemos usar >> sudo blkid)

Una vez tenemos el UUID vamos a editar el fichero /etc/fstab, comentaremos las líneas en las que aparezcan los dispositivos que forman parte del raid (en nuestro caso /dev/sdb1 y /dev/sda5) si es que estan en el fichero (igual aparecen por su UUID, podeis saber cual es con la orden sudo vol_id -u /dev/XXX) y añadiremos la línea del nuevo dispositivo:

# /dev/sda5
#UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX       /media/SIN_RAID1        ext3    relatime        0       2
# /dev/sdb1
#UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX       /media/SIN_RAID2        ext3    relatime        0       2
# /dev/md0
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX    /media/CON_RAID    ext3    relatime    0    2

Quitar un raid

Lo primero que tendremos que saber es que particiones forman el raid. Por ejemplo, si queremos desacer el raid /dev/md1, tendremos que ejecutar el siguiente comando para saber las particiones que lo forman:

>> sudo mdadm --detail /dev/md1
/dev/md1:
...   
Number Major Minor RaidDevice State
0 8 6 0 active sync /dev/sda6
1 8 34 1 active sync /dev/sdc2

Como podemos ver, el raid esta formado por las particiones /dev/sda6 y /dev/sdc2. Una vez sabemos esto pararemos el raid y lo desmontamos con las siguientes ordenes:

>> mdadm --stop /dev/md1
>> sudo umount /dev/md1

Ahora limpiaremos las dos particiones de la configuración del raid con las siguientes ordenes:

>> mdadm --zero-superblock /dev/sda6
>> mdadm --zero-superblock /dev/sdc2

Y por último tendremos que ir al fichero /etc/mdadm/mdadm.conf y tendremos que quitar la línea correspondiente a el raid, en nuestro caso la siguiente:

ARRAY /dev/md1 devices=/dev/sda6,/dev/sdc2

Con esto ya habremos quitado el raid /dev/md1.

Comprobar el estado de un raid

Si lo que queremos es comprobar el estado de un raid, tendremos que ejecutar el siguiente comando. Por ejemplo para comprobar el estado del rad /dev/md0:

>> sudo mdadm --detail /dev/md0
/dev/md1:
        Version : 00.90
  Creation Time : Thu Jul  2 22:46:31 2009
     Raid Level : raid1
     Array Size : 271610816 (259.03 GiB 278.13 GB)
  Used Dev Size : 271610816 (259.03 GiB 278.13 GB)
  Raid Devices : 2
  Total Devices : 2
  Preferred Minor : 1
  Persistence : Superblock is persistent
 
    Update Time : Fri Jul  3 00:07:06 2009
          State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
 
           UUID : 8fe624fd:cef7961e:ce24d2e1:c686696d (local to host pcpedro)
         Events : 0.14
  
   Number   Major   Minor   RaidDevice State
       0       8        6        0      active sync   /dev/sda6
       1       8       34        1      active sync   /dev/sdc2

Problemas

Unexpected inconsistency

Al encender el ordenador, cuando esta cargando ubuntu se para el proceso y saca el siguiente mensaje:

Log of fsck -C3 -R -A -a
Sat Sep 19 13:01:06 2009
 
fsck 1.41.4 (27-Jan-2009)
D: The filesystem size (according to the superblock) is 61277926 blocks
The physical size of the device is 61277904 blocks
Either the superblock or the partition table is likely to be corrupt!
 
D: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
    (i.e., without -a or -p options)
 
fsck died with exit status 4
Sat Sep 19 13:01:07 2009
----------------

Se queda parado en la consola y tengo que poner exit para que siga la carga de ubuntu.

Solución

Este problema me apareció cuando metí al raid un sistema de ficheros ya creado para no tener qeu mover los datos que contenía. Y para solucionarlo, tuve que seguir estos pasos:

  • Quitar el raid (según indico en este artículo).
  • Volverlo ha hacer mediendo al raid una partición vacía.
  • Formatear el raid.
  • Copiar los datos en el raid.
  • Y por último meter la otra particion por el raid.

Has no superblock

A veces, cuando intentas activar un raid, puede aparecer el siguiente error:

>> sudo mdadm -A /dev/md1
mdadm: /dev/sdd2 has no superblock - assembly aborted

Miramos primero que raids tenemos activados:

>> cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10]
md1 : inactive sda7[1](S)
      271610816 blocks
       
md_d1 : inactive sdd3[0](S)
      271610816 blocks

unused devices: <none>

Solución

Como podemos ver, hay un dispositivo que se ha creado con una de las particiones del raid md1, por eso no deja activarlo. Para solucionarlo tendremos que parar los dos raid (el que no nos funciona y el desconocido) y luego activaremos y montaremos el nuestro:

>> sudo mdadm --stop /dev/md_d1
mdadm: stopped /dev/md_d1
>> sudo mdadm --stop /dev/md1
mdadm: stopped /dev/md1
>> sudo mdadm -A /dev/md1
mdadm: /dev/md1 has been started with 2 drives.
>> sudo mount /dev/md1
temas: 

Deshabilitado el cambio de usuario al acceder a carpetas compartidas en Windows XP

Usuario invitado deshabilitado en carpetas compartidas en windows xp

Puede darse el caso de que si compartimos una carpeta en un Windows XP cuando intentamos acceder a ella desde otra máquina nos fuerza a autentificarnos con el usuario invitado (no podemos cambiar de usuario). Esto puede deberse a que por defecto en Windows XP Home Edition y en Windows XP Professional unidos a un grupo de trabajo, esta activado la interfaz de uso compartido simple de archivos.

Si la desactivamos, tendremos más control sobre los permisos concedidos a usuarios individuales. Sin embargo, para mantener seguras las carpetas y archivos deberemos tener un conocimiento avanzado de los permisos de recursos compartidos y de NTFS.

Si os aparece deshabilitado el usuario con el que os autentificáis, tendréis que hacer lo siguiente para desactivar la interfaz de uso compartido simple de archivos:

  • Entramos en Mi PC.
  • Vamos al menú Herramientas y le damos a Opciones de carpeta.
  • Seleccionamos la pestaña Ver.
  • Buscamos la opción Utilizar uso compartido simple de archivos (recomendado) y lo desactivamos.
  • Y por último le damos al botón Aceptar.

Ahora ya podremos indicarle el usuario con el que queremos autentificarnos al acceder a la carpeta compartida.

temas: 

Como grabar el Activate.iso para la Xbox 360

Grabar el activate.iso para la xbox 360

 Algunos usuarios de la xbox 360 habréis oido hablar del Activate.iso. Este dvd se usa para varias cosas:

  • Pasar a modo Vendor los lectores Samsung y así poder flashearlos.
  • Jugar a juegos de wave 3 parcheados para poder jugar con un ixtreme 1.5 y anteriores en una consola con ixtreme 1.5.1 y posteriores.

Lo podéis bajar de aquí. (La contraseña para descomprimirlo es activate.intropedro.com).

Para grabarlo solo he encontrado la forma de hacerlo con windows (Yo lo hice desde un Windows virtual en mi VirtualBox de Ubuntu). Para grabarlo utilicé el programa ImgBurn

  • Nos bajamos el programa de su páguina web: http://www.imgburn.com/
  • Lo instalamos.
  • Lo ejecutamos.
  • Nos vamos al menú Herramientas y entramos en Opciones ...
  • Seleccionamos la pestaña Grabar y en Salto de capa (Para medios DL) seleccionamos Calcular óptimo y le damos a Aceptar.
  • Entonces en la pantalla principal del programa seleccionaremos Grabar imagen en disco.
  • Seleccionamos el archivo activate.iso.
  • Ponemos 2,4x en el campo de Velocidad de escritura en el cuadro de opciones.
  • Le damos al icono de grabar.
  • Nos saldrá un mensaje diciendonos "that the image is small enough for a regular DVD R, do you want to continue anyway?". Le decimos que Si para grabarlo en un DVD de doble capa.
  • Nos aparecerá otro mensaje diciendonos: "even though the image is small enough to fit into one layer its best to write in both layers, do wou wanna go away from the norm and write in only one layer?". Le decimos que No para que la grabe en las dos caras.
  • Empezará el proceso de grabación y terminará correctamente. Ya podremos utilizar nuestro disco.

Instalar dos tomcats en la misma máquina como servicios

 Dos tomcats en la misma máquina

Introducción

Instalar dos tomcats en la misma máquina como servicios no es una tarea facil a simple vista, ya que hay que seguir unos pasos en los cuales hay que modificar el registro de windows. Los pasos a seguir son los siguientes:

  • Instalar el primer tomcat como servicio de windows.
  • Modificar unos datos del servicio.
  • Modificar unos datos del monitor del tomcat instalado.
  • Modificar el desinstalador del tomcat instalado.
  • Cambiar los puertos del tomcat.
  • Instalar el segundo tomcat como servicio.

Ahora os explico los pasos más detalladamente.

Instalación

Se realiza la instalación de primer tomcat marcando la opción tomcat/service.

Una vez realizada la instalación se va a modificar el registro del sistema, para esto hay que ejecutar la aplicación regedit. Tendremos que ir al menú inicio, darle a ejecutar y escribiremos regedit y le daremos al enter. Ahora haremos los siguientes cambios:

Modificamos el servicio

  • Vamos a la ruta HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\ y le cambiamos de nombre a Tomcat5 por otro cualquiera, por ejemplo Tomcat5_primario.
  • Vamos a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\Tomcat5_primario y cambiamos el valor de la variable DisplayNameModificar de Apache Tomcat al que queramos, por ejemplo por Apache Tomcat Primario.
  • Vamos a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\Tomcat5_primario y cambiamos el valor de la variable ImagePath del valor c:\tomcat\bin\tomcat5.exe //RS//Tomcat5 por  c:\tomcat\bin\tomcat5.exe //RS//Tomcat5_primario. (Cuidado! tiene que ser el mismo nombre que le pusimos a la carpeta del primer paso).
  • Ahora iremos a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\Tomcat5_2\Enum y cambiaremos el valor de la variable 0 de Root\LEGACY_TOMCAT5\0000 por otro como por ejemplo Root\LEGACY_TOMCAT5_PRIMARIO\0000.
  • Ahora dependiendo si estamos en un Windows de 32 bits o de 64 bits tendremos que hacer cosas diferentes:
    • Para un windows de 32bits haremos lo siguiente:
      • Vamos a HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0 y renombraremos al carpetatomcat5 por otra como por ejemplo tomcat5_primario.
      • Por último iremos a HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\tomcat y renombraremos la carpeta 5.5 por otro nombre, por ejemplo 5.5_primario.
    • Para un Windows de 64bits haremos lo siguiente:
      • Vamos a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0 y renombraremos al carpeta tomcat5 por otra como por ejemplo tomcat5_primario.
      • Por último iremos a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\tomcat y renombraremos la carpeta 5.5 por otro nombre, por ejemplo 5.5_primario.

Modificamos el monitor del tomcat

Para windows de 32 bits:

  • Nos movemos a HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run y renombramos la variable ApacheTomcatMonitor por otro nombre, por ejemplo ApacheTomcatMonitorPrimario y le cambiamos el valor de "C:\tomcat\bin\tomcat5w.exe" //MS//Tomcat5 por el nuevo "C:\tomcat\bin\tomcat5w.exe" //MS//Tomcat5_primario. (Cuidado! el último nombre tiene que ser igual al nombre que le pusimos en el primer paso de la edición del servicio)

Para windows de 64 bits:

  • Nos movemos a HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run y renombramos la variable ApacheTomcatMonitor por otro nombre, por ejemplo ApacheTomcatMonitorPrimario y le cambiamos el valor de "C:\tomcat\bin\tomcat5w.exe" //MS//Tomcat5 por el nuevo "C:\tomcat\bin\tomcat5w.exe" //MS//Tomcat5_primario. (Cuidado! el último nombre tiene que ser igual al nombre que le pusimos en el primer paso de la edición del servicio)

Modificamos el desinstalador del tomcat

Para Windows de 32 bits:

  • Vamos a  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ y renombramos Apache Tomcat 5.5 por Apache Tomcat 5.5_2.
  • Vamos a  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5 y cambiamos el valor de la variable DisplayName de Apache Tomcat 5.5 (remove only) por el de Apache Tomcat 5.5 (remove only) 2 (Asi sabremos cual es cual en la lista de programas para desinstalar).

Para Windows de 64 bits:

  • Vamos a  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ y renombramos Apache Tomcat 5.5 por Apache Tomcat 5.5_2.
  • Vamos a  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Apache Tomcat 5.5 y cambiamos el valor de la variable DisplayName de Apache Tomcat 5.5 (remove only) por el de Apache Tomcat 5.5 (remove only) 2 (Asi sabremos cual es cual en la lista de programas para desinstalar).

Cambiamos los puertos para que no colisionen

  • Modificar en el fichero server.xml el valor de los siguientes puertos por otros:
...
<Server port="8005" shutdown="SHUTDOWN">
...
<Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
...
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
...

Ya tenemos todos cambiado, ahora podremos instalar el segundo tomcat con todo por defecto.

temas: