Відповіді:
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
, а потім отримати доступ до нього так, ніби він локальний.