Как вызвать rsync для изменения файла?

Я могу синхронизировать папки с rsync -avz /directory /target, теперь я хочу это сделать, если я изменил файл в /directory, поэтому rsync следует вызывать автоматически.

Я использую Virtual Box и общая папка Virtual Box очень медленная, особенно если у вас есть веб-страница, которая использует общую папку в качестве корня документа. С rsync я смогу работать с моими локальными файлами в общей папке и автоматически синхронизировать его с корнем документа.

Надеюсь, у кого-то есть идея, как это сделать, crontab будет нехорошо , потому что он выполняется каждые x минут, поэтому, если я ничего не делаю, он все равно будет вызывать rsync, но не если я изменил свой файл.

С наилучшими пожеланиями

1
задан 30 August 2013 в 15:19

2 ответа

Вы можете использовать Lsyncd (Live Syncing Daemon):

Lsyncd наблюдает за интерфейсом мониторинга событий дерева деревьев локального каталога (inotify или fsevents). Он объединяет и объединяет события в течение нескольких секунд, а затем запускает один (или более) процесс (ы) для синхронизации изменений. По умолчанию это rsync. Таким образом, Lsyncd представляет собой легкое зеркальное зеркало, которое сравнительно просто установить, не требуя новых файловых систем или блокирующих устройств, и не препятствует производительности локальной файловой системы.

Вот, например, Lsyncd (Live Syncing Daemon) .

1
ответ дан 24 May 2018 в 18:32

Вы можете использовать inotifywait и rsync. inotifywait с включенным событием modify,create,delete. Таким образом, вы будете синхронизироваться с вашим сервером только при изменении файла, иначе он будет синхронизироваться всякий раз, когда будет прочитан файл (редакторы читают несколько раз ваш файл, чтобы проверить, есть ли какие-либо изменения). Таким образом, сказано:

while inotifywait -r -e modify,create,delete /directory; do
    rsync -avz /directory /target
done
0
ответ дан 24 May 2018 в 18:32

Другие вопросы по тегам:

Похожие вопросы: