2011-12-21 9 views

Odpowiedz

16

można skopiować plik na inny serwer z użyciem scp a następnie użyć diff.

Albo ssh do zdalnego hosta i diff pomocą jednego polecenia tak:

ssh [email protected] "cat /path/to/remote/file" | diff - /path/to/local/file 
4

"-" różni się od STDIN. Można zrobić coś takiego:

ssh server 'cat file_to_diff' | diff -u localfile - 
8

Jeśli Twoje porównanie wielu plików, a następnie spójrz w górę i rdiffrsync, co pozwala zaoszczędzić przepustowość skopiowanie wszystkich plików.

Btw, jeśli twoje pliki są bardzo duże, proszę zaktualizować swoje pytanie tymi informacjami.

0

W przypadku rozwiązywania problemów z wystąpieniem AWS, może być sens, aby zatrzymać inatanceA, a następnie dołączyć jego dysk do wystąpieniaB, z którym chcesz porównać.

1

Wiem, że to spóźniona odpowiedź, ale podaję pytanie dosłownie, bez lokalnego pliku i dwóch zdalnych plików.
W bash (nie wyłącznie), jest możliwe zastosowanie podstawienie procesowy[, 2]<(...):

diff <(ssh Server1 'cat /path/to/file1') <(ssh Server2 'cat /path/to/file2') 

Proces <(list) prowadzony jest asynchroniczny i pojawia jego wejście lub wyjście jako nazwa pliku.

Uwaga

  • Oczywiście jeśli trzeba tylko jeden pilot plik można umieścić plik lokalny zamiast jednego z <(...).
  • Jeśli oba pliki znajdują się na tym samym serwerze można użyć prostsze

    ssh Server1 'diff /path/to/file1 /path/to/file2' 
    
Powiązane problemy