¿Cómo hacer un respaldo de sus archivos a través de SSH?
Actualizado el 24 de octubre, 2016. Por BlueHosting.
Hacer un respaldo de sus datos personales o de su sitio web es una buena práctica que ayuda a asegurar que su sitio web esté protegido en caso de algún inconveniente. Hay varias formas de hacer un respaldo de datos. En este tutorial abordamos cómo hacerlo utilizando su consola de acceso Secure SHell SSH a través de dos comandos nativos de Linux: cp
y tar
.
Seleccionar el directorio de respaldo
El primer paso es asegurarse de que su servidor tiene habilitada la opción para acceso SSH. Los detalles para el acceso podrá encontrarlos en la pestaña Accesos de su panel de administración de BlueHosting.
Una vez conectado, puede comenzar con el respaldo de sus archivos:
Inicie sesión en su servidor con las credenciales apropiadas y diríjase al directorio cuyo contenido desea respaldar, puede seguir los consejos a continuación como apoyo:
-
Para comprobar en qué directorio se encuentra actualmente ejecute:
pwd
Se mostrará el directorio de trabajo actual, si no ha cambiado de directorio, lo más probable es que se encuentre en el directorio
home
del usuario con el que inició sesión; en nuestro ejemplo:/home/johel
-
Para mostrar los archivos en dicho directorio puede utilizar el comando
ls
. Si lo usa sin ningún argumento se mostrará una lista simple de los archivos en el directorio. Podemos jugar con las opciones de este comando para obtener una lista más completa, por ejemplo si usamosls -lath
obtendremos una lista completa de los archivos —sin excluir archivos ocultos que comienzan con punto (.)— ordenados por fecha de modificación, e incluyendo otros datos como los permisos y el tamaño de los archivos en formato legible. En nuestro ejemplo obtuvimos:total 88K drwx------ 6 johelbs johelbs 4.0K Oct 24 15:58 . -rw-rw-r-- 1 johelbs johelbs 42K Oct 24 15:58 datos.txt drwxrwxr-x 2 johelbs johelbs 4.0K Oct 24 15:56 personal drwxrwxr-x 2 johelbs johelbs 4.0K Oct 24 15:56 otros drwxrwxr-x 2 johelbs johelbs 4.0K Oct 24 15:56 contenido drwxrwxr-x 3 johelbs johelbs 4.0K Oct 24 15:56 public_html -rw------- 1 johelbs johelbs 441 Oct 24 12:56 .bash_history drwxr-xr-x. 6 root root 4.0K Oct 24 11:23 .. -rw-r--r-- 1 johelbs johelbs 18 Aug 2 12:00 .bash_logout -rw-r--r-- 1 johelbs johelbs 193 Aug 2 12:00 .bash_profile -rw-r--r-- 1 johelbs johelbs 231 Aug 2 12:00 .bashrc -rw-r--r-- 1 johelbs johelbs 658 Jun 23 15:15 .zshrc
-
Si el directorio de interés para el respaldo es
public_html
podemos cambiar a ese directorio usando:cd public_html
-
Suponiendo que nos interesa respaldar el directorio
ejemplo.com
, contenido enpublic_html
, cambiemos a ese directorio y listemos los archivos allí contenidos:cd ejemplo.com ls
En nuestro ejemplo tenemos:
css imagenes index.html javascript productos.html servicios.html videos
-
Una vez que seleccione el directorio que desea respaldar continúe con alguna de las opciones de respaldo mostradas a continuación.
Respaldar un archivo/directorio usando tar
El comando tar
de GNU constituye una potente herramienta para agrupar archivos y subdirectorios en un archivo compreso. En este tutorial no se aborda una explicación detallada del comando y simplemente se recomienda el uso de este comando para crear un archivo con formato .tar.gz
.
Una vez que se encuentra en el directorio deseado puede ejecutar:
tar -zcvf respaldo.tar.gz .
En este caso el nombre asignado al archivo de respaldo es respaldo.tar.gz
y estará guardado dentro del mismo directorio actual. El punto (.
) al final del comando se refiere a que estamos respaldando el directorio actual. Por lo tanto es equivalente utilizar:
tar -zcvf respaldo.tar.gz /home/johelbs/public_html/ejemplo.com
Puede cambiar el nombre asignado (respaldo
), pero debe mantener la extensión .tar.gz
—también podría usar .tar.Z
—. Este archivo contendrá todos los archivos y subdirectorios ubicados dentro del directorio al momento de crear el respaldo.
Veamos de nuevo el contenido del directorio ejemplo.com
:
css index.html productos.html servicios.html
imagenes javascript respaldo.tar.gz videos
Podemos observar que se ha creado el archivo de respaldo correctamente. Puede mover el archivo a otro directorio utilizando el comando mv
:
mv respaldo.tar.gz /directorio_de_destino
Si quiere descomprimir el contenido del archivo en el nuevo directorio utilice el siguiente comando:
Nota importante: la ejecución del siguiente comando es definitiva, si descomprime el contenido en el mismo directorio donde se encontraban los archivos antiguos, todo el contenido actual se sustituirá por lo guardado en el archivo de respaldo.
tar -zxvf respaldo.tar.gz
También recomendamos utilizar algún cliente FTP como FileZilla para descargar el respaldo y guardarlo en su computador local o en alguna otra ubicación.
Respaldar un archivo o directorio usando cp
El comando cp
crea una copia de un archivo o directorio según se especifique. Normalmente, los administradores de linux utilizamos la extensión .bak
para identificar las copias de archivos que se corresponden con un respaldo o backup.
Digamos que queremos guardar una copia del archivo public.html
en el mismo directorio. Podemos identificar la copia de respaldo como public.bak
ejecutando lo siguiente:
cp index.html index.bak
También podríamos crear un nuevo directorio de respaldos
y utilizarlo para este fin:
mkdir respaldos
cp index.html respaldos/index.bak
Además, podemos hacer copias recursivas (todos los archivos y subdirectorios contenidos) del directorio actual. Por ejemplo, hagamos una copia de todo el contenido del directorio /home/johel/public_html/ejemplo.com
en el directorio /home/johel/respaldos
:
cp -R /home/johel/public_html/ejemplo.com /home/johel/respaldos
Una alternativa que ofrece el comando cp
para proteger la creación de respaldos es el uso del parámetro --backup
. Al utilizar esta opción prevenimos que se sobrescriba el archivo si este ya existe; por ejemplo: si tratamos de crear el archivo index.bak
del paso anterior y agregamos el parámetro --backup
se creará un nuevo archivo index.bak
y el antiguo quedará bajo el nombre index.bak~
:
cp --backup index.html index.bak
Lo podemos comprobar usando ls -lath
:
-rw-rw-r-- 1 johelbs johelbs 34K Oct 24 17:44 index.bak
-rw-rw-r-- 1 johelbs johelbs 34K Oct 24 17:07 index.bak~
Esta segunda opción de cp
es más útil si desea guardar copias de respaldo de archivos específicos dentro del servidor. Por ejemplo: si realizará cambios importantes en el archivo de configuración de Apache es recomendable que utilice, por ejemplo:
cp apache2.conf apache2.bak
Si algo sale mal después de hacer los cambios y el reinicio del servidor Apache, aún tendrá disponible un archivo apache2.bak
con su antigua configuración.
Recursos adicionales
Para complementar la información aquí presentada puede consultar los siguientes recursos. Aunque este material es provisto esperando que sea útil, tome en cuenta que no podemos certificar su actualidad o precisión.
- Para más información del cliente FTP FileZilla visite nuestro tutorial: ¿Cómo transferir archivos con FileZilla?
- Otra herramienta útil para el respaldo y sincronización de archivos es
rsync
. Visite nuestro tutorial: Guía básica de la herramienta rsync. - Encontrará los manuales de los comandos aquí presentados si utiliza la opción
--help
, por ejemplo:cp --help tar --help