У меня есть код на хосте, и я хочу, чтобы он запускался на виртуальной машине Debian (которая размещена на этом же хосте).

Поэтому я использую папку общего доступа VmWare, чтобы поделиться своим кодом на виртуальной машине. Но моя программа работает медленнее, чем когда код находится на жестком диске виртуальной машины. (вероятно, из-за другой файловой системы (hgfs против ext4)

Я вижу два возможных решения:

  • Синхронизируйте общую папку с другой папкой на виртуальной машине. Так что не было бы доступа к сети. Но я не знаю, какой инструмент мне следует использовать. Вероятно, что-то вроде постоянной односторонней rsync, которая также удаляла бы файлы.

  • Используйте какую-то "ссылку", например, символическую ссылку или физическую ссылку, которая бы копировала папку, но я не знаю, существует ли что-то подобное.

Как бы Вы это сделали ?

(Конечно, если у меня есть код на виртуальной машине и я делюсь им с Samba, проблема та же, и доступ к файлам с помощью моей IDE медленнее)

1 ответ1

2

Rsync - хорошая идея, однако вы всегда должны вносить изменения на одном и том же хосте, с которого rsync будет получать источник. Вам потребуются некоторые базовые сценарии bash, которые запускают rsync в цикле с параметром --delete который удаляет из TARGET файлы, которых нет в SOURCE. Запустите этот скрипт на screen во время запуска, и все готово

Другая идея состоит в том, чтобы использовать какую-либо облачную синхронизацию, например Dropbox, или спулингировать свой собственный сервер owncloud/nextcloud для этого.

И если это действительно код, который вы пытаетесь синхронизировать, то отраслевым стандартом PROPER является использование git-репозитория, вы можете создать бесплатный в https://bitbucket.org и настроить обе машины на его использование, а затем зафиксировать / вытащить изменения когда нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .