У мене є папка 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, які допомагають здійснити те, що я хочу, але справа в тому, що вона не працює при двосторонній синхронізації.
Якщо я хочу видалити файли сервера на синхронізації, коли локальні файли будуть видалені, це працює, але якщо з якихось причин (пояснюється після) у мене є деякі файли, яких немає на сервері, але існують локально, і вони були видалені, Я хочу локально їх видалити, а не скопіювати сервер (як це трапляється).
Справа в тому, що у мене є 3 машини в контексті:
- робочий стіл
- зошит
- домашній сервер
Отже, іноді на сервері будуть файли, які було видалено за допомогою синхронізації з ноутбуком, наприклад, а потім, коли я запускаю синхронізацію зі своїм робочим столом (де видалені файли сервера все ще існують), я хочу, щоб ці файли видалялись, а не скопійовано знову на сервер.
Я думаю, це можливо лише за допомогою бази даних та відстеження операцій: P
Якісь простіші рішення? Дякую.