Cómo Transferir / Mover una página de un Servidor a otro desde la Shell de Linux
Posted on | junio 29, 2011 | No Comments
Introducción:
Realmente no sabÃa como llamar a este pequeño articulo, entre términos como mover, transferir, mudar, migrar, etc. Asà como página, servidor, hosting, hospedaje, portal, sitio web, etc. y por ultimo, shell, terminal, tty, ssh, etc. Pero disidà no perder el tiempo y titularlo con lo más simple y rápido que me vino a la mente.
Objetivo:
Transferir los archivos y base de datos con dos simples comandos desde la shell linux en una terminal remota SSH
Qué no se cubre:
Creación de bases de datos y usuarios.
Configuración de los DNS.
Creación usuarios FTP y Mysql.
Creación de los Virtual Host.
Requicitos:
En el Servidor Origen:
Tener accesso vÃa FTP y tener acceso a MYSQL desde el servidor destino
En el Servidor Destino:
Acceso a la shell
mysqldump, wget y nohup
Procedimiento:
- Transferir los archivos
Desde la shell del servidor destino, en el DocumentRoot de nuestro nuevo host ejecutaremos el siguiente comando:#nohup wget -nH -r –level=100 –preserve-permissions ftp://user:password@ip-o-dominio/directorio-ruta/* &
Explicación:
nohup: Este comando hace que el sistema ignore la señal SIGHUP, lo cual permite que el comando siga ejecutándose independientemente de que el usuario termine la sesión. Esto nos permite cerrar nuestra terminal y que el proceso continúe incluso y mucho mejor con esto prevenimos que si por alguna razón perdemos nuestra conexión ssh con el servidor el comando siga ejecutándose.
wget: Es el programa a ejecutarse sin SIGHUP. Esta herramienta nos permite obtener los archivos desde el FTP del servidor origen, a continuación explico las opciones y parámetros:
-nH Descarga los archivos directamente en directorio dónde nos encontramos
-r Indica que leerá de manera recursiva, es desir que entrará dentro de directorios y subdirectorios
–level =100 Es el nivel de profundidad (“Recursividad”) de los subdirectorios en este caso manejé 100 para asegurarme que se trajera todo ya que calculo que la profundidad de subdirectorios es de unos 10 a 20 (para mayor claridad raiz/nivel1/nivel2/nivel3/niveln)
–preserve-permissions Como su nombre lo indica, matiene los permisos originales de archivos y directorios.
ftp://user:password@ip-odominio/Directorio – Ruta/* Es la URL al servidor FTP origen incluyendo el usuario y contraseña separada por dos puntos y el dominio o ip separado por la @ y por ultimo la ruta y archivos que se quieren copiar. en este caso usamos el comodin * para copiar todo.
&: Este comando nos permite enviar al background el proceso y asà poder seguir usando la terminal
Nota: En el ejemplo podemos notar que después de dar enter el comando ha respondido con [1]16547 Este es el PID del proceso wget. Tambien nos ha enviado la salida nohup: appending output to `nohup.out’ el cual nos indica que la salida de wget ha sido enviada al archivo nohup.out . Por otra parte he confirmado que el proceso ha sido lanzado y está funcionando correctamente con el comando ps aux | grep wget (el cual también podrÃa ser (ps aux | grep 16547) Y por ultimo cuando el comando wget termine de ejecutarse nos envÃa el mensaje [1]+ Done   nohup wget -nH -r –level=100 –preserve-permissions ftp://user:password@ip-o-dominio/directorio-ruta/* Indicándonos que el comando ha terminado de ejecutarse.
- Transferencia de la base de datos
Tambien desde la shell y tomando en cuenta que la base de datos y el usuario han sido creados en el servidor destino 1.- Respaldar la base de datos del servidor origen al servidor destino
# mysqldump -hip-o-dominio -uuser -ppassword nomre-de-la-base-de-datos-en-el-servidor-origen > nombredelabasededatos.sql
2.- Cargar el respaldo de la base de datos orgien en el servidor destino
# mysql –user=user –password=password nomre-de-la-base-de-datos-en-el-servidor-destino< nombredelabasededatos.sql Nota: En ambos casos podemos usar nohup al principio y & al finalEn el caso de querer hacer todo en un mismo comando sin guardar un archivo de respaldo .sql podrÃamos unir de la siguiente forma los comandos y agregando nohup y & al final y separando con el pipe |# nohup mysqldump -hip-o-dominio -uuser -ppassword nomre-de-la-base-de-datos-en-el-servidor-origen | mysql –user=user –password=password nomre-de-la-base-de-datos-en-el-servidor-destino &
Tags: -nH -r --level --preserve-permissions > ftp > hospedaje > hosting > migrar > mover > mudar > mysql > mysqldump > nohup > página > portal > ps aux > servidor > shell > sitio web > ssh > terminal > transferir > tty > wget
Comments
Leave a Reply




























































