Аудит изменений файлов (особенно для web.configs)

Иногда у нас есть конфигурации в web.config, которые ИТ-специалисты изменяют на действующих производственных серверах. . Я хотел бы создать контрольный журнал, например: «11 октября свойство« foo »в файле« bar »было изменено на« banana ».

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

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

Я говорю "web.config", но у меня есть несколько разных конфигурационных XML-файлов: web.config, app.config, nant.configs.

Мне нужно точно знать, что в этих конфигурационных файлах изменилось (приблизительно), когда и (в идеале) кем.

Есть какой-то стандартный способ или открытый исходный код инструмент для ведения журнала изменений файла?

2
задан 13 April 2017 в 22:51
1 ответ

Как упоминалось в комментариях, скорее всего, здесь могут помочь сторонние инструменты. В Windows нет ничего, что позволяло бы вам делать это из коробки.

Если бы мне пришлось делать это самому, я бы сделал что-то вроде этого:

Напишите небольшой инструмент для отслеживания файлов. Это будет использовать объект FileSystemWatcher. На NTFS-дисках изменение отслеживаемого файла автоматически запускает событие.

Код для события просто скопирует файл в другое место, которое находится под контролем источника (скажем, Git), и запустит фиксацию и, возможно, отправку на удаленный сервер.

Используя это, вы можете увидеть, что именно изменено в файле.

Кроме того, вы можете включить аудит Windows для файлов, чтобы увидеть, кто внес изменения.

Я бы не писал этот инструмент в PowerShell, а как службу Windows, которая работает в фоновом режиме и отслеживает изменения в реальном времени.

0
ответ дан 3 December 2019 в 14:11

Теги

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