Řešení 1:
Z manuálové stránky rozdílů:
Pokud jsou ze souboru i do souboru adresáře, porovnává diff odpovídající soubory v obou adresářích v abecedním pořadí; toto porovnání není rekurzivní, pokud není zadána volba -r nebo --recursive.diff nikdy neporovnává skutečný obsah adresáře, jako by to byl soubor. Soubor, který je plně specifikován, nemusí být standardním vstupem, protože standardní vstup je bezejmenný a pojem ‚‚soubor se stejným názvem‘‘ neplatí.
Takže pro porovnání adresářů:diff --brief -r dir1 dir2
Chcete-li porovnat soubory vedle sebe:diff --side-by-side file1 file2
Řešení 2:
Za předpokladu:
- jsme na
www1
, ve srovnání se vzdálenýmwww2
- je nakonfigurované ověřování veřejným ssh klíčem z místního
www1
na vzdálenýwww2
- porovnáváme jako stejný uživatel na místním
www1
a vzdálenýwww2
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
Řešení 3:
Opravdu chcete spojit sílu rsync
snížit spotřebu šířky pásma s výkonem diff
abychom vám poskytli flexibilní, no ehm rozdíly.
Takže něco takového:
cp -R $local $bak
rsync $server:$remdir/* $local/
rsync $local/ $server:$remdir/*
diff -wur $local $bak
Myslím, že byste to mohli trochu vylepšit, pokud byste to často dělali pomocí rsync
místo cp
v prvním řádku - zjevně v posledním řádku máte plnou moc diff
naformátujte jej, jak chcete. Pravděpodobně s y v případě OPs
Nevýhodou tohoto přístupu je, že nakonec využijete dvakrát více místního prostoru, ale za méně než 1 $/gig, koho to zajímá?