Как можно наиболее простым способом синхронизировать две директории (локальную и серверную) без необходимости установки дополнительного программного обеспечения на сервере? Требуется двусторонняя синхронизация файлов с возможностью быстрой и простой синхронизации, доступной через SSH, исключая резервные копии, версионирование и синхронизацию на основе Git. Также важно, чтобы этот процесс был синхронизацией файлов, а не удаленным доступом, без использования сети или ssh-плагинов.
Для синхронизации двух директорий с использованием SSH можно воспользоваться утилитой rsync. Rsync - это универсальный инструмент для синхронизации файлов и директорий, который поддерживает передачу файлов через SSH. Для синхронизации локальной директории с серверной можно использовать следующую команду: ```bash rsync -azvr --delete -e ssh /путь/к/локальной/директории/ пользователь@сервер:/путь/к/удаленной/директории/ ``` Эта команда синхронизирует локальную директорию с удаленной директорией на сервере. Опция `-a` означает рекурсивную синхронизацию, `-z` - сжатие файлов во время передачи, `-v` - вывод подробной информации о процессе синхронизации, `--delete` - удаление файлов на удаленной директории, которых нет в локальной. Опция `-e ssh` указывает использовать SSH для передачи файлов. Для синхронизации двух директорий в обе стороны, можно запустить команду на обе стороны: ```bash # С локальной директории на сервер rsync -azvr --delete -e ssh /путь/к/локальной/директории/ пользователь@сервер:/путь/к/удаленной/директории/ # С серверной директории на локальную rsync -azvr --delete -e ssh пользователь@сервер:/путь/к/удаленной/директории/ /путь/к/локальной/директории/ ``` Эти команды будут синхронизировать обе директории в обе стороны. Использование rsync через SSH - это удобный и безопасный способ синхронизации файлов между локальной и удаленной директориями.
Да, странная. Обычно бэкапы делаются по расписанию, а для этих целей rsync хватает.
А твой скрипт после написания и отладки как раз и превратится в неполное подобие syncthing, nextcloud и т.п.
Мне постоянно советуют rsync
Неужели такая странная хотелка, что нет готового решения?
Так тебе и советуют готовое отличное решение.
, но это же просто продвинутая замена scp. Там даже для обратной синхронизации надо его запускать второй раз с другим направлением.
Нет, это не замена scp. То, что используется тот же протокол не значит что работает одинаково. rsync умеет обновлять файлы частично, экономит трафик.
Вот пишу я какой-то код на ноуте. А запускаю на сервере. Как мне самым простым способом синхронизировать две директории — локальную и серверную?
Обычно для таких вещей используют систему контроля версий, что гораздо лучше чем просто синхронизация директорий.
В твоих требованиях противоречия.
То тебе нужно, чтоыб какие-то файлы не синкались. То есть уже нужно поддерживать список исключений и возможно настраивать его на каждом сервере.
Потом у тебя день поработать на каком-то сервере, а завтра на другом. То есть ситуация, когда у тебя 5-10 серверов и ноут будут синкаться друг с другом?
Потом ты хочешь "готовое решения", но не хочешь ставить его на каждый сервер/ноут и настраивать. Ну вот есть какой-нить unison, который синкает в обе стороны за один запуск, но его нужно будет и ставить и настраивать как и synthing, который ты не хочешь ставить или настраивать.
Я бы не парился, а просто юзал приватный git репозиторий, который легко поставить везде. И в гите не обязательно сотни веток и даже коммит можешь просто ребейзить постоянно, чтобы был один.
Или rsync который уже обычно есть почти везде и который понятно как работает.
Или уж настрой тот же synthing, а настройку добавь себе в гитхаб, чтобы можно было скриптом скачать готовый сетап и все.