Zaloha.sh: un sencillo script sincronizador de directorios locales 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 mediante el comando de búsqueda. Ambos directorios deben estar disponibles localmente, es decir, montados en el sistema de archivos local. También cuenta con sincronización inversa y, opcionalmente, puede comparar archivos byte por byte. Además, pide a los usuarios que confirmen las acciones antes de ejecutarlas.

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

Instalación de Zaloha.sh en Linux

Para instalar Zaloha.sh, debe clonar su repositorio de Github usando la herramienta de línea de comandos de git, pero antes de eso, debe 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, ejecute el siguiente comando para clonar el repositorio remoto en su sistema, muévase al repositorio local, luego instale el script zaloha.sh en una ubicación en su RUTA, por ejemplo,/usr/bin y hágalo ejecutable como se muestra.

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

Sincronice dos directorios locales en Linux con Zaloha.sh

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

$ sudo zaloha.sh --sourceDir="./admin_portal/" --backupDir="/var/www/html/admin_portal/"

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

Se le pedirá que confirme las acciones que se ejecutarán: “¿Ejecutar las copias enumeradas anteriormente en/var/www/html/admin_portal /? [Y/y u003d Sí, otro u003d no hacer nada y abortar]: ”. Responda sí para continuar.

Copia de seguridad en medios USB externos / extraíbles

También puede realizar una copia de seguridad en un medio extraíble (por ejemplo,/media/aaronk/EXT) montado en el sistema de archivos local. El directorio de destino debe existir para que funcione el comando; de lo contrario, aparecerá el mensaje de error "Zaloha.sh: no es un directorio".

$ sudo mkdir /media/aaronk/EXT/admin_portal
$ sudo zaloha.sh --sourceDir="./admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"

Copia de seguridad de cambios desde la fuente al directorio de copia de seguridad

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

$ mkdir /home/aaronk/admin_portal/plugins
$ mkdir /home/aaronk/admin_portal/images
$ sudo zaloha.sh --sourceDir="/home/aaronk/admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"

Zaloha.sh creará los nuevos directorios en el directorio de respaldo y copiará los archivos nuevos de la fuente, así como los resaltados en la siguiente captura de pantalla.

Sincronización inversa de cambios desde la copia de seguridad al directorio de origen

Suponiendo que ha realizado cambios en el directorio de respaldo a archivos que ya existen en el directorio de origen, puede hacer que los cambios se reflejen en el directorio de origen utilizando la función de sincronización inversa, habilitada con la opción --renUp .

$ zaloha.sh --revUp --sourceDir="/home/aaronk/admin_portal/" --backupDir="/media/aaronk/EXT/admin_portal"

Tenga en cuenta que todos los archivos o directorios nuevos creados en el directorio de copia de seguridad que no existan en el directorio de origen también se eliminarán como se indica en la siguiente captura de pantalla.

Puede decirle a zaloha que siga enlaces simbólicos en el directorio fuente usando la opción --followSLinksS y en el directorio de respaldo usando la opción --followSLinksB .

$ sudo zaloha.sh --followSLinksS  --followSLinksB --sourceDir="./admin_portal/" --backupDir="/var/www/html/admin_portal/"

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

$ zaloha.sh --help

¡Eso es todo por ahora! Zalohah.sh es un pequeño y simple script de respaldo basado en Bash para sincronizar dos directorios locales en Linux. Pruébelo y comparta sus pensamientos con nosotros a través del formulario de comentarios a continuación.