Puedo sincronizar carpetas con rsync -avz /directory /target
, ahora deseo hacerlo si cambié un archivo, por /directory
lo que rsync
debería llamarse automáticamente.
Estoy usando Virtual Box y la carpeta compartida de Virtual Box es realmente lenta, especialmente si tiene una página web que usa la carpeta compartida como raíz del documento. Con rsync
sería capaz de trabajar con mis archivos locales en la carpeta compartida y sincronizarlos automáticamente con la raíz del documento.
Espero que alguien tenga una idea de cómo hacerlo, crontab
no sería bueno, porque se ejecuta cada x minutos, por lo que si no hago nada, seguirá llamando rsync
pero no si modifiqué mi archivo.
Atentamente
fuente
inotifywait
solución tiene un inconveniente leve pero importante: no detecta los cambios que ocurrieron cuando sersync
está ejecutando. Considere la siguiente situación: el archivo A ha cambiado; rsync se activa; cuando rsync está casi listo para sincronizar el archivo A, el archivo B cambia. Ahora,rsync
finaliza y seinotifywait
está ejecutando, pero el archivo B no está sincronizado y no se sincronizará hasta el próximo cambio. Considere usarlsyncd
según lo sugerido por @Arigion.Puede usar Lsyncd (Live Syncing Daemon) :
Aquí hay, por ejemplo, un tutorial para Ubuntu 16.04 .
fuente
Puedes usar
inotifywait
yrsync
.inotifywait
con el eventomodify,create,delete
habilitado. De esta manera, se sincronizará con su servidor solo cuando el archivo cambie, de lo contrario, se sincronizará cada vez que se lea un archivo (los editores leen varias veces su archivo para verificar si hay algún cambio). Así dijo:fuente
lsyncd
según lo sugerido por @Arigion.Ampliando ligeramente un comentario a la respuesta aceptada He tenido éxito usando fswatch para activar un
scp
archivo modificado para el invitado. En Linux, esto es un envoltorio,inotify
pero también es multiplataforma (estoy en una Mac con un invitado QEMU basado en Arm). También he agregado unassh
construcción remota. El enfoque push funciona bien con recursos compartidos que se comportan de manera menos que ideal.fuente