Éter Blog

Just another WordPress weblog By: Oscar Rovira

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

nohup wget

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 &

nohup mysqldump pipe mysql

nohup mysqldump pipe mysql

Comments

Leave a Reply





  • Bienvenido


    Te envío un saludo
    con la bandera de tu país

  • Translator

    Spanish flagItalian flagKorean flagChinese (Simplified) flagChinese (Traditional) flagPortuguese flagEnglish flagGerman flag
    French flagJapanese flagArabic flagRussian flagGreek flagDutch flagBulgarian flagCzech flag
    Croatian flagDanish flagFinnish flagHindi flagPolish flagRomanian flagSwedish flagNorwegian flag
    Catalan flagFilipino flagHebrew flagIndonesian flagLatvian flagLithuanian flagSerbian flagSlovak flag
    Slovenian flagUkrainian flagVietnamese flagAlbanian flagEstonian flagGalician flagMaltese flagThai flag
    Turkish flagHungarian flag      
  • Calendario

    junio 2011
    L M X J V S D
    « may   oct »
     12345
    6789101112
    13141516171819
    20212223242526
    27282930  
  • Meta

  • Mis imagenes Flickr

    aftherend03

    aftherend03 -c

    aftherend05 -c

    31/10/2010



    Dionaea Muscipula 3 trampas una hoja  y 2 hojas pegadas DSC04259 by Oscar Rovira 06julio2010 DSC04275-c

    Dionaea Muscipula 3 trampas una hoja  y 2 hojas pegadas DSC04259 by Oscar Rovira

    Pinguicula cazando dos arañitas DSC04242-c

    More Photos