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