Soluzione 1:
Dalla pagina man diff:
Se sia from-file che to-file sono directory, diff confronta i file corrispondenti in entrambe le directory, in ordine alfabetico; questo confronto non è ricorsivo a meno che non venga fornita l'opzione -r o --recursive.diff non confronta mai il contenuto effettivo di una directory come se fosse un file. Il file completamente specificato potrebbe non essere lo standard input, perché lo standard input è senza nome e la nozione di "file con lo stesso nome" non si applica.
Quindi, per confrontare le directory:diff --brief -r dir1 dir2
Per confrontare i file fianco a fianco:diff --side-by-side file1 file2
Soluzione 2:
Supponendo:
- siamo al
www1
, confrontando conwww2
remoto - è configurata l'autenticazione con chiave ssh pubblica dal
www1
locale alwww2
remoto - confrontiamo come lo stesso utente su
www1
locale ewww2
remoto
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
Soluzione 3:
Vuoi davvero combinare la potenza di rsync
per ridurre il consumo di larghezza di banda con la potenza di diff
per darti flessibilità, beh, um differenze.
Quindi qualcosa del genere:
cp -R $local $bak
rsync $server:$remdir/* $local/
rsync $local/ $server:$remdir/*
diff -wur $local $bak
Immagino che potresti modificarlo un po' se lo facessi spesso usando rsync
invece di cp
nella prima riga - ovviamente nell'ultima riga hai tutta la potenza di diff
per formattarlo come preferisci. Probabilmente con y nel caso dei PO
Lo svantaggio di questo approccio è che finisci per utilizzare il doppio dello spazio locale, ma a meno di $ 1/gig che importa?