Cómo hacer backup del servidor por SSH usando TAR

0


Cómo hacer respaldo de un directorio remoto en Linux (home por ejemplo) usando SSH y sin necesidad de ocupar espacio extra en el servidor.
Muchas veces nuestra capacidad de almacenamiento de disco duro o SSD en el servidor remoto es escasa, por lo que resulta imposible usar la herramienta tar directamente en el servidor, aún si usando compresión.
Otro lado negativo de usar tar (peor si comprimido) es la gran cantidad de recursos de memoria y CPU que se utiliza mientras el servidor está activo manteniéndolo ocupado y haciendo lento su funcionamiento.

Este es un comando SSH que utilizo para hacer copias de mis carpetas en el servidor sin usar muchos recursos del mismo, afectando lo menos posible la carga del servidor.

ssh usuario@servidor "tar czpf - /directorio/origen" | tar xzpf - -C /directorio/destino

Con ese comando ahora estás creando una copia de un directorio en el servidor remoto hacia el computador en el cual estás trabajando usando los beneficios que otorga TAR (tales como preservación de permisos, enlaces, etc.) incluso si transfiriendo gran cantidad de datos.

El comando no ofrece información sobre velocidad de transferencia o porcentaje de progreso de la transferencia.
Si quieres esas informaciones, debes instalar alguna de la siguientes herramientas: pv o pipemeter. Luego inserirlas en medio de las 2 llamadas.

Con pv el comando quedaria así:
ssh usuario@servidor "tar czpf - /directorio/origen" | pv | tar xzpf - -C /directorio/destino
Con pipemeter:
ssh usuario@servidor "tar czpf - /directorio/origen" | pipemeter | tar xzpf - -C /directorio/destino

Si tienen sugerencias de comando más prácticos o eficientes, por favor publiquen en los comentarios.

Share.

Deja un comentario