Risposte:
ssh user@remote_host "cat remote_file.txt" | diff - local_file.txt
cat
, che in realtà sono solo il file originale?
ssh
comando remoto su quello diff
che è in attesa di confrontare stdin
con localfile.
Provare:
diff local_file <(ssh user@server 'cat remote_file')
o usando vimdiff
:
vimdiff local_file scp://server//path/to/remote_file
diff local_file <(ssh user@server 'cat remote_file')
solo con SSH senza password? Non riesco a ricevere una richiesta di password con esso ...
cat <(ssh user@server 'cat remote_file')
e cat < <(ssh user@server 'cat remote_file')
vedere le differenze.
Forse questo non è utile nel tuo caso esatto, ma spesso lo uso semplicemente
sum -r
su ogni macchina e confrontare manualmente i checksum. Ciò consente il confronto di file anche quando non sono raggiungibili tramite una connessione ssh. Ovviamente, tutto ciò che risponde è "sono identici", ma spesso è sufficiente per le mie esigenze. Inoltre, consente di verificare facilmente che un singolo file sia lo stesso su 3 o 4 o più macchine.
cat
per eseguire effettivamente il cat
comando solo quando è stato determinato che i file differiscono.
info coreutils 'sum invocation'
dice, tra l'altro: "'somma' è fornita per compatibilità; il programma 'cksum' (vedere la sezione successiva) è preferibile in nuove applicazioni."
Se preferisci un approccio più visivo nella tua sessione terminale. Il comandante di mezzanotte ha un'opzione di file system remoto (opzione collegamento SFTP ... nel menu) e un'opzione di confronto dei file visivi. Non è installato di default sulla maggior parte dei sistemi Linux ma è disponibile nella maggior parte dei repository di base. passi:
mc
nella cartella contenente il file da confrontaresftp://<user>@<servername>/<path>
).ins
tasto selezionare / evidenziare i file da confrontare. ( tab
cambia tra pannello sinistro e destro).Nota: è possibile accedere al menu del comandante di mezzanotte utilizzando il mouse nella sessione del terminale. Ciò che non funziona F9
ti porta anche nel menu.
SSHFS
e quindi accedervi come se fosse locale.