Migración MySQL de un servidor a otro

Esta semana he tenido que cambiar de proveedor de VPS y con ello he tenido que migrar todos los datos de un servidor a otro. PAra el tema de ficheros la cosa ha estado fácil, un simple rsync nos irá moviendo los archivos que necesitemos junto con sus permisos. El comando es algo complicado pero funcional:

root@improvisa:~# rsync -alHpogDtv -e «ssh -p 22» –numeric-ids –delete-after –stats root@serrvidor_origen:/var/www/ /var/www/

Con esto obtendremos una copia exacta de nuestro directorio para apache. Decir que también copiara enlaces simbólicos, con lo que podremos hacer copias de lo que queramos, por ejemplo el directorio de configuración de apache2 /etc/apache2/. Los pasos de usuarios propietarios y grupos propietarios lo hago de modo numérico, con lo cual lo mejor es repasar que los números coinciden con los nombres de usuario correspondientes. Fijaros que los permisos coinciden con la anterior nota que creé en improvisa sobre los premisos óptimos del directorio /var/www/ de apache2: Permisos óptimos para apache2 en Debian

Una vez que tenemos todos los archivos debemos migrar las bases de datos de MySQL, para ello debemos generarnos un script que sacará el nombre de la base de datos, el usuario que tiene permisos sobre ella y la password, una vez hecho creará dicha base de datos en el servidor remoto junto con su usuario correspondiente y copiará los datos al servidor nuevo. El script es el siguiente, un modificado de :

#!/bin/bash
# Se debe ejecutar en el servidor origen
# Script creado por Juanmi de la versión de nixCraft project <http://cyberciti.biz/fb/>
# ------------------------------------------------------------
# Configurar primero - MySQL local usuario/password
_lusr="root"
_lpass="password_local"
_lhost="localhost"

# Configurar primero - MySQL remoto usuario/password
_rusr="root"
_rpass="password_remoto"
_rhost="localhost"

# Configurar primero - Acceso SSH remoto usuario/password/puerto
# Lo ideal sería tener acceso ssh sin password como dicen aquí: http://www.doctoresdelpc.com/noticias/conectarse-por-ssh-sin-password/
_rsshusr="root"
_rsshhost="17.126.128.142"
_rsshport="22"

# Fichero SQL que pasaremos al servidor remoto con los datos
_tmp="/tmp/output.mysql.$$.sql"
_tmp_con="/tmp/output_con.mysql.$$.sql"

# Debemos quitar del for las bases de datos que NO queramos copiar con grep -v, si solo queremos una usar grep
for i in $( mysql -u "$_rusr" -p"$_lpass" -e "show databases;"|grep -v information_schema|grep -v Database|grep -v mysql|grep -v phpmyadmin ); do

# Creación de accesos a la bbdd
_db="$i"
_user=`echo $i|cut -c1-16`

echo ""
echo "##### $i #####" |tr '[a-z]' '[A-Z]'
echo ""

# Nos aseguramos que podemos entrar a la base de datos
mysqladmin -u "$_lusr" -p"$_lpass" -h "$_lhost" ping &>/dev/null || { echo "Error: El servidor MySQL no está online o estos datos: _lusr, _lpass, y _lhost no son correctos"; exit 2; }

# Nos aseguramos que la base de datos existe
mysql -u "$_lusr" -p"$_lpass" -h "$_lhost" -N -B -e'show databases;' | grep -q "^${_db}$" || { echo "Error: DBase de datos: $_db no encontrada."; exit 3; }

##### OJO, en el paso 1 el $_db debe ir escapado con \, debe quedar así sin espacios \ ` $_db \ ` Se muestra sin \ por el plugin de wordpress
##### Paso 1: Creamos el fichero sql para pasasrselo al remoto con la base de datos y el usuario/password con acceso ####
echo "*** Creando .sql con información de la base de datos $_db..."
echo "create database IF NOT EXISTS \`$_db\` " > "$_tmp"

# Creamos la query para sacar el usuario y el password que tiene permisos para usar esa base de datos.
mysql -u "$_lusr" -p"$_lpass" -h "$_lhost" -B -N \
-e "SELECT DISTINCT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') AS query FROM user" \
mysql \
| mysql -u "$_lusr" -p"$_lpass" -h "$_lhost" \
| grep "$_user" \
| sed 's/Grants for .*/#### &/' >> "$_tmp"

### Paso 2: Añadimos ; al final de todas las lineas del archivo, para que en el remoto no falle.
sed "s/$/;/" "$_tmp" > "$_tmp_con"

##### Paso 3: Mandamos el sql al servidor remoto ####
echo "*** Mandando $_db en ${_rsshhost}..."
scp -P "$_rsshport" "$_tmp_con" ${_rsshusr}@${_rsshhost}:/tmp/

#### Paso 4: Creamos la base de datos y el usuario en el servidor remoto mediante ssh ####
echo "*** Creando $_db y usuario en ${_rsshhost}..."
ssh -p "$_rsshport" ${_rsshusr}@${_rsshhost} mysql -u "$_rusr" -p"$_rpass" -h "$_rhost" < "$_tmp_con"

#### Paso 5: Llenamos la base de datos correspondiente con mysqldump ####
echo "*** Exportando los datos de $_db desde $HOSTNAME a ${_rsshhost}..."
mysqldump -u "$_lusr" -p"$_lpass" -h "$_lhost" "$_db" | ssh -p "$_rsshport" ${_rsshusr}@${_rsshhost} mysql -u "$_rusr" -p"$_rpass" -h "$_rhost" "$_db"

# Borramos los ficheros generados. 
rm -f "$_tmp"
rm -f "$_tmp_con"
ssh -p "$_rsshport" ${_rsshusr}@${_rsshhost} rm "$_tmp_con"

done

Una vez que tengamos creado el scrip le daremos permisos para poder ejecutarlo:

root@improvisa:~# chmod a+x ./migracion_mysql

Y ahora solo queda ejecutarlo en la máquina local, el script se encargará de mandar todo al nuevo servidor.

Lo único que nos quedará por hacer es ejecutar la consulta en el MySQL remoto FLUSH PRIVILEGES; para que los usuarios recientemente creados puedan empezar a utilizar las bases de datos.

Un saludo y espero que os valga.

Manual técnico de SAI Atlantic Star T3 33

Hola a todos, os dejo el manual técnico del SAI – UPS Atlantic Star T3 33 de la casa Inverter Electrónica S.L.

El número de modelo es: 25800033-ST
El nombre del modelo es: Atlantic Star T3 33 o Star T3 1-3,3KVa

Os dejo el manual de especificaciones técnicas ya que la casa no lo pone para su descarga directa y hay que llamarles para que te lo manden al mail, así si alguno lo necesita aquí lo tiene.

Manual técnico SAI – Star T3 1-3,3KVa

Saludos.

DD con barra de progreso y estadísticas

Dejo esta autonota para que cuando ejecutemos el comando DD podamos ver la barra de progreso de lo que va ocurriendo.

El que haya utilizado este comando sabe que a veces puede durar días y el no saber ni por donde anda desespera.

Para ello necesitaremos instalar el pequeño comando pv, con un simpre apt-get install pv le tendremos.

El comando es el siguiente:

sudo dd if=/dev/cdrom bs=4096 | pv -s `sudo mount /dev/cdrom /media/cdrom && du -sb /media/cdrom/ |awk '{print $1}' && sudo umount /media/cdrom`| sudo dd bs=4096 of=imagen_cdrom.iso

Nos mostrará por pantalla lo siguiente:

38MB 0:00:44 [3,61MB/s] [=======>                  ] 33% ETA 0:01:28

Saludos y espero que os valga.

Dazzle vc 80 en Windows 7

Dejo los drivers para la capturadora de video Dazzle video capture 80 para Windows 7 32 bits

Una vez instalados los drivers manualmente podremos capturar el video con cualquier software, como por ejemplo AMCap, Pinnacle Studio 15 no soporta la captura con su propia tarjeta con lo que tenemos que recurrir a otro programa.

Para descargar los drivers pichar aquí: drivers dazzle vc 80 windows 7

Saludos.

VirtualBox desde web con phpVirtualBox

Improvisa :: Informática :: VirtualBox desde web con phpVirtualBoxBueno parece que últimamente estoy en fase creativa y me voy a escribir dos entradas en dos días.

Ayer bajándome un lector de RSS llamado Flipboard para mi iPhone el cual también funciona en Android y que os recomiendo, pude leer de casualidad la creación de un Front-End para el manejo de VirtualBox desde la web escrito en PHP.

La verdad es que como habréis podido leer en otras reseñas de improvisa, por aquí utilizamos mucho VirtualBox y la verdad es que siempre hemos andado intentando manejarlo sin tener que instalar las X en un servidor Debian. Podéis leer una entrada que tenemos sobre como manejar VirtualBox desde la consola: https://www.improvisa.com/02-03-2009/virtualbox-desde-consola/

Improvisa :: Informática :: VirtualBox desde web con phpVirtualBoxCon este aplicativo escrito en PHP llamado phpVirtualBox conseguiremos manejar desde la web las máquinas virtuales de una forma totalmente visual al igual que lo hacemos desde el entorno visual en nuestro escritorio.

Es un servicio que funciona bajo todas las plataformas. En este pequeño manual os eneseñaremos a instalarlo sobre Debian Squezze y manejando la ultima versión de VirtualBox, no VirtualBox OSE la versión nativa de Debian, sino la versión estable para Debian descargada de la web.

Sin más pasemos a ver como manejar VirtualBox desde la web con phpVirtualBox:

(más…)

Log Remoto con RSyslog + LogAnalizer + Mysql

Debian LogoHola a todos, hacía tiempo que no escribía un manual y bueno hoy necesitaba montar un sistema remoto de log para saber que le ocurre a un router y una vez logrado pues me he animado a escribir el manual de instalación.

Como siempre el sistema que he utilizado es Debian. Utilizaremos para recibir el log remoto la aplicación que viene por defecto en Debian llamada Rsyslog a la cual le añadiremos la funcionalidad para guardar los logs en una base de datos de MySQL

Todo esta configuración la apoyaremos con la instalación de LogAnalizer, aplicativo PHP que nos dará la ventaja de poder consultar nuestros logs y realizar búsquedas sobre las base de datos. También nos dará la posibilidad de generar estadísticas.

Sin más pasemos a ver como configurar el servicio:

(más…)

Licencia gratuita de Avast

Dejo como autonota la licencia gratuita que me ha otorgado Avast hasta el Septiembre del 2014

C07756868H1200A0815-M22H57SF

Comandos útiles en Debian

Después de surgirme un problema de apagado constante en un servidor e intentar averiguar la causa, aún estoy en ello, dejo este chuletario de comandos útiles para Debian.

¿Quien hay conectado y qué hace?
root@improvisa:/ w

¿Quien hay conectado?
root@improvisa:/ who

¿Conexiones establecidas? 
root@improvisa:/ netstat -putan|grep ESTABLISHED

¿Últimos logins hechos?
root@improvisa:/ last

¿Últimos intentos de login fallidos?
root@improvisa:/ lastb

¿Últimos reinicios?
root@improvisa:/ last reboot

¿Procesos ejecutandose?
root@improvisa:/ ps aux

¿Que está utilizando un proceso?
root@improvisa:/ lsof -p 1234 #cambiar 1234 por el nombre del proceso que aparece con ps aux

¿Tenemos algún rootkit instalado?
root@improvisa:/ chkrootkit #necesitamos instalarlo antees con apt-get install chkrootkit
root@improvisa:/ rkhunter -c –createlogfile /var/log/rkhunter.log #necesitamos instalarlo antees con apt-get install rkhunter

¿Algún puerto a la escucha escondido?
root@improvisa:/ unhide-tcp

¿Algún proceso escondido?
root@improvisa:/ unhide proc
root@improvisa:/ unhide sys
root@improvisa:/ unhide brute 

¿Tenemos bien la memoria o está defectuosa?
root@improvisa:/ apt-get install memtest86 #una vez instalado nos aperecerá al inicio de GRUB una opción para testearla

¿Problemas de Temepratura de Disco Duro?
root@improvisa:/ hddtemp /dev/sda 

¿Problemas de Temepratura de CPU?
root@improvisa:/ sensors #tendremos que instalar antes el paquete lm-sensors y autodectectar la cpu que tenemos con sensors-detect (Contestar a todo Y)

¿Tráfico de datos raro?
root@improvisa:/ iptraf # Debemos instalar antes la aplicación con apt-get install iptraf
root@improvisa:/ tcpdum # Debemos instalar antes la aplicación con apt-get install tcpdump
root@improvisa:/ wiresark # Debemos instalar antes la aplicación con apt-get install wiresark

Hasta aquí dejo esta lista la cual iré rellenado de comandos útiles para debian.

¡Saludos!

Borrar música comprada de IPhone

Me ha surgido un problema con IPhone e Itunes, me era imposible borrar música comprada en IStore, por más que borraba el cd de la biblioteca este se volvía a copiar del IPhone al ITunes de nuevo. Probé de mil formas y con ninguna funcionó. Incluso al decirle que no sincronizase la música borró todo menos el cd en cuestión un auténtico infierno, lleno de charlies…….

El truco para poder borrar música comprada en el iphone es bien simple una vez que lo sabes. En iOS 5 puedes borrar música desde el IPhone te vas a la canción o al álbum que quieras borrar y encima deslizas el dedo hacia a la derecha y te saldrá el texto para eliminarlo. Como en la foto:

Improvisa :: Informática :: Borrar música comprada de IPhone

Desde aquí también expresar mis más sinceras quejas sobre ITunes, de las aplicaciones con menos facilidad de uso que he visto en mucho tiempo y encima obligados.

Saludos!

Internet Explorer 8 en modo explorador de windows para FTP

El otro día le surgió la duda a un amigo y al resolverla he decidido ponerla por aquí para que no se nos olvide ni a el ni a mi.

El problema que tuvo es que necesita poder gestionar su acceso FTP desde IE 8 o IE9 de la misma forma que si fuese un explorador de Windows, es decir poder copiar una carpeta entera y pegarla y no link a link, por ejemplo.

Para ello basta con hacer los siguiente:

1.- En Internet Explorer pinchar en Herramientas -> Opciones de Internet -> Opciones avanzadas  y comprobar que está marcada la casilla Habilitar la vista de carpetas para FTP

2.- Debemos entrar en el registro para ello pincharn en:

Inicio -> Ejecutar… regedit o Inicio -> Programas -> Accesorios -> Simbolo del sistema y ahí escribir regedit.

Buscar la siguiente linea:

HKLM\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_INTERNET_SHELL_FOLDERS

Y debemos cambiar el valor a 1

Reiniciar Internet Explorer y entrar en ftp://ftp.debian.org

Saludos.