¿Acaso eres de los que descargan el directorio de su sitio web a través de FileZilla?
¿Sabías que comprimir el archivo antes de descargarlo o subirlo te puede ahorrar horas de espera?
Hoy vas a aprender a hacer respaldos de tus sitios web (archivos y tablas) de forma rápida y sencilla con un para de simples comandos. Para facilitarte la vida y sobre todo ahorrarte mucho tiempo.
Este proceso es para todos aquellos que tengan acceso a UNIX a través de una conexión SSH
Lo que primero haremos es ingresar como root
de otra forma tendremos que escribir sudo
antes de cualquier comando que hagamos.
Para ello usaremos:
sudo su
Ahora que ya somos usuarios root
vamos a crear una carpeta en nuestro servidor para meter ahí los respaldos. Puedes crearla donde se te de la gana, yo que tengo muchos sitios web y a fin de tenerlo más organizado lo hice en: /home/respaldos/goldwatches.top/30-jun-2021
creando un directorio con el nombre de la fecha que hago el respaldo, así sabré cuando lo hice
mkdir -p /home/respaldos/goldwatches.top/30-jun-2021
Ahora vamos a hacer un respaldo de la base de datos del sitio al que queremos respaldar. Esto lo podrías hacer fácilmente desde phpMyAdmin, pero ya que estamos con la terminal UNIX abierta lo haremos por aquí. Necesitarás saber el nombre de la base de datos, el usuario de acceso (puede ser root) y la contraseña de acceso a la base de datos
Podríamos hacerlo así:
cd /home/respaldos/goldwatches.top/30-jun-2021
mysqldump -u root -pcontraseña nombredelabasededatos > nombre_que_le_quieras_dar_al_archivo.sql
Por ejemplo:
cd /home/respaldos/goldwatches.top/30-jun-2021
mysqldump -u root -pcontraseña goldwatches.top > goldwatches.top-30-jun-2021.sql

El problema es que dejamos expuesta la contraseña. Por ello mejor usa el comando:
mysqldump -u root -p goldwatches.top > goldwatches.top-30-jun-2021.sql
Te pedirá que ingreses la contraseña pero esta no se verá.
Si quieres no tener que estar poniendo la contraseña, puedes intentar el siguiente método: vamos primero a crear un archivo .my.cnf
y dentro del archivo pondremos el usuario y contraseña de la base de datos
cd /home
vi ~/.my.cnf
Ahora copia y pega remplazando el texto amarillo por la contraseña de acceso a la base de datos (del usuario root). Presiona i
para activar modo de escritura, pega con Ctrl y clic derecho del ratón y pegar. Después para guardar el archivo con Esc :wq
[mysqldump]
user = root
password = contraseña-root
Después debes restringir el permiso para que ningún otro usuario lo pueda leer
chmod 600 ~/.my.cnf
Listo. Ahora ya no será necesario poner el usuario y contraseña, así que puedes usar el siguiente comando en vez de los ejemplos anteriores:
cd /home/respaldos/goldwatches.top/30-jun-2021
mysqldump goldwatches.top > goldwatches.top-30-jun-2021.sql
Si tienes no demasiados sitios puedes hacerte una lista y las ejecutas al mismo tiempo. Por ejemplo:
cd /home/respaldos/goldwatches.top/30-jun-2021
mysqldump altagama.top > altagama.top.sql
mysqldump aprende.top > aprende.top.sql
mysqldump bestproducts.deals > estproducts.deals.sql
mysqldump consejos.top > consejos.top.sql
mysqldump consultas.top > consultas.top.sql
mysqldump criticos.top > criticos.top.sql
mysqldump cual.top > cual.top.sql
mysqldump cuales.top > cuales.top.sql
mysqldump goldwatches.top > goldwatches.top.sql
mysqldump informacion.top > informacion.top.sql
mysqldump maquinas.top > maquinas.top.sql
mysqldump mejor.top > mejor.top.sql
mysqldump mejoreslaptops.top > mejoreslaptops.top.sql
mysqldump menwatches.uk > menwatches.uk.sql
mysqldump premios.top > premios.top.sql
mysqldump sitios.top > sitios.top.sql
mysqldump terrenos.top > terrenos.top.sql
mysqldump truckercaps.store > truckercaps.top.sql
mysqldump webgratis.top > webgratis.top.sql
mysqldump zechinelli.com > zechinelli.com.sql
Esta forma de hacer respaldos de las base de datos es más efectiva, ya que si por ejemplo tienes un sitio web gigante que posee muchas tablas, muchas veces al tratar de descargar la base de datos desde phpMyAdmin pueda provocar un error de descarga no antes del aviso “advertencia un formulario en esta página tiene más de 1000 campos” y aún en ocasiones configurando el archivo php.ini puede que no logres solucionarlo. Así que utilizar este comando para descargar la base de datos del sitio web desde SSH es una solución efectiva y muy simple.
Comprimir el directorio del sitio web desde SSH
Ahora que ya tenemos la base de datos descargada. Vamos a crear un archivo ZIP del directorio de los archivos del sitio web para que la descarga desde FileZilla en vez de durar horas dure minutos o segundos.
Puedes comprimir con ZIP con o sin contraseña. Para ello lo primero que tenemos que instalar es ZIP en nuestro servidor. El siguiente comando va bien con Apache y Debian:
apt install zip
Comprimir el directorio web con ZIP
Primero tienes que establecerte en la ruta donde se encuentra el directorio de nuestro sitio web. En mi caso el directorio del sitio se llama goldwatches.top
y se encuentra dentro del directorio www
, así que la ruta es: /var/www/
cd /var/www/
Pero lo cierto es que yo comprimo todo el directorio www con todos los sitios dentro que poseo. No le veo sentido hacerlo uno por uno.
Así que yo siempre me ubico en /var
cd /var
Ahora vamos a comprimir el directorio del sitio web (el directorio original quedará intacto, sólo se creará un archivo ZIP nuevo adicional)
zip -r nombre_que_le_quieras_dar_al_archivo.zip nombre_del_directorio_a_comprimir
zip -r www.zip www
Lo puedes ya descargar a tu ordenador con FileZilla. También si quieres puedes moverlo donde se encuentra el respaldo de la base de datos que hicimos con el comando:
mv nombre_que_le_diste_al_archivo.zip direccion_donde_lo_moveremos
Ejemplo general:
cd /var
zip -r www.zip www
mv www.zip /home/respaldos/goldwatches.top/30-jun-2021

Ahora ya puedes descargar ambos archivos a tu ordenador de forma rápida (arrastrarlos al escritorio por ejemplo).
Puedes ir creando todos los respaldos que desees en la carpeta que creamos, pero dependiendo del tamaño de disco que posea tu servidor vas a tener que ir borrando respaldos viejos si ves que te estás quedando sin espacio.
Para borrar un directorio completo sólo usa el siguiente comando:
rm -rf /ubicación_del_directorio_a_borrar
Por ejemplo:
rm -rf /home/respaldos/goldwatches.top/30-jun-2021
Así se borrara el respaldo que hice el día 30-jun-2021
Comprimir el directorio web con ZIP Y CONTRASEÑA
Si por alguna razón necesitas que el archivo ZIP esté encriptado deberás agregar a la línea de comando un -e
y después te pedirá ingresar una contraseña que elijas
zip -e -r goldwatches.top.zip nombredelacarpetaacomprimir