Надежная синхронизация файлов через флешку

Многие пользователи Obsidian сталкиваются с дилеммой: как синхронизировать заметки между компьютерами, не прибегая к платным облачным сервисам или сторонним приложениям, которые могут ставить под угрозу конфиденциальность данных? Для тех, кто ценит приватность, независимость от интернета и простоту, идеальным решением становится обычная USB-флешка.

Надежная синхронизация файлов через флешку

Я веду все проекты, сценарии, раскадровки и заметки в Obsidian. База знаний — это тысячи markdown-файлов, картинки, PDF, ссылки.

Проблема классическая:

  • дома — стационарный ПК,
  • в поездке или на втором компьютере — другой ПК,
  • облако (Google Drive, Dropbox, Obsidian Sync) — либо платно, либо нельзя по политике безопасности, либо просто не хочется отдавать свои тексты наружу.

Флешка — самый простой «транспорт». Но просто копировать папку туда-сюда — это постоянные проблемы:

  1. Затираешь новые файлы старыми.
  2. Забываешь, что удалил, и удалённое «воскресает» при копировании.
  3. Не помнишь, в какую сторону последний раз копировал.

Мне нужен был простой синхронизатор: воткнул флешку — нажал одну кнопку туда, одну обратно. Без git, без консоли, без лишней магии. Так появилось приложение Sync Tool.


Как работает Sync Tool

Это маленькая программа на Python для Windows. Никаких зависимостей — только стандартный Python 3.x.

Логика простая, всего два каталога:

  • Base catalog — основная папка. Например D:\ObsidianVault на вашем ПК.
  • Temp catalog — папка обмена. Это папка на флешке, например E:\vault_sync.


И две кнопки:

EXPORT (base -> temp)

Программа сканирует Base, сравнивает каждый файл с журналом _sync.json (дата изменения mtime + размер size).

  • Новый или изменённый файл — копируется на флешку.
  • Файл, удалённый из Base — удаляется и с флешки, а его имя записывается в _delete_list.json.

IMPORT (temp -> base)

Обратная операция. Сканирует флешку:

  • Новые/изменённые файлы копируются в Base.
  • Всё, что числится в _delete_list.json, удаляется из Base (с чисткой пустых папок).

Три служебных файла создаются автоматически:

  • _sync.json — слепок состояния: какой файл когда менялся.
  • _delete_list.json — список на удаление, живёт на флешке.
  • settings.json — сохранённые пути к папкам.

То есть удаления тоже синхронизируются — этого не умеет обычное «скопировать с заменой».

Установка за 5 минут

  1. Установите Python 3 с python.org (при установке поставьте галочку Add to PATH).
  2. Скачайте репозиторий: https://github.com/pro2rus/sync_tool_obsidian — кнопка Code -> Download ZIP, распакуйте.
  3. В папке два файла: sync_app.py и Run_SyncApp.bat.
  4. Запуск — двойным кликом по Run_SyncApp.bat или командой python sync_app.py.

При первом запуске:

  • в поле Base catalog укажите свою папку Obsidian,
  • в поле Temp catalog — папку на флешке,
  • нажмите Save Settings.

Сохранить настройки.

Почему не git, Syncthing, Obsidian Sync?

  • Obsidian Sync — отлично, но подписка и данные в облаке.
  • Syncthing / Resilio — нужен интернет и оба ПК онлайн одновременно.
  • Git — идеально для кода, но для 5 Гб картинок и для человека, который просто хочет писать, — избыточно.
  • Total Commander / FreeFileSync — мощные приложения, но на флешке держат весь каталог-образец. Есть вероятность фатального повреждения данных.

Мой инструмент — это «челночная» синхронизация для одного человека и одной флешки. Минимум кнопок — минимум ошибок.

Ограничения, о которых честно предупреждаю

  1. Нет разрешения конфликтов «изменил один и тот же файл в двух местах». Побеждает тот, кого последним скопировали. Правило простое: не редактируйте одни и те же заметки на двух ПК без промежуточной синхронизации.
  2. Сравнение только по mtime + size, без хешей. Для текстов и картинок этого достаточно и это быстро. Для критичного кода используйте git.
  3. Только Windows из коробки (tkinter, пути D:\). На Linux/macOS запустится из исходника, но bat-файл не нужен.
  4. Флешку надо безопасно извлекать — иначе _sync.json и _delete_list.json могут не дописаться.

Для моих задач — раскадровки, сценарии, референсы для 3D — этого хватает за глаза.

Что дальше?

Проект доступен в моем профиле на GitHub под лицензией MIT. Вы можете клонировать репозиторий, изучить исходный код и адаптировать его под свои нужды. Это отличное решение для студентов, исследователей и всех, кто строит свою вторую цифровую базу знаний в Obsidian.

🔗 Ссылка на проект: github.com/pro2rus/sync_tool_obsidian

Если пользуетесь Obsidian на двух компьютерах через флешку — попробуйте. А если нашли баг или хотите фичу — пишите в Issues на GitHub, разберём. Буду рад вашим звездам (⭐)

Илья Булатов — 3D-визуализатор, AI-filmmaker. Веду базу знаний в Obsidian и делюсь инструментами, которыми пользуюсь сам: https://pro2rus.ru/

Бесплатный
Мой инструментарий3
Комментарии
avatar
Здесь будут комментарии к публикации