1

Что можно использовать для обнаружения того, что удаленный файл отличается от локального файла?

Возможно использование ssh в качестве канала для общения. Написано в bash, имея в виду серверы Linux.

Это может быть основано на содержимом файла (md5sum), но я бы хотел вывести (из времени модификации), какой файл новее ...

Я пытаюсь определить, были ли какие-либо файлы конфигурации отредактированы на серверах по сравнению с копиями под контролем версий, и объединить изменения.

1 ответ1

0

Одним из решений, которое будет обрабатывать как локальные, так и удаленные (через ssh) хосты, было бы rsync:

rsync -av -n -c src/ dst/

Флаг -n сообщает rsync на самом деле не нужно выполнять какие-либо передачи, поэтому на выходе будут только файлы, которые он хочет передать, или измененные файлы. -c гарантирует, что rsync выполнит сравнение MD5. Если вы хотите просто сопоставить размер и время последней модификации, просто опустите -c .


Другим методом будет проверка обоих каталогов в git репозиториях. Это требует значительного знакомства с git но может быть достигнуто путем сохранения файлов каждого хоста в отдельной ветке. Затем можно git fetch (который пропускает подразумеваемое слияние git pull) и использовать git diff между ветками для проверки изменений. Этот вопрос может быть полезен при такой настройке.

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