Применить изменение / исправление файловой структуры в удаленной системе?

Есть ли инструмент, который создает различие файловой структуры, возможно, на основе манифеста MD5. Моя цель - отправить по сети пакет, содержащий новые / обновленные файлы и список файлов, которые нужно удалить. Ему нужно скопировать новые / обновленные файлы и удалить файлы, которые были удалены из исходной файловой структуры?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
475
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете попробовать rsync. В зависимости от ваших потребностей команда может быть такой простой:

rsync -az --del /path/to/master dup-site:/path/to/duplicate

Цитата из веб-сайт rsync:

rsync is an open source utility that provides fast incremental file transfer. rsync is freely available under the GNU General Public License and is currently being maintained by Wayne Davison.

Или, если вы предпочитаете википедия:

rsync is a software application for Unix systems which synchronizes files and directories from one location to another while minimizing data transfer using delta encoding when appropriate. An important feature of rsync not found in most similar programs/protocols is that the mirroring takes place with only one transmission in each direction. rsync can copy or display directory contents and copy files, optionally using compression and recursion.

В этот момент я надеялся на что-нибудь оффлайн. Я работаю над онлайн-различиями.

vfilby 21.10.2008 18:57
Ответ принят как подходящий

@vfilby Я пытаюсь реализовать нечто подобное.

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

Сейчас я использую git diff. Это очень хорошо работает для текстовых файлов. Diff генерирует патчи, а не МАНИФЕСТ, который вы должны включать в свои файлы. Что хорошо в патчах, так это то, что уже существует устоявшаяся структура для использования и тестирования этих патчей, прежде чем они будут применены.

Например, с помощью утилиты исправления, которая входит в стандартную комплектацию любого устройства * unix, вы можете запустить исправление в режиме пробного запуска. Это скажет вам, действительно ли патч, который вы собираетесь применить, будет применяться, прежде чем вы его запустите. Это поможет вам убедиться, что файлы, которые вы обновляете, не изменились во время подготовки патча.

Если это похоже на то, что вы ищете, я могу подробнее рассказать о своем процессе.

Другие вопросы по теме