Ответы:
ssh user@remote_host "cat remote_file.txt" | diff - local_file.txt
cat
, которые на самом деле являются просто оригинальным файлом?
ssh
команды в команду, diff
которая ожидает сравнения stdin
с локальным файлом.
Пытаться:
diff local_file <(ssh user@server 'cat remote_file')
или используя vimdiff
:
vimdiff local_file scp://server//path/to/remote_file
diff local_file <(ssh user@server 'cat remote_file')
только для SSH без пароля? Похоже, я не могу получить запрос пароля с ним ...
cat <(ssh user@server 'cat remote_file')
и cat < <(ssh user@server 'cat remote_file')
увидишь различия.
Может быть, это не полезно в вашем конкретном случае, но я часто просто использую
sum -r
на каждой машине и вручную сравнивайте контрольные суммы. Это позволяет сравнивать файлы, даже если они недоступны через ssh-соединение. Конечно, все, что он отвечает, это «они идентичны», но часто этого достаточно для моих нужд. Это также позволяет легко проверить, что один и тот же файл одинаков на 3 или 4 или более компьютерах.
cat
чтобы фактически запустить cat
команду только тогда, когда будет определено, что файлы различаются.
info coreutils 'sum invocation'
говорит, в частности: «Для совместимости предоставляется« сумма »; программа« cksum »(см. Следующий раздел) предпочтительнее в новых приложениях».
Если вы предпочитаете более визуальный подход в терминальной сессии. У полночного командира есть опция удаленной файловой системы (опция SFTP-ссылка ... в меню) и опция визуального сравнения файлов. Он не устанавливается по умолчанию в большинстве систем Linux, но доступен в большинстве базовых репозиториев. шаги:
mc
в папке, содержащей файл для сравненияsftp://<user>@<servername>/<path>
).ins
клавиши выберите / выделите файлы для сравнения. ( tab
изменения между левой и правой панелью).Примечание. Доступ к меню полуночного командира обычно можно получить с помощью мыши во время сеанса терминала. Если это не работает, F9
вы попадаете в меню.
SSHFS
, а затем получить к нему доступ, как если бы он был локальным.