web-dev-qa-db-fra.com

Exécuter un diff entre les fichiers locaux et distants

Je suis connecté sur un hôte via ssh et je voudrais comparer (disons avec diff) un certain fichier de configuration avec son homologue sur un autre hôte, également accessible via ssh, sans avoir à télécharger manuellement le fichier distant avant d'exécuter le diff.

39
fduff
ssh user@remote_Host "cat remote_file.txt" | diff - local_file.txt

Source

57
polym

Essayer:

diff local_file <(ssh user@server 'cat remote_file')

ou en utilisant vimdiff:

vimdiff local_file scp://server//path/to/remote_file
18
cuonglm

Peut-être que ce n'est pas utile dans votre cas précis, mais j'utilise souvent simplement

sum -r

sur chaque machine et comparer manuellement les sommes de contrôle. Cela permet des comparaisons de fichiers même lorsqu'ils ne sont pas accessibles via une connexion ssh. Bien sûr, tout ce qu'il répond est "sont-ils identiques", mais souvent cela suffit à mes besoins. Il permet également de vérifier facilement qu'un même fichier est le même sur 3 ou 4 machines ou plus.

9
MJB

Si vous préférez une approche plus visuelle dans votre session de terminal. Le commandant de minuit a une option de système de fichiers à distance (lien SFTP ... option dans le menu) et une option de comparaison de fichiers visuels. Il n'est pas installé par défaut sur la plupart des systèmes Linux mais est disponible dans la plupart des référentiels de base. Pas:

  1. Démarrez midnight commander (commande: mc) dans le dossier contenant le fichier à comparer
  2. De l'autre côté (par exemple le menu Droite) créez un lien sftp vers l'autre serveur dans le même dossier (sftp://<user>@<servername>/<path>).
  3. À l'aide de la touche ins, sélectionnez/mettez en surbrillance les fichiers à comparer. (tab bascule entre le panneau gauche et le panneau droit).
  4. Dans le menu Commande, sélectionnez Comparer les fichiers

Remarque: Le menu du commandant de minuit est généralement accessible à l'aide de la souris dans votre session de terminal. Ça ne marche pas F9 vous permet également d'accéder au menu.

1
Fholst