▪️ Сравнение директорий по контрольным суммам
# На сервере A:
find /etc -type f -print0 \
| sort -z \
| xargs -0 md5sum > /tmp/etc-hash.txt
# На сервере B:
find /etc -type f -print0 \
| sort -z \
| xargs -0 md5sum > /tmp/etc-hash.txt
Затем можно скопировать файлы на локальный хост и сравнить:
diff -u serverA/etc-hash.txt serverB/etc-hash.txt
Отличия будут видны построчно: какие файлы отличаются и какие отсутствуют.
▪️ Более гибкий вариант
Хэшируем сразу несколько директорий и добавляем префикс хоста:
for h in server1 server2; do
ssh $h 'find /etc -type f -print0 \
| sort -z \
| xargs -0 md5sum' \
| sed "s|^|$h |"
done > all-hashes.txt
Теперь легко фильтровать:
awk '{print $2,$1}' all-hashes.txt | sort | uniq -c
Если файл совпадает на всех хостах - будет одинаковая хэш-сумма.
Если разный - сразу видно у какого сервера отличается.
BashTex 📱 #bash #utils