Синхронізувати, копіювати та видаляти операції, а не тільки файли


2

Мені було цікаво, чи є якийсь метод синхронізації, який не копіює файли, якщо вони вже знаходяться в папці призначення.

Дозволь пояснити:

Я зробив кілька фотографій і помістив їх у папку на моєму ноутбуці. Щоб підтримати їх на моєму сервері Ubuntu, я просто побіг rsync -vrutP source des/ti/na/tion/. Тоді я вирішив помістити всі RAW в підпапку на моєму ноутбуці ( source/RAW ) і JPG-файли в іншій підпапці ( source/JPG ).

Тепер, якщо я хочу віддзеркалити це на сервер, я повинен запустити rsync -vrutP --delete source/ des/ti/na/tion/ але якщо я роблю це, я отримую всі мої файли, видалені з сервера, а потім знову скопіювати з ноутбука на сервер. У мене є кілька ГБ зображень, і це не проблема, якщо є час чекати і Ethernet з'єднання, а не WiFi.

Але чи не буде це набагато швидше, навіть якщо вимагатиме набагато більше процесора, якщо існує команда, яка порівнювала б файли в кореневій папці "джерело" і застосовувала лише відмінності позицій між джерелом і місцем призначення? Більше процесора буде задіяний, щоб перерахувати всі файли, але мені не потрібно майже ніякої пропускної здатності для передачі файлів, які мені дійсно не потрібно передавати, тому що вони вже знаходяться в місці призначення, якщо це відбувається в іншому місці. Звичайно, необхідною функціональністю буде дельта-синхронізація, яка також виявляє, якщо існуючі (але переміщені) файли точно такі ж, як і у вихідній теці.

Я знаю про програмне забезпечення, що робить це (Syncovery, Goodsync), але я дійсно хотів знати, чи є якась команда, що робить це на Linux і Windows.


Я не бачу, як це можна зробити автоматично, але виконання тих самих операцій переміщення в цільовій системі має припинити будь-які непотрібні копії: rsync -n покаже вам, які операції будуть зроблені.
AFH

Відповіді:


0

З одного боку, так ... тому що ви перебуваєте на дуже конкретному випадку. З іншого боку, переміщення або перейменування файлів у Linux - це те ж саме. А щоб дізнатися, чи файл на джерелі був просто перейменований, системі доведеться порівняти його (або хеш) з усіма файлами в резервній копії, і тому доведеться прочитати всі файли в резервній копії, щоб обчислити їх ... це було б дуже багато часу, якщо хеши не зберігатимуться в бічній базі даних. Є системи зберігання даних, які роблять це ... але не ваші прості файлові системи.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.