Mam folder a / i folder zdalny A /. Teraz uruchamiam coś takiego na pliku 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
kiedy tworzę muzykę do synchronizacji, najpierw pobiera wszystkie różnice z serwera na lokalny, a następnie odwrotnie, wysyłając wszystkie różnice z lokalnego na serwer.
Działa to bardzo dobrze tylko wtedy, gdy w przyszłości są tylko aktualizacje lub nowe pliki. Jeśli są skreślenia, to nic nie robi.
W rsync są opcje --delete i --delete-after, które pomagają osiągnąć to, co chcę, ale rzecz jest taka, że nie działa przy synchronizacji dwukierunkowej.
Jeśli chcę usunąć pliki serwera na synchronizacji, gdy pliki lokalne zostały usunięte, działa, ale jeśli z jakiegoś powodu (wyjaśnione poniżej) mam pliki, których nie ma na serwerze, ale istnieją lokalnie i zostały usunięte, Chcę je lokalnie usunąć, a nie skopiować na serwer (tak się dzieje).
Chodzi o to, że mam 3 maszyny w kontekście:
- pulpit
- notatnik
- serwer domowy
Dlatego czasami serwer będzie miał pliki, które zostały usunięte podczas synchronizacji notatnika, a następnie, kiedy uruchomię synchronizację z moim komputerem (gdzie usunięte pliki serwera nadal istnieją), chcę, aby te pliki zostały usunięte, a nie skopiowany ponownie na serwer.
Myślę, że jest to możliwe tylko z bazą danych i śledzeniem operacji: P
Jakieś prostsze rozwiązania? Dziękuję Ci.