A veces me sucede, quiero migrar la información de un servidor CentOS, porque me conviene más tenerlo en otro hardware, porque el otro hardware tiene mejores especificaciones, porque el usuario lo requiere, en fin. Supongamos que tenemos la necesidad de tener en un servidor CentOS recién instalado los mismos paquetes que en el servidor anterior.
Lógicamente se puede no hacer este paso, simplemente a veces lo mejor es ir viendo uno a uno los sistemas que tenemos, entonces instalándoles, reconfigurándoles, etc.. hasta llegar a un estado en el cual el nuevo servidor es muy similar al viejo. Sin embargo a veces esta forma es medio aburrida.
Lo primero que debemos es garantizar que los mismos repositorios del server viejo estén configurados en el server nuevo, para ello deberás mirar en /etc/yum.repos.d/ de ambos equipos y si algún repositorio faltara, le instalas en el nuevo. (por ejemplo el de epel que es bien famoso). Es importante este paso pues si un repo no está presente, lógicamente terminarás no instalando uno o varios paquetes por falta de este repo, etc.
Ahora qué tal que yo en el servidor viejo ponga esto:
yum –disablerepo=* list “*”|awk -F”.” ‘{print $1 ” \\”}’
Este es EL COMANDO. Es el comando que me permitirá listar todos los paquetes instalados en el servidor viejo, y los imprimirá con un \ al final.
Esta salida me la llevo a un editor de texto, elimino el último \ y arriba arriba pongo yum install \
Entonces le copio toooooda la salida de este comando en el nuevo quedaría algo así como:
yum install \
paquete1 \
paquete2 \
.
.
paqueteX
(fíjate que al último le quité el \)
Y listo, el yum se encargará de instalar todos los paquetes que en el nuevo servidor no existan pero que sí habían en el viejo.
De esta forma garantizo al menos que por falta de paquetes nada me va a fallar. Lógicamente luego de este paso me tocaría copiar los archivos importantes del /etc del viejo servidor al /etc del nuevo. Para esto lo que hago realmente es una copia del /etc del viejo y lo pongo en /root/etc (no le pongo directamente en /etc!!!)
Luego con rsync le voy sacando, digamos que me interesa el archivo /etc/mail del viejo, hago esto:
rsync -avP /root/etc/mail /etc/
digamos que me interesa copiar así mismo el archivo /etc/httpd/conf y /etc/httpd/conf.d del viejo al nuevo.. cómo haría? Exacto!
rsync -avP /root/etc/httpd/conf /etc/httpd/
rsync -avP /root/etc/httpd/conf.d /etc/httpd
y bueno, ya el resto es aburrido, levantar los servicios, copiar los archivos de /home y/o de /var que quiera, etc…