|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|
Скрипт для формирования отчётов о НЕ регламентной перезагрузке06.03.2019, 14:50. Показов 4323. Ответов 49
Приветствую.
Камрады, нужна ваша помощь в написании скрипта. Дано: Есть некоторое кол-во ПК, на которых крутятся PowerShell-скрипты. У данных ПК есть регламентные перезагрузки, которые выполняются автоматически. Периодически с ПК бывают сбои – перезагрузки ПК. PowerShell-скрипты фиксируют все перезагрузки, а в отдельный лог-файл записывают только НЕ регламентные перезагрузки (произошедшие по причинам сбоя в работе ПК). Далее лог-файлы с НЕ регламентными перезагрузками отправляется на головной ПК и анализируются. Задача: Упростить анализ поступающих логов, путём сбора информации из логов и её помещения в несколько Excel-отчётов за: -день -неделю -месяц Решение данной задачи я вижу путём создания PowerShell-скрипта, который будет анализировать логи и создавать по собранной информации несколько отчётов в Excel документы. У каждого лог-файла, с каждого из ПК есть уникальное для данного ПК имя, вида - P133-Reboot-ReportLOG-Attention.txt Где P133 – означает номер ПК, что и является уникальным идентификатором среди всех остальных отчётов. Как выглядят лог-файлы с НЕ регламентными перезагрузками (пример):
################# ############################# ######################################## ######### ~~~~~~~~ Новые сутки - 02-03-2019-00:23:47 ~~~~~~~~ ######################################## ######### ############################# ################# ################# ############################# ######################################## ######### ~~~~~~~~ Новые сутки - 03-03-2019-00:23:34 ~~~~~~~~ ######################################## ######### ############################# ################# 03-03-2019-09:52:03 - ПК включен - НЕ регламентная перезагрузка. 03-03-2019-19:22:48 - ПК включен - НЕ регламентная перезагрузка. ################# ############################# ######################################## ######### ~~~~~~~~ Новые сутки - 04-03-2019-00:23:41 ~~~~~~~~ ######################################## ######### ############################# ################# ################# ############################# ######################################## ######### ~~~~~~~~ Новые сутки - 05-03-2019-00:23:35 ~~~~~~~~ ######################################## ######### ############################# ################# Как я вижу работу данного PowerShell-скрипта. Версия скрипта – «Сбор данных и формирование или обновление отчёта за сегодняшний + 7 прошедших дней» Скрипт анализирует то, что находится между строчками «Новые сутки - ДАТА» Если между строчками ничего нет, то двигается далее. Если между строчками есть строка «ДАТА-ВРЕМЯ - ПК включен - НЕ регламентная перезагрузка.» скрипт делает следующее: Кликните здесь для просмотра всего текста
1. Проверяет существует ли по определенному пути Excel-документ с названием, например, «Отчёт о перезагрузке».
2. Если документа нет, то скрипт его создаёт, если же документ есть, то двигается далее. 3. Скрипт проверяет существует ли в Excel-документе лист с названием, в котором указана сегодняшняя дата + проверяет есть ли в Excel-документе листы за последние 7 дней, в которых в качестве названия указаны даты этих листов. 4. Если листов, указанных в предыдущем пункте в Excel-документе нет, то скрипт их (листы) создаёт, если же есть то двигается далее. 5. Скрипт создаёт таблицу по образцу и вносит собранные из отчётов данные в таблицу по шаблону. 6. Если листы есть, то скрипт лишь обновляет данные в таблицах. По аналогии необходимо, чтобы скрипт создавал отчёты в отдельных файлах за неделю и месяц. Решение: Как я понимаю начать нужно с парсинга отчётов. Собственно я остановился на этом))
0
|
|
| 06.03.2019, 14:50 | |
|
Ответы с готовыми решениями:
49
Посоветуйте библиотеку для формирования отчетов в *.pdf, *.doc, *.xls Возможность формирования нескольких отчетов, в зависимости от выделенных строк таблицы |
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|
| 06.03.2019, 14:56 [ТС] | |
|
На скриншотах образцов - красные клетки означают, что была НЕ регламентная перезагрузка, цифра внутри клетки обозначает кол-во перезагрузок.
0
|
|
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||
| 06.03.2019, 15:06 | |||
0
|
|||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|
| 06.03.2019, 20:38 [ТС] | |
|
Благодарю за ответ. Я не совсем понимаю что мне даст переход на csv?
Анализировать файл, пускай он будет в формате csv и шаблон заполнения отчёта будет другой, в любом случае нужно или я не прав? Опять же как желаемую таблицу построить? Добавлено через 10 минут Не по теме: Очень мало времени отведено на редактирование ответа. Редактирую последнюю строчку предыдущего сообщения: Опять же как собрать всю инфу в один файл и желаемую таблицу построить?
0
|
|
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||||||||||||||
| 06.03.2019, 21:12 | |||||||||||||||||||
|
Подобные сsv-отчёты со всех ПК очень легко слить в одну csv-таблицу: RebootReport.csv Кликните здесь для просмотра всего текста
а далее выбираете данные любым разумным образом:
1
|
|||||||||||||||||||
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||||||||||
| 07.03.2019, 11:30 | ||||||||||||
|
+ ещё один пример, делаем аналог отчёта с вашей второй картинки:
RebootReport.csv Кликните здесь для просмотра всего текста
1
|
||||||||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
||||||||||||||||||||||||||
| 08.03.2019, 19:29 [ТС] | ||||||||||||||||||||||||||
|
В своих скриптах запись в лог файл я выполнял так:
В итоге нашёл команду, которая сохраняет в csv. Сделал так:
Кстати, в процессе натолкнулся на тему от 2016 года, там автор допустил такую же досадную ошибку в процессе экспорта отчёта, видимо популярна ошибка у новичков - Экспорт результатов в CSV. Так что кодом вашим не воспользуюсь пока не решу проблему с экспортом. Добавлено через 1 час 28 минут Методом тыка удалось нарыть рабочий код:
0
|
||||||||||||||||||||||||||
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||||||||||||
| 09.03.2019, 11:39 | ||||||||||||||
![]()
1
|
||||||||||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||||||||||||||||||||||||||||
| 09.03.2019, 13:38 [ТС] | |||||||||||||||||||||||||||||||
|
KDE777,
Сбор инфы в один файл. Входные данные. 3 файла:
p166RebootReport.csv
Результат работы скрипта:
Скрипт переносит данные не из всех файлов (1), часть данных удалена (2), скрипт добавляет кавычки (3), которые я полагаю в дальнейшем помешают работе других скриптов или нет? В ваш скрипт я добавил лишь путь, что может быть не так? Плюс ко всему, верно ли я понимаю, что для корректной работы следующего скрипта (который уже анализирует данные) в начале файла csv должна быть строка CompName ate;Time;RebootReason и эту строку должен добавлять скрипт, который объединяет лог-файлы?
0
|
|||||||||||||||||||||||||||||||
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||
| 09.03.2019, 14:22 | |||||||
|
Для проверки:
0
|
|||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||||||||||||||
| 09.03.2019, 20:09 [ТС] | |||||||||||||||||
. Моя невнимательность.Я использую в работе весь код, что вы предоставили, полезные штуки. Скажите, пожалуйста, ещё один момент. Как можно в отчёт добавить период дат, за который показаны данные? Т.е. не просто в экран консоли вывести период, а записать этот период в отчёт (в идеале первой строкой). Что-то типа этого:
Вообщем, в итоге сделал так:
Кликните здесь для просмотра всего текста
Можно в одном месте менять даты и для формирования отчёта и для вывода дат.
0
|
|||||||||||||||||
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||||||
| 11.03.2019, 12:19 | ||||||||
![]() Кликните здесь для просмотра всего текста
1
|
||||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
||
| 11.03.2019, 12:37 [ТС] | ||
0
|
||
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||
| 11.03.2019, 12:44 | |||||||
Например, IP хоста отправляющего отчёты, добавляется в анонимный receive connector. А ещё Send-MailMessage может использовать Windows Integrated Authentication...Если же нужен логин/пароль, то это тоже не проблема:
1
|
|||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
||||||
| 11.03.2019, 13:17 [ТС] | ||||||
|
KDE777,
Собрал конструкцию. Всё работает. Ошибок нет. Огромное Вам спасибо. Кликните здесь для просмотра всего текста
В планах сделать такой же отчёт за месяц и подведение итогов по данной теме (опишу как реализовано у меня), возможно, кому-либо пригодится данный инструмент.
0
|
||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|
| 12.03.2019, 14:43 [ТС] | |
|
KDE777,
Возможно ли ещё как-то зафиксировать дни недели, чтобы они не бегали по всей таблице?)
0
|
|
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||
| 12.03.2019, 15:12 | |||||||
Добавлено через 2 минуты Иначе, я предположил, что этот скрипт будет запускаться из планировщика раз в неделю и тогда порядок дней недели будет постоянным.
0
|
|||||||
|
1886 / 1108 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|
| 12.03.2019, 16:15 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||||||||
| 19.03.2019, 14:03 [ТС] | |||||||||||
|
v_svitere, KDE777, благодарю.
Скрипт работает отлично. Фактически на этом можно было бы и остановиться. Но)) Скрипт запускаю вручную (знаю, что можно добавить в планировщик) (точнее запускаю exe-файл предварительно скомпилированный с помощью PowerGui Script Editor). Каждую неделю, чтобы отобразилась инфа за прошлую неделю или за текущую я указываю в скрипте в переменную $ReportEndDate дату понедельника на этой неделе или следующей.
при запуске одного - приходит отчёт за прошлую неделю. при запуске другого - приходит отчёт за текущую неделю. Можно ли это как-то реализовать? Добавлено через 5 минут Хочется безумно автоматизации. )
0
|
|||||||||||
| 19.03.2019, 14:03 | |
|
Помогаю со студенческими работами здесь
20
Как заставить jquery-скрипт работать при перезагрузке контента AJAX-ом? Скрипт не реагирует после формирования блока При обновлении конфигурации не все формы регламентной отчетности обновились Пустой список отчетов в справочнике Варианты Отчетов в УТ 11 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|