Двумя путями синхронизация с rsync

У меня есть папка a/и удаленная папка A/. Я теперь выполняю что-то вроде этого на Make-файле:

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

когда я делаю синхронизирующую музыку, это сначала получает весь diffs от сервера до локального и затем противоположного, отправляя весь diffs с локального на сервер.

Это работает очень хорошо, только если существуют только обновления или новые файлы на будущем. Если существуют удаления, это ничего не делает.

В rsync существует - удаляют, и - удаляют - после опций помочь выполнить то, что я хочу, но вещь, это не работает над 2 дорожными синхронизациями.

Если я хочу удалить файлы сервера на syn, когда локальные файлы были удалены, он работает, но если, по некоторым причинам (объяснил после) у меня есть некоторые файлы, которые не находятся в сервере, но существуют локально, и они были удалены, я хочу локально удалить их и не скопированный сервер (как это происходит).

Вещь, у меня есть 3 машины в контексте:

  1. рабочий стол
  2. ноутбук
  3. сервер дома

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

Я предполагаю, что это только возможно с базой данных и дорожкой операций :P

Какие-либо простые решения?Спасибо.

92
задан menjaraz 1 January 2012 в 11:17
поделиться

1 ответ

Попробуйте Unison: http://www.cis.upenn.edu/~bcpierce/unison/

Синтаксис: unison dirA/ dirB/

Unison спрашивает, что делать, когда файлы различаются, но вы можете автоматизировать процесс, используя следующую команду, которая принимает опции по умолчанию (не конфликтующие):

unison -auto dirA/ dirB/

unison -batch dirA/ dirB/ вообще не задает вопросов и пишет на выходе, сколько файлов было проигнорировано (потому что они конфликтуют).

61
ответ дан 24 November 2019 в 06:35
поделиться
Другие вопросы по тегам:

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