От домашнего животного к крупному рогатому скоту: сравните /etc/rsyslog.d/local.conf 100 раз [закрыто]

Мы меняем способ обращения с серверами: от домашних животных к скоту.

В конкретном случае у меня есть около 100 серверов, на которых есть файл с именем:

/etc/rsyslog.d/local.conf

Я понятия не имею, какая версия правильная. Я провел несколько тестов, большинство из них одинаковы, но не все.

Я бы хотел пойти демократическим путем: из всех 100 конфигурационных файлов наиболее распространенная версия выбирается в качестве канонической.

Следующий шаг - посмотреть на разные файлы.

У меня есть некоторые знания о сценариях оболочки, и я могу помочь себе, не спрашивая.

Но я думаю, что мое решение было бы грязным.

Как найти каноническую версию, а затем попытаться управлять другой версией конфигурации?

-2
задан 2 March 2017 в 13:46
2 ответа

Посмотрите на свой старый вопрос Сравните 20 файлов с diff, а не 2 . Ваше решение вместе с моими частями легко покажет вам количество файлов для каждой уникальной версии:

md5sum tmp/crontab-* | cut -d ' ' -f 1 |  sort | uniq -c 

покажет вам номер каждого хэша.

После этого у вас есть , чтобы вручную заглянуть в другие файлы, чтобы решить, какие из отличий вам необходимо включить в управление конфигурацией. Ведь даже при выпасе крупного рогатого скота каждое животное в определенной степени индивидуально.

(Правка: вставлен разрез , чтобы сделать строки уникальными для подсчета)

5
ответ дан 5 December 2019 в 21:04

Если вас интересовал сбор строк, а не полных файлов, то следующий фрагмент должен оказать некоторую помощь, ЕСЛИ у вас есть интерпретатор python:

import glob
from collections import Counter

line_counter = Counter()

for cfg in glob.iglob('**.conf'):

    with open(cfg,'rb') as cf:
        line_counter.update(set(cf.readlines()))

for line,score in line_counter.most_common():
    print "#{} {}".format(score,line)
1
ответ дан 5 December 2019 в 21:04

Теги

Похожие вопросы