Migrar cuentas de cPanel entre servidores puede ser un desafío cuando se desea evitar un respaldo completo debido a limitaciones de espacio, tiempo o ancho de banda, especialmente con directorios grandes como public_html
o /mail
. Este artículo detalla cómo realizar una migración eficiente utilizando el script /scripts/pkgacct
para generar respaldos y rsync
para transferir directorios grandes, excluyendo /mail
si es necesario. También se explica cómo usar chroot
en modo rescate para escenarios críticos. Este enfoque optimiza los recursos y minimiza el riesgo de pérdida de datos, adaptándose a diferentes niveles de acceso: cPanel mediante navegador, SSH con cPanel, SSH directo al servidor y acceso root en modo rescate.
1. Evaluar el Nivel de Acceso Disponible
Descubre Qué Tipo de Acceso Tienes al Servidor
Antes de lanzarte a migrar una cuenta de cPanel, necesitas saber con qué herramientas cuentas en los servidores de origen y destino. No todos los accesos son iguales: algunos te limitan al panel de cPanel en el navegador, mientras que otros te dan más libertad con SSH o incluso control total como usuario root. Vamos a explorar cómo identificar tu nivel de acceso, qué puedes hacer con cada uno, y cómo lidiar con las limitaciones que impone tu proveedor de hosting. ¡Empecemos!
Acceso Solo por cPanel (Navegador)
Si tu acceso está limitado al panel de cPanel a través del navegador, estás en el modo más básico. Esto es típico en planes de hosting compartido, donde no tienes permisos para usar la línea de comandos. Para confirmar si este es tu caso, inicia sesión en cPanel (normalmente en https://tudominio.com:2083
o algo similar) y busca la opción “Terminal” en la sección “Avanzado”.
Si no la ves, estás restringido al navegador. También puedes intentar conectarte al servidor con un cliente SSH como PuTTY; si no funciona, es otra señal de que solo tienes acceso por cPanel.
En este nivel, dependes de herramientas gráficas como el Administrador de Archivos o phpMyAdmin. Son útiles, pero tienen sus limitaciones: no puedes usar comandos como tar
o rsync
, y si intentas comprimir un directorio enorme como public_html
, podrías toparte con restricciones de memoria o tamaño de archivo. Tu proveedor de hosting establece estos límites (como upload_max_filesize
o memory_limit
), así que revisa la sección “PHP Info” en cPanel para conocerlos. Si necesitas más libertad, contacta a tu proveedor y pregunta si pueden habilitarte el acceso SSH o la terminal de cPanel.
Acceso SSH a Través de la Terminal de cPanel
Si encuentras la opción “Terminal” en cPanel, ¡buenas noticias! Tienes acceso SSH limitado, lo que te permite usar comandos como /scripts/pkgacct
para crear respaldos o, en algunos casos, rsync
para transferir archivos. Este nivel es común en planes de hosting compartido o VPS donde el proveedor permite un poco más de control. Para verificarlo, abre la terminal en cPanel y prueba comandos como:
which rsync
/scripts/pkgacct --help
Si funcionan, estás listo para trabajar.
Ahora, ¿cómo se activa esta terminal? Depende de tu proveedor. Algunos la habilitan por defecto, pero otros la desactivan en planes básicos por seguridad. If no ves la opción “Terminal”, contacta al soporte técnico y pide que la activen en WHM (el panel de administración del servidor). Ten en cuenta que, aunque tengas acceso a la terminal, sigues en un entorno compartido, lo que significa que el uso de CPU, memoria y disco puede estar restringido. Por ejemplo, un rsync
de un directorio grande podría ser lento si el servidor limita los recursos. Si herramientas como rsync
no están disponibles, pregunta a tu proveedor si pueden instalarlas o considera usar una máquina local para tareas como migrar correos con imapsync
.
Acceso SSH Directo al Servidor
Con acceso SSH directo, tienes más libertad. Este nivel es típico en VPS o servidores dedicados, donde puedes conectarte al servidor con un cliente como:
Para confirmar, intenta iniciar sesión y navegar por el sistema de archivos (por ejemplo, /home/usuario
). Si puedes ejecutar comandos como /scripts/pkgacct
o rsync
sin restricciones de entorno compartido, estás en este nivel.
Para activar este acceso, necesitas las credenciales SSH de tu proveedor (usuario, contraseña o clave SSH). Algunos proveedores usan puertos no estándar (como 2222 en lugar de 22), así que revisa la documentación o pregunta al soporte técnico. Aunque este nivel te da más control que la terminal de cPanel, no tienes permisos de root, por lo que no puedes instalar software ni cambiar configuraciones del sistema. Además, en servidores compartidos, el proveedor podría limitar recursos como CPU o memoria, lo que afecta operaciones pesadas. Usa comandos como top
o df -h
para verificar el estado del servidor antes de empezar:
top
df -h
Acceso Root y Modo Rescate (Para Casos Críticos)
Si tienes acceso root, tienes el control total del servidor. Esto es común en servidores dedicados o VPS, donde puedes iniciar sesión como root con:
O a través de la consola del proveedor (por ejemplo, en DigitalOcean o Hetzner). El modo rescate es un caso especial: arrancas el servidor desde una imagen de recuperación para rescatar datos o migrar cuentas en un servidor dañado. Para entrar en modo rescate, accede al panel de control de tu proveedor, selecciona la opción de recuperación, y sigue las instrucciones para cargar una imagen Linux.
En modo rescate, usas chroot
para simular el entorno original del servidor, lo que te permite ejecutar herramientas como /scripts/pkgacct
. Esto requiere conocimientos avanzados: debes identificar y montar las particiones correctas (como /dev/sda1
) y configurar sistemas de archivos esenciales (/dev
, /proc
, etc.). Si no estás familiarizado con estos pasos, el modo rescate puede ser complicado, y dependerás del soporte del proveedor para guiarte. Este nivel no tiene casi limitaciones, pero un error como root puede dañar el sistema, así que procede con cuidado.
Diferencias entre un Usuario Común y un Usuario Root
Un usuario común (como los niveles de cPanel o SSH limitado) solo puede trabajar dentro de su directorio, como /home/usuario
. No puede instalar software ni modificar configuraciones del sistema, y está sujeto a los límites de recursos del proveedor. Por ejemplo, no puedes montar particiones o usar herramientas que requieran permisos elevados. En cambio, un usuario root tiene acceso a todo el servidor, desde /etc
hasta /var
, y puede instalar software, cambiar configuraciones o recuperar datos en modo rescate. Sin embargo, este poder conlleva riesgos: un comando mal ejecutado puede romper el sistema.
Cómo Evaluar Recursos y Herramientas
Antes de migrar, confirma tus credenciales: usuario y contraseña para cPanel, claves SSH para acceso directo, o acceso root para el modo rescate. Luego, verifica los recursos disponibles. En cPanel, revisa “PHP Info” para conocer límites como memory_limit
o max_execution_time
. Con SSH, usa:
free -m
df -h
top
También, asegúrate de que las herramientas clave estén disponibles:
/scripts/pkgacct --help
rsync --version
Si usas PHP, verifica la versión con:
php -v
(PHP 8.4 es ideal para mejor rendimiento). Si algo falta, contacta a tu proveedor para habilitarlo.
Consejos para Empezar con el Pie Derecho
- Anota Todo: Registra tus credenciales, puertos SSH y el nivel de acceso para no perderte.
- Habla con tu Proveedor: Si no tienes SSH o la terminal de cPanel, pregunta si pueden activarlo. Algunos proveedores lo hacen en minutos.
- Prueba Primero: Ejecuta comandos de prueba para confirmar que las herramientas funcionan antes de la migración.
- Planifica según tu Acceso: Si solo tienes el navegador, prepárate para un proceso más manual. Con SSH o root, aprovecha
rsync
y/scripts/pkgacct
para ahorrar tiempo.
2. Migración con Acceso a cPanel (Solo Navegador)
Si solo tienes acceso al panel de cPanel a través del navegador, ¡no te preocupes! Puedes migrar tu cuenta sin necesidad de comandos complicados. En este nivel, típico de planes de hosting compartido, dependes de las herramientas gráficas de cPanel, como el Administrador de Archivos y phpMyAdmin. Pero antes de sumergirnos en los pasos manuales, hay un atajo que puede ahorrarte mucho tiempo: la función Full Backup de cPanel. Vamos a explicarte cómo usarla y qué hacer si no está disponible.
La Opción Más Rápida: Usar Full Backup
Si tu cPanel incluye la opción “Full Backup” (busca “Respaldos” o “Backups” en la sección “Archivos”), tienes el método más sencillo a tu alcance. Esta herramienta crea una copia completa de tu cuenta, incluyendo public_html
, bases de datos, correos y configuraciones, en un solo archivo comprimido (como .tar.gz
). Aquí te contamos cómo hacerlo:
- Ve a la sección “Respaldos” en cPanel y selecciona “Descargar una copia de seguridad completa del sitio web”.
- Elige un destino, como “Directorio principal” o “FTP remoto” (si está configurado), y haz clic en “Generar respaldo”. Esto creará un archivo como
backup-usuario.tar.gz
en tu directorio/home/usuario
. - Descarga el archivo usando el Administrador de Archivos o un cliente FTP. Si el archivo es muy grande, asegúrate de tener suficiente espacio en tu computadora o usa FTP para transferirlo directamente al servidor de destino.
- En el nuevo servidor, sube el archivo al directorio
/home/usuario
usando el Administrador de Archivos o FTP. Luego, contacta al proveedor del nuevo servidor para que restaure la copia completa con la herramienta/scripts/restorepkg
en WHM, o, si tienes acceso, pide instrucciones para hacerlo tú mismo.
Ventaja: Full Backup lo incluye todo, así que no necesitas manejar archivos, correos o bases de datos por separado.
Cuidado: Algunos proveedores desactivan esta función en planes compartidos, o el respaldo puede fallar si tu cuenta es muy grande (por límites como memory_limit
o upload_max_filesize
). Revisa estos valores en “PHP Info” de cPanel. Si Full Backup no está disponible o falla, sigue los pasos manuales a continuación.
Respaldar los Archivos de tu Sitio
Tu primer objetivo es respaldar la carpeta public_html
, donde vive el contenido de tu sitio web. En cPanel, dirígete al Administrador de Archivos (lo encuentras en la sección “Archivos”). Navega hasta /home/usuario/public_html
, selecciona todos los archivos, y haz clic en el botón “Comprimir”. Elige un formato como .zip
o .tar.gz
para crear un archivo compacto, por ejemplo, public_html_backup.zip
. Una vez listo, descárgalo a tu computadora o, si tienes acceso, súbelo directamente al servidor de destino usando el Administrador de Archivos del nuevo cPanel.
Cuidado: Si public_html
es muy grande (digamos, varios gigabytes), este proceso puede ser lento o incluso fallar por límites de recursos como memoria o espacio en disco. Puedes verificar estos límites en la sección “PHP Info” de cPanel, donde aparecen valores como upload_max_filesize
o memory_limit
. Si el respaldo se complica, no te desesperes: en las secciones siguientes te contamos cómo usar SSH para acelerar las cosas con herramientas como rsync
.
Mover tus Correos Electrónicos
Migrar correos puede ser un dolor de cabeza si la carpeta /mail
es enorme. Aquí es donde entra imapsync
, una herramienta poderosa para transferir correos entre servidores. Lo mejor es que puedes ejecutarla desde una máquina local (como tu PC) o, para mayor velocidad, desde un servidor con buena conexión, como un VPS o el propio servidor de destino (si tienes acceso SSH allí).
Para usar imapsync
, necesitarás las credenciales de correo de ambos servidores: el servidor de origen (donde están los correos ahora) y el de destino (a donde los quieres mover). Un comando típico sería:
imapsync --host1 origen.com --user1 [email protected] --password1 pass1 --host2 destino.com --user2 [email protected] --password2 pass2
- En una máquina local: Instala
imapsync
en tu computadora (disponible para Linux, macOS o Windows con un entorno como WSL). Esto es útil si no tienes acceso SSH en el servidor, pero puede ser más lento si tu conexión a internet no es rápida. - En un servidor: Si tienes acceso SSH en el servidor de destino o en un VPS propio, ejecuta
imapsync
allí. Esto es mucho más rápido, ya que los servidores suelen tener conexiones más robustas. Para instalarlo, usa un comando como:
sudo apt install imapsync
(en Ubuntu/Debian) o consulta con tu proveedor si no está preinstalado.
Usar imapsync
te permite transferir los correos sin incluir la carpeta /mail
en el respaldo principal, lo que reduce el tamaño del archivo comprimido y evita problemas con los límites de cPanel. Una vez transferidos, verifica que los correos estén accesibles en el nuevo servidor usando un cliente como Outlook o el Webmail de cPanel.
Configurar el Nuevo Servidor
En el servidor de destino, usa el Administrador de Archivos de cPanel para descomprimir el archivo de public_html
(por ejemplo, public_html_backup.zip
) en la carpeta /home/usuario/public_html
. Asegúrate de que los archivos queden en el lugar correcto para que tu sitio funcione. Si tu sitio usa una base de datos (como WordPress), necesitarás actualizar los archivos de configuración, como wp-config.php
, con los datos de la nueva base de datos (nombre, usuario y contraseña). Puedes gestionar las bases de datos con phpMyAdmin, exportándolas desde el servidor de origen e importándolas en el destino.
If tienes acceso a WHM (el panel de administración del servidor) en el destino, usa la herramienta “Repair Mailboxes” para corregir los permisos de los buzones de correo. Esto asegura que todo funcione sin problemas después de la migración.
Qué Tener en Cuenta
Este método tiene sus límites. Sin acceso SSH, no puedes usar herramientas avanzadas como /scripts/pkgacct
o rsync
, lo que hace que el proceso sea más manual y menos automatizado. Además, si public_html
o /mail
son muy grandes, la compresión en cPanel puede fallar por restricciones de disco o memoria impuestas por tu proveedor. Si esto pasa, revisa los límites en “PHP Info” o contacta al soporte técnico para pedir más recursos o acceso SSH.
Consejos para una Migración sin Estrés
- Prueba en Pequeño: Antes de comprimir todo
public_html
, prueba con una carpeta pequeña para asegurarte de que el proceso funciona. - Usa una Conexión Rápida para imapsync: Si ejecutas
imapsync
desde tu PC, asegúrate de tener una conexión a internet estable. Si puedes, usa un servidor para mayor velocidad. - Verifica Todo: Después de descomprimir los archivos en el destino, revisa que el sitio y los correos funcionen antes de eliminar los datos del servidor original.
- Habla con tu Proveedor: Si los límites de cPanel te frenan, pregunta si pueden habilitarte la terminal de cPanel o acceso SSH. ¡A veces es solo cuestión de pedirlo!
3. Migrar con la Terminal de cPanel: Más Herramientas, Pero con Límites
Si tienes acceso a la terminal de cPanel, ¡estás un paso adelante! Este nivel te da más control que el simple navegador, porque puedes usar comandos como /scripts/pkgacct
para crear respaldos automáticos. Sin embargo, no todo es color de rosa: estás en un entorno compartido, lo que significa que hay limitaciones, como no poder ejecutar procesos en segundo plano con herramientas como screen
o tmux
. Además, aunque tienes más herramientas a tu disposición, este método no es el mejor para sitios grandes. Vamos a explicarte cómo sacarle provecho a la terminal de cPanel, qué puedes hacer, y cómo manejar sus restricciones.
Crear un Respaldo con pkgacct
La estrella de este nivel es /scripts/pkgacct
, un script de cPanel que te permite generar un respaldo de una cuenta en un archivo comprimido (como cpmove-usuario.tar.gz
). Este archivo incluye public_html
, bases de datos, configuraciones y más, todo en un solo paquete. Lo mejor es que puedes personalizarlo para excluir carpetas grandes, como /mail
, y ahorrar espacio.
Para crear un respaldo, abre la terminal de cPanel (la encuentras en la sección “Avanzado”) y ejecuta:
/scripts/pkgacct --skipmail usuario
Este comando genera un archivo cpmove-usuario.tar.gz
en el directorio /home
, excluyendo la carpeta /mail
para mantener el respaldo ligero. Si no necesitas excluir nada, simplemente usa:
/scripts/pkgacct usuario
Esto incluye todo, pero ten cuidado: si /mail
o public_html
son muy grandes, el proceso puede ser lento o fallar por límites de recursos en un servidor compartido.
Transferir el Respaldo al Nuevo Servidor
Una vez que tienes tu archivo cpmove-usuario.tar.gz
, necesitas moverlo al servidor de destino. Si tienes rsync
disponible (puedes confirmarlo con):
rsync --version
es una gran opción porque transfiere solo los cambios, ahorrando tiempo. Usa este comando desde la terminal de cPanel:
rsync -avz --progress /home/cpmove-usuario.tar.gz [email protected]:/home
Esto envía el respaldo al directorio /home
del nuevo servidor. Asegúrate de tener las credenciales SSH del servidor de destino y verifica si usa un puerto no estándar (como 2222 en lugar de 22). Si rsync
no está disponible, puedes descargar el archivo con el Administrador de Archivos de cPanel y subirlo al destino usando FTP o el mismo administrador.
Manejar Directorios Grandes
Si public_html
o /mail
son demasiado grandes para incluir en el respaldo, puedes transferirlos por separado con rsync
(si está habilitado). Por ejemplo, para mover public_html
:
rsync -avz --progress [email protected]:/home/usuario/public_html/ /home/usuario/public_html/
O para /mail
, si lo excluiste del respaldo:
rsync -avz --progress -e "ssh -p 2222" [email protected]:/home/usuario/mail/ /home/usuario/mail/
Ojo: En un entorno compartido, rsync
puede ser lento porque el servidor limita la CPU y la memoria. Además, no puedes usar screen
o tmux
para ejecutar estos comandos en segundo plano, lo que significa que debes mantener la terminal abierta durante todo el proceso. Si la conexión se cae, tendrás que empezar de nuevo, lo que es un dolor para sitios grandes.
Restaurar en el Servidor de Destino
En el nuevo servidor, usa el Administrador de Archivos o FTP para subir el archivo cpmove-usuario.tar.gz
al directorio /home
. Si tienes acceso a WHM (el panel de administración), usa la herramienta /scripts/restorepkg
para restaurar el respaldo:
/scripts/restorepkg /home/cpmove-usuario.tar.gz
Esto restaura public_html
, bases de datos y configuraciones automáticamente. Si no tienes acceso a WHM, pide al proveedor del nuevo servidor que lo haga por ti. Después, verifica que todo funcione: revisa el sitio web, prueba los correos con Webmail, y asegúrate de que las bases de datos estén en orden. Si migraste /mail
por separado, usa la herramienta “Repair Mailboxes” en WHM para corregir permisos.
Por Qué No Es Ideal para Sitios Grandes
Aunque la terminal de cPanel te da más herramientas que el navegador, tiene limitaciones importantes:
- Sin procesos en segundo plano: No puedes usar
screen
otmux
para mantener comandos corriendo si cierras la terminal. Si estás transfiriendo un sitio grande conrsync
, una interrupción en la conexión te obligará a empezar de nuevo. - Límites de recursos: En servidores compartidos, la CPU y la memoria están restringidas, lo que ralentiza comandos como
/scripts/pkgacct
orsync
para sitios con muchos archivos o correos. - Dependencia del proveedor: Algunas herramientas, como
rsync
, podrían no estar disponibles si el proveedor las deshabilitó. Usawhich rsync
para confirmarlo.
Por estas razones, este método es genial para sitios pequeños o medianos, pero no lo recomendamos para cuentas con gigabytes de datos en public_html
o /mail
. Si tu sitio es grande, considera pedir acceso SSH directo (lo cubrimos en la siguiente sección) o usar el modo rescate para más control.
Consejos para una Migración Exitosa
- Prueba /scripts/pkgacct primero: Ejecuta
/scripts/pkgacct --help
para confirmar que está disponible y funciona. - Excluye lo innecesario: Usa
--skipmail
si/mail
es grande para acelerar el respaldo. - Verifica la conexión: Asegúrate de que tu conexión a internet sea estable, ya que no puedes dejar procesos en segundo plano.
- Contacta al proveedor: Si
rsync
no está disponible o los límites de recursos te frenan, pregunta si pueden habilitar más herramientas o darte acceso SSH directo. - Confirma todo: Antes de borrar datos del servidor original, verifica que el sitio, correos y bases de datos funcionen en el destino.
4. Migración con Acceso SSH Directo al Servidor
Aquí tienes mucho más control que con la terminal de cPanel, porque puedes usar herramientas como /scripts/pkgacct
y rsync
sin las restricciones típicas de un entorno compartido. Además, puedes ejecutar procesos en segundo plano con screen
o tmux
, lo cual es un salvavidas para sitios grandes. Si estas herramientas no están instaladas, en muchos casos podrás instalarlas tú mismo. Vamos a guiarte paso a paso para migrar tu cuenta de cPanel, con trucos para manejar sitios grandes y evitar interrupciones.
Crear un Respaldo con pkgacct
Con acceso SSH directo, /scripts/pkgacct
se convierte en tu mejor amigo. Este script de cPanel crea un respaldo completo de una cuenta en un archivo comprimido, como cpmove-usuario.tar.gz
, que incluye public_html
, bases de datos y configuraciones. Si la carpeta /mail
es grande y quieres ahorrar espacio, puedes excluirla. Conéctate al servidor con un cliente SSH (por ejemplo):
Y ejecuta:
/scripts/pkgacct --skipmail usuario
Esto genera un archivo cpmove-usuario.tar.gz
en /home
, sin incluir /mail
. Si no necesitas excluir nada, usa:
/scripts/pkgacct usuario
Importante: Para sitios grandes, crear este respaldo puede tomar tiempo, y una interrupción (como cerrar la terminal) podría detener el proceso. Aquí es donde screen
o tmux
son esenciales. Inicia una sesión con screen
(o tmux
) antes de correr el comando:
screen
/scripts/pkgacct --skipmail usuario
Si la conexión se cae, reconéctate al servidor, ejecuta:
screen -r
para retomar la sesión, y el proceso seguirá corriendo. Si screen
o tmux
no están instalados, prueba con:
which screen
which tmux
En muchos casos, puedes instalarlos con:
sudo yum install screen
sudo apt install screen
(en CentOS o Ubuntu, respectivamente). Si no tienes permisos, pide al proveedor que los instale.
Transferir el Respaldo al Nuevo Servidor
Una vez que tienes el archivo cpmove-usuario.tar.gz
, muévelo al servidor de destino con rsync
, que es ideal porque transfiere solo los cambios, ahorrando tiempo y ancho de banda. Usa este comando:
rsync -avz --progress /home/cpmove-usuario.tar.gz [email protected]:/home
Asegúrate de conocer el puerto SSH del servidor de destino (por ejemplo, 2222 en lugar de 22) y verifica tus credenciales. Para sitios grandes, usa screen
o tmux
para evitar que una caída de conexión interrumpa la transferencia:
screen
rsync -avz --progress /home/cpmove-usuario.tar.gz [email protected]:/home
Si rsync
no está disponible (verifícalo con):
rsync --version
pídele al proveedor que lo instale o usa SCP como alternativa:
scp /home/cpmove-usuario.tar.gz [email protected]:/home
Manejar Directorios Grandes
Si public_html
o /mail
son demasiado grandes para incluir en el respaldo, transfiérelos por separado con rsync
. Por ejemplo, para public_html
:
rsync -avz --progress [email protected]:/home/usuario/public_html/ /home/usuario/public_html/
Y para /mail
, si lo excluiste:
rsync -avz --progress -e "ssh -p 2222" [email protected]:/home/usuario/mail/ /home/usuario/mail/
Para sitios grandes, estas transferencias pueden tomar horas, y una interrupción puede obligarte a empezar de nuevo. Usa screen
o tmux
para mantener el proceso en segundo plano:
screen
rsync -avz --progress [email protected]:/home/usuario/public_html/ /home/usuario/public_html/
Después de la transferencia, verifica la integridad de los datos con un hash MD5 para asegurarte de que nada se perdió:
find /home/usuario/public_html -type f -exec md5sum {} \; > checksums.txt
Copia checksums.txt
al servidor de destino y compáralo con:
md5sum -c checksums.txt
para confirmar que los archivos son idénticos.
Restaurar en el Servidor de Destino
En el servidor de destino, sube el archivo cpmove-usuario.tar.gz
al directorio /home
(puedes usar rsync
, SCP o FTP). Si tienes acceso a WHM, restaura el respaldo con:
/scripts/restorepkg /home/cpmove-usuario.tar.gz
Esto restaura public_html
, bases de datos y configuraciones automáticamente. Si no tienes WHM, pide al proveedor que lo haga por ti. Si transferiste public_html
o /mail
por separado, asegúrate de que estén en las carpetas correctas (/home/usuario/public_html
y /home/usuario/mail
). Luego, ajusta permisos con:
chown -R usuario:usuario /home/usuario/public_html
Si migraste correos, usa “Repair Mailboxes” en WHM para corregir permisos. Finalmente, verifica que el sitio, correos y bases de datos funcionen correctamente.
Por Qué Este Método Es Genial (y Cuándo Tener Cuidado)
Con acceso SSH directo, tienes menos limitaciones que en la terminal de cPanel. Puedes usar /scripts/pkgacct
y rsync
sin restricciones de entorno compartido, y screen
o tmux
te permiten manejar procesos largos sin preocuparte por interrupciones. Esto hace que el método sea ideal para sitios grandes, ya que puedes transferir gigabytes de datos de forma eficiente.
Sin embargo, ten en cuenta:
- Recursos del servidor: Aunque tienes más libertad, los servidores compartidos o VPS con recursos limitados pueden ralentizar transferencias grandes.
- Instalación de herramientas: Si
screen
,tmux
orsync
no están instalados, necesitarás permisos para instalarlos (por ejemplo, consudo apt install tmux
). En servidores dedicados, esto no es problema, pero en entornos compartidos podrías necesitar ayuda del proveedor. - Cuidado con sitios grandes: Sin
screen
otmux
, una interrupción en un proceso largo (comorsync
de unpublic_html
de 50 GB) te obligará a empezar de nuevo. Instala estas herramientas o confírmalas antes de empezar.
Consejos para una Migración Sin Estrés
- Usa screen o tmux siempre: Para sitios grandes, son imprescindibles para evitar interrupciones. Prueba
screen -r
para retomar sesiones si te desconectas. - Verifica herramientas: Ejecuta
rsync --version
,screen --version
otmux --version
para confirmar que están disponibles. Si no, instálalas o pide ayuda al proveedor. - Optimiza con –skipmail: Excluye
/mail
en el respaldo si es grande para acelerar/scripts/pkgacct
. - Confirma integridad: Usa MD5 para verificar que los datos transferidos son correctos, especialmente para
public_html
o/mail
. - Prueba todo: Antes de eliminar datos del servidor original, revisa que el sitio, correos y bases de datos funcionen en el destino.
5. Migración con Acceso Root en Modo Rescate (Usando chroot)
Si necesitas rescatar datos de un servidor dañado o realizar una migración crítica, el acceso root en modo rescate es tu mejor aliado. Con este nivel, tienes control total del servidor y puedes usar un entorno chroot
para simular el sistema original, lo que te permite aprovechar herramientas de cPanel como /scripts/pkgacct
incluso en un servidor que no arranca. Además, puedes usar tmux
o screen
para mantener procesos en segundo plano, algo crucial para sitios grandes. Vamos a guiarte paso a paso para configurar el modo rescate, crear respaldos, transferir datos y restaurarlos, con trucos para evitar problemas y manejar servidores como un profesional.
Arrancar en Modo Rescate
El modo rescate arranca el servidor desde una imagen de recuperación proporcionada por tu proveedor (como OVH, Hetzner o DigitalOcean). Accede al panel de control de tu proveedor, selecciona la opción de modo rescate y sigue las instrucciones para cargar una imagen Linux ligera. Una vez que el servidor esté en modo rescate, iniciarás sesión como root (por ejemplo, con):
usando las credenciales temporales que te dé el proveedor.
Tu primer paso es identificar la partición principal del disco duro dañado (normalmente /dev/sda1
o /dev/sdb1
). Usa este comando para listar las particiones:
fdisk -l
Crea un directorio para montar la partición y móntala:
mkdir /mnt/chroot
mount /dev/sdb1 /mnt/chroot
Nota: Asegúrate de usar el nombre correcto de la partición (como /dev/sdb1
). Si el servidor tiene particiones separadas para /home
o /var
, móntalas también (por ejemplo, mount /dev/sdb2 /mnt/chroot/home
).
Configurar el Entorno chroot
Para usar herramientas de cPanel como /scripts/pkgacct
, necesitas simular el entorno del sistema original con chroot
. Monta los sistemas de archivos esenciales:
mount --bind /proc /mnt/chroot/proc
mount --rbind /dev /mnt/chroot/dev
mount --bind /sys /mnt/chroot/sys
El comando --rbind
para /dev
asegura que particiones como /dev/pts
se monten correctamente. Verifica que todo esté montado con:
grep chroot /etc/mtab
El resultado debería mostrar algo como:
/dev/sdb1 /mnt/chroot none rw,bind 0 0
/mnt/chroot/proc /proc none rw,bind 0 0
/mnt/chroot/dev /dev none rw,bind 0 0
/mnt/chroot/sys /sys none rw,bind 0 0
Ahora, inicia una sesión de tmux
para mantener el proceso en segundo plano, lo cual es crucial si tu conexión se interrumpe (especialmente con sitios grandes):
tmux
Entra al entorno chroot
:
chroot /mnt/chroot /bin/bash -l
export PS1="{chrooted}$PS1"
Esto simula el sistema original, y verás un prompt como {chrooted}bash-4.1#
. Carga el entorno de cPanel con:
source /etc/environment && source /etc/profile
Si tmux
no está disponible, usa screen
(screen
y retoma con screen -r
). Si ninguna está instalada, intenta instalarlas con:
sudo apt install tmux
sudo yum install tmux
(dependiendo de la imagen de rescate). Si no tienes permisos, contacta al proveedor.
Crear Respaldos con pkgacct
Con el entorno chroot
listo, puedes usar /scripts/pkgacct
para crear respaldos de las cuentas. Para sitios grandes, tmux
o screen
son esenciales, ya que el proceso puede tomar horas y una desconexión podría interrumpirlo. Respaldar todas las cuentas en /var/cpanel/users
:
cd /var/cpanel/users
for i in `ls -1 *`; do /scripts/pkgacct --skipdnszones $i; done
El parámetro --skipdnszones
evita incluir configuraciones de DNS innecesarias, y los respaldos se guardan en /mnt/chroot/home
como cpmove-usuario.tar.gz
. Si /mail
es grande, usa --skipmail
para excluirlo:
/scripts/pkgacct --skipmail usuario
Advertencia: No uses rsync
para respaldar cuentas completas en este paso, ya que puede causar problemas con servicios como MySQL, según cPanel.
Respaldar Configuraciones del Servidor
Para preservar las configuraciones de servicios como Exim, MySQL o Apache, usa cpconftool
:
cd /usr/local/cpanel
bin/cpconftool --modules=cpanel::smtp::exim,cpanel::system::backups,cpanel::system::mysql,cpanel::system::whmconf,cpanel::easy::apache,cpanel::ui::themes --backup
Esto genera un archivo como /home/whm-config-backup-configuration__to__backup-10.550000-1452006507.tar.gz
.
Iniciar Servicios Necesarios
Algunas herramientas, como /scripts/pkgacct
, requieren servicios activos, como MySQL para bases de datos o dnsadmin
para configuraciones de DNS. Inícialos en el entorno chroot
:
Para MySQL:
/usr/sbin/mysqld --daemonize --user=mysql --pid-file=/var/run/mysqld/mysqld.pid ${MYSQLD_OPTS}
Para dnsadmin
:
/usr/local/cpanel/libexec/dnsadmin-startup --start
Transferir Archivos a un Almacenamiento Remoto
Transfiere los respaldos (cpmove-usuario.tar.gz
y configuraciones) a un almacenamiento remoto para protegerlos de fallos de hardware. Usa scp
o rsync
desde el entorno chroot
:
scp /mnt/chroot/home/cpmove-usuario.tar.gz [email protected]:/backups
O con rsync
:
rsync -avz --progress /mnt/chroot/home/cpmove-usuario.tar.gz [email protected]:/backups
Recomendación: cPanel sugiere transferir primero a un almacenamiento remoto (como un VPS o servicio en la nube) en lugar de directamente al servidor de destino, para evitar riesgos si el disco está dañado. Para sitios grandes, usa tmux
o screen
para estas transferencias:
tmux
rsync -avz --progress /mnt/chroot/home/cpmove-usuario.tar.gz [email protected]:/backups
Si necesitas transferir directorios específicos como /mail
o public_html
, usa rsync
:
rsync -avz --progress /mnt/chroot/home/usuario/public_html/ [email protected]:/backups/public_html/
Verifica la integridad con MD5:
find /mnt/chroot/home/usuario/public_html -type f -exec md5sum {} \; > checksums.txt
scp checksums.txt [email protected]:/backups
Restaurar en el Servidor de Destino
Desde el almacenamiento remoto, transfiere los archivos al servidor de destino:
rsync -avz --progress [email protected]:/backups/cpmove-usuario.tar.gz /home
En el servidor de destino, restaura con:
/scripts/restorepkg /home/cpmove-usuario.tar.gz
Si transferiste directorios como /public_html
o /mail
, colócalos en /home/usuario/public_html
y /home/usuario/mail
, y ajusta permisos:
chown -R usuario:usuario /home/usuario/public_html
Usa “Repair Mailboxes” en WHM para corregir permisos de correos. Verifica la integridad con:
md5sum -c checksums.txt
Salir del Entorno chroot
Para cerrar todo, detén los servicios en el entorno chroot
:
service mysql stop
Desmonta los sistemas de archivos:
umount /mnt/chroot/proc /mnt/chroot/dev /mnt/chroot/sys
umount /mnt/chroot
Sal del entorno chroot
:
exit
Cierra la sesión de tmux
con tmux detach
y termínala con tmux kill-session
(o usa exit
para screen
).
Por Qué Este Método Es Poderoso (y Cuándo Tener Cuidado)
El modo rescate con acceso root te da control total, ideal para servidores dañados o migraciones críticas. Puedes usar /scripts/pkgacct
, rsync
, y tmux
/screen
sin las limitaciones de entornos compartidos, y chroot
asegura compatibilidad con las herramientas de cPanel. Para sitios grandes, tmux
o screen
son imprescindibles para evitar interrupciones en respaldos o transferencias largas.
Cuidado:
- Configurar
chroot
requiere experiencia avanzada. Un error al montar particiones puede complicar el proceso. - Sigue la advertencia de cPanel: no uses
rsync
para respaldos completos de cuentas, ya que puede afectar servicios como MySQL. - Verifica que
tmux
oscreen
estén instalados antes de empezar. Si no, instálalos o pide ayuda al proveedor.
Consejos para una Migración Exitosa
- Usa tmux o screen siempre: Son esenciales para sitios grandes para evitar interrupciones. Retoma sesiones con
tmux attach
oscreen -r
. - Verifica particiones: Usa
fdisk -l
para identificar las particiones correctas antes de montarlas. - Sigue el orden: Monta particiones antes que sistemas de archivos (
proc
,dev
,sys
) para evitar errores. - Transfiere a almacenamiento remoto: Protege tus respaldos de fallos de hardware moviéndolos primero a un lugar seguro.
- Prueba todo: Antes de eliminar datos del servidor original, confirma que el sitio, correos y bases de datos funcionen en el destino.