У меня есть папка a/и удаленная папка A/. Теперь я запускаю что-то вроде Makefile:
get-music:
rsync -avzru server:/media/10001/music/ /media/Incoming/music/
put-music:
rsync -avzru /media/Incoming/music/ server:/media/10001/music/
sync-music: get-music put-music
когда я делаю синхронизацию, он сначала получает все различия от сервера к локальному, а затем наоборот, отправляя все различия с локального на сервер.
Это работает очень хорошо, только если в будущем есть только обновления или новые файлы. Если есть удаления, это ничего не делает.
В rsync есть опции -delete и -delete-after, чтобы помочь выполнить то, что я хочу, но это не так, это не работает при двухсторонней синхронизации.
Если я хочу удалить файлы сервера на syn, когда локальные файлы были удалены, он работает, но если по какой-либо причине (объясняется после) у меня есть некоторые файлы, которые не находятся на сервере, но существуют локально, и они были удалены, я хочу локально удалить их, а не копировать сервер (как это бывает).
Вещь: у меня есть 3 машины в контексте:
- настольный
- ноутбук
- домашний сервер
Таким образом, иногда сервер будет иметь файлы, которые были удалены с помощью синхронизации с ноутбуком, например, а затем, когда я запускаю синхронизацию с моим рабочим столом (там, где все файлы удаленных серверов все еще существуют), я хочу, чтобы эти файлы были удалены и не копироваться на сервер.
Я предполагаю, что это возможно только с базой данных и отслеживанием операций: P
Любые более простые решения? Спасибо.