Сценарий: IDE устанавливается на рабочем столе Linux, редактируя файлы PHP локально. Каждый раз, когда я сохраняю файл, я хочу, чтобы это изменение появилось на сервере Linux, где работает Apache. На сервере есть ssh (и samba и nfs).
В качестве справки, когда я редактировал файлы в Windows, я наконец-то нашел WinSCP как именно тот инструмент, который мне нужен - в WinSCP есть только эта функция с начальной синхронизацией, а затем постоянным обновлением с использованием службы наблюдения за файловой системой: «Поддерживайте удаленный каталог до Свидание".
В Linux можно утверждать, что sshfs можно использовать, чтобы полностью обойти необходимость синхронизации. На Windows, общий ресурс Samba будет делать то же самое. Тем не менее, я хочу, чтобы среда IDE работала с локальными файлами (на диске SSD!) Без необходимости проходить через сеть для индексирования PHP и чего-то такого, что занимает много времени.
Но, тем не менее, sshfs может быть частью решения - так что непрерывную синхронизацию просто необходимо выполнить между двумя локальными каталогами.
Любые идеи или указатели?
Ответы:
Вы также можете использовать
inotifywait
из пакета inotify-tools.источник
rsync
/scp
имеет раздражающую задержку при установлении соединения ssh.Lsyncd было бы хорошим решением для этого.
В итоге, он использует те же инструменты для выполнения работы (inotify и rsync), как предложено в других ответах, но его проще настроить для тех, кто не знаком со сценариями оболочки.
источник
Мне это очень нужно, так как мой код должен работать на удаленных компьютерах, а я пишу код на локальной машине. Я нашел хороший инструмент, который вы можете использовать для постоянного мониторинга ваших локальных папок и синхронизации их с удаленной или локальной папкой: https://github.com/axkibe/lsyncd
Простая команда для непрерывной синхронизации локального каталога с удаленным компьютером через ssh будет:
Как и с любой другой командой rsync, убедитесь, что вы правильно указали путь к папке и проверили ее перед запуском. Я чуть не убил одну из своих удаленных машин, потому что не смог указать правильный каталог назначения. Убедитесь, что вы не пропустите удаленный путь и не используйте «/», если вы не знаете, что делаете.
источник
Если вам нужно наблюдать за файловой системой, то inotify - способ сделать это. Я написал бы простой скрипт на python, использующий pyinotify для выполнения синхронизации при изменении файловой системы. Смотрите документацию . Вы также можете проверить autosync.py для вдохновения. Веселиться.
источник
То, что я сделал однажды, - это скрипт bash, работающий
ls -l
в цикле (с некоторым сном) и сравнивающийся с предыдущим выводом. Если это изменилось, сделайте свою синхронизацию.Запустите этот скрипт в новом терминале с именами файлов в качестве аргументов (после добавления в ваш инструмент синхронизации).
(Я использовал это для запуска компиляции, а не для синхронизации, но это будет работать аналогичным образом.)
источник
Гораздо более простой подход:
Экспортируйте ваш / var / www с помощью samba (или nfs) и работайте с файлами прямо на сервере.
Другое решение: большинство IDE допускают различные конфигурации развертывания - проверьте, подходит ли вам такая.
Или установите систему управления исходным кодом, такую как Git, Bazaar и т. Д.
Удачи !!
источник