Solution 1 :
À partir de la page de manuel diff :
Si le fichier de départ et le fichier de destination sont des répertoires, diff compare les fichiers correspondants dans les deux répertoires, par ordre alphabétique ; cette comparaison n'est pas récursive sauf si l'option -r ou --recursive est donnée.diff ne compare jamais le contenu réel d'un répertoire comme s'il s'agissait d'un fichier. Le fichier qui est entièrement spécifié peut ne pas être une entrée standard, car l'entrée standard est sans nom et la notion de « fichier avec le même nom » ne s'applique pas.
Donc pour comparer les répertoires :diff --brief -r dir1 dir2
Pour comparer des fichiers côte à côte :diff --side-by-side file1 file2
Solution 2 :
En supposant :
- nous sommes le
www1
, en comparaison avec la télécommandewww2
- il y a une authentification par clé ssh publique configurée à partir du
www1
local à distancewww2
- nous comparons le même utilisateur sur le
www1
local et télécommandewww2
find /var/www/html/ -name "*" -exec md5sum -b {} \; | grep -v "/var/www/html/exclude_this dir" > local.md5 ssh www2 "find /var/www/html/ -name '*' -exec md5sum -b {} \; | grep -v /var/www/html/exclude_this dir > remote.md5" scp www2:remote.md5 . diff local.md5 remote.md5
Solution 3 :
Vous voulez vraiment combiner la puissance de rsync
pour réduire la consommation de bande passante avec la puissance de diff
pour vous donner des différences flexibles, euh.
Donc quelque chose comme ça :
cp -R $local $bak
rsync $server:$remdir/* $local/
rsync $local/ $server:$remdir/*
diff -wur $local $bak
Je suppose que vous pourriez modifier un peu cela si vous le faisiez souvent en utilisant rsync
au lieu de cp
dans la première ligne - évidemment dans la dernière ligne, vous avez toute la puissance de diff
pour le formater comme bon vous semble. Probablement avec y dans le cas des OP
L'inconvénient de cette approche est que vous finissez par utiliser deux fois plus d'espace local, mais à moins de 1 $/concert, qui s'en soucie ?