Descarga tu guía de trucos informáticos aquí
Zaloha.sh Script sincronización directorio Linux

Zaloha.sh: Script de sincronización de directorio local para Linux

Zaloha.sh es un script de shell pequeño y simple que se utiliza para sincronizar dos directorios locales: un directorio de origen y un directorio de respaldo. Emplea herramientas estándar de Linux/Unix como find, sort, awk, mkdir, rmdir, cp y rm para admitir su funcionalidad subyacente.

Zaloha obtiene información sobre los directorios y archivos a través del comando find. Ambos directorios deben estar disponibles localmente, es decir, montados en el sistema de archivos local. También cuenta con sincronización inversa, y opcionalmente puedes comparar archivos byte por byte. Además, pide a los usuarios que confirmen las acciones antes de que se ejecuten.

En este artículo, aprenderás cómo instalar y usar zaloha.sh para sincronizar dos directorios locales en Linux.

1. Instalar Zaloha.sh en Linux

Para instalar Zaloha.sh, debes clonar su repositorio Github usando la herramienta de línea de comandos git, pero antes de eso, necesitas instalar git como se muestra.

dnf  install git		# CentOS/RHEL 8/Fedora 22+
yum install git		# CentOS/RHEL 7/Fedora
sudo apt install git		# Ubuntu/Debian

Una vez que git esté instalado, ejecuta el siguiente comando para clonar el repositorio remoto en tu sistema, mueve la ruta al repositorio local, luego instala el script zaloha.sh en una ubicación en tu PATH, por ejemplo /usr/bin y hazlo ejecutable como se muestra:

git clone https://github.com/Fitus/Zaloha.sh.git
cd Zaloha.sh/
echo $PATH
sudo cp Zaloha.sh /usr/bin/
sudo chmod +x /usr/bin/zaloha.sh
Instalar Zaloha.sh en Linux
Instalar Zaloha.sh en Linux

2. Sincronizar dos directorios locales en Linux usando Zaloha.sh


Ahora que zaloha.sh está instalado en su RUTA, puede ejecutarlo normalmente como cualquier otro comando. Puede sincronizar dos directorios locales como se muestra.

sudo zaloha.sh --sourceDir="/carpeta_a_sincronizar/" --backupDir="/carpeta_sincronizada/"

En mi ejemplo, sincronizaré mi carpeta “/root/ABC” que contiene dos archivos TXT, hacía la carpeta “/var/www/html/ABC

Sincronizar dos directorios locales Linux
Sincronizar dos directorios locales Linux

Después de ejecutarlo, zaloha analizará los dos directorios y preparará los comandos necesarios para sincronizar los dos directorios.

Sincronizar carpetas en Linux
Sincronizar carpetas en Linux

Se te solicitará que confirmes las acciones que se ejecutarán: “Execute above-listed copies to /var/www/html/admin_portal/? [Y/y=Yes, other=do nothing, and abort]“. Responde yes para continuar.

3. Copia de seguridad en medios USB externos/extraíbles

También puedes hacer una copia de seguridad (backup) en un medio extraíble (por ejemplo, /media/EsGeeks/EXT) montado en el sistema de archivos local. El directorio de destino debe existir para que el comando funcione; de ​​lo contrario, recibirás el mensaje de error “Zaloha.sh: <backupDir> is not a directory“.

4. Cambios del directorio de origen al de copia de seguridad

Ahora realiza más cambios en el directorio de origen, luego ejecuta zaloha.sh una vez más para hacer una copia de seguridad de los cambios como se muestra.

mkdir /carpeta_a_sincronizar/nueva_carpeta
sudo zaloha.sh --sourceDir="/carpeta_a_sincronizar/" --backupDir="/carpeta_sincronizada/"
Backup con sincronización de carpetas
Backup con sincronización de carpetas

Zaloha.sh creará la nueva carpeta (nueva_carpeta) en el directorio de copia de seguridad y copiará los archivos nuevos de la fuente.

Sincronizar directorios locales con Zaloha
Sincronizar directorios locales con Zaloha

5. Sincronización inversa de cambios del backup al directorio de origen


Suponiendo que hayas realizado cambios en el directorio de respaldo (backupDir) a los archivos que ya existen en el directorio de origen (sourceDir), puedes hacer que los cambios se reflejen en el directorio de origen utilizando la función de sincronización inversa, habilitada mediante la opción --renUp.

sudo zaloha.sh --revUp --sourceDir="/carpeta_a_sincronizar/" --backupDir="/carpeta_sincronizada/"
Sincronización inversa directorios Linux
Sincronización inversa directorios Linux

Supongamos que he modificado un archivo (EsGeeks.txt) en el directorio sincronizado (–backupDir). Entonces haré que estos cambios se vean reflejados en el directorio origen (–sourceDir).

Sincronización inversa de carpetas con zaloha
Sincronización inversa de carpetas con zaloha

Ten en cuenta que cualquier archivo o directorio nuevo creado en el directorio de respaldo (backupDir) que no exista en el directorio fuente (sourceDir) se eliminará.

Puedes decirle a zaloha que siga enlaces simbólicos en el directorio de origen usando la opción –followSLinksS y en el directorio de respaldo usando la --followSLinksS.

sudo zaloha.sh --followSLinksS  --followSLinksB --sourceDir="/carpeta_sincronizar/" --backupDir="/carpeta_sincronizada/"

Para ver la documentación de Zaloha, ejecuta el siguiente comando.

zaloha.sh --help

¡Eso es todo por ahora! Zalohah.sh es un script de copia de seguridad pequeño y simple basado en Bash para sincronizar dos directorios locales en Linux. Pruébalo y comparte tus pensamientos a través del formulario de comentarios.

Contenido relacionado:

Si te gusta el contenido y deseas apoyar a la mejora del sitio web, considera hacer una contribución ¡haciendo clic aquí por favor!. ¡NO ES OBLIGATORIO, GRACIAS! :’)

¿Te ha gustado este artículo? Sigue este blog en su fanpage de  Facebook, TELEGRAM, Discord, TwitterInstagram y/o YouTube para que no te pierdas del mejor contenido informático y hacking!

Más artículos
Ver Nombre y versión Distribución Linux instalada
9 Comandos para saber nombre y versión de distribución Linux instalada