|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|
Скрипт для формирования отчётов о НЕ регламентной перезагрузке06.03.2019, 14:50. Показов 4926. Ответов 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 Возможность формирования нескольких отчетов, в зависимости от выделенных строк таблицы |
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||
| 19.03.2019, 14:10 | |||
|
Добавлено через 2 минуты
0
|
|||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||||||||
| 19.03.2019, 14:14 [ТС] | |||||||||||
|
v_svitere, KDE777, благодарю.
Скрипт работает отлично. Фактически на этом можно было бы и остановиться. Но)) Скрипт запускаю вручную (знаю, что можно добавить в планировщик) (точнее запускаю exe-файл предварительно скомпилированный с помощью PowerGui Script Editor). Каждую неделю, чтобы отобразилась инфа за прошлую неделю или за текущую я указываю в скрипте в переменную $ReportEndDate дату понедельника на этой неделе.
при запуске одного - приходит отчёт за прошлую неделю, без необходимости указывать в скрипте дату понедельника на этой неделе. при запуске другого - приходит отчёт за текущую неделю, без необходимости указывать в скрипте дату понедельника на следующей неделе. В данных случаях скрипт "пляшет" от даты запуска скрипта. Возможно ли это реализовать?
0
|
|||||||||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||||
| 19.03.2019, 14:22 | |||||||||
Добавлено через 4 минуты
0
|
|||||||||
|
|
||||||||||||
| 19.03.2019, 14:28 | ||||||||||||
|
StoqJets,
Вы можете в скрипт передавать аргумент, который будет участвовать в логике. То есть передаете ему параметр например "Previos" или "Now", и в зависимости от этого параметра происходит выполнение условия. Таким образом получится 1 скрипт, которые может вести себя по разному в зависимости от параметра
Не проще ли так?
0
|
||||||||||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|
| 19.03.2019, 14:32 | |
|
0
|
|
| 19.03.2019, 14:35 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||
| 20.03.2019, 03:39 [ТС] | |||||
|
Скрипт запускаю вручную. Под автоматизацией подразумевалось автоматическая подстановка нужной даты. Видимо я не ясно объяснил, что конкретно хочу реализовать. Логика следующая (без планировщика, запуск вручную): 1-ый скрипт: Если сегодня пн, вт, ср, чт, пт, сб, вс, То покажи отчёт за предыдущую неделю (с корректной расстановкой дней недели в таблице) 2-ой скрипт: Если сегодня пн, вт, ср, чт, пт, сб, вс, То покажи отчёт за эту неделю (с корректной расстановкой дней недели в таблице)
0
|
|||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||||||||
| 20.03.2019, 10:54 | |||||||||||||
Кликните здесь для просмотра всего текста
1
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||||||||
| 20.03.2019, 14:59 [ТС] | |||||||||||
|
KDE777, Великолепно!
Для тех, кто хочет поюзать данный скрипт. Выкладываю готовое решение. Скорректированное под мои запросы. 1-ый скрипт. Генерирует отчёты для обработки уже вторым скриптом. GeneratorCSV.ps1 Кликните здесь для просмотра всего текста
2-ой скрипт. Анализирует логи созданные первым скриптом. AnalizCSV.ps1 Кликните здесь для просмотра всего текста
0
|
|||||||||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||||||||||||||||||||||
| 20.03.2019, 15:18 | ||||||||||||||||||||||||
![]()
0
|
||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|||||
| 20.03.2019, 16:19 [ТС] | |||||
|
KDE777,
Мне было лень расписывать именно этот пункт, как не являющийся критичным. Нужно постараться, чтобы накосячить, к тому же я дальше расписал что да как.
Здесь закоментировал для более полного понимания читающими данный топик. В инструкции сделаны акценты на этом.
0
|
|||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||
| 20.03.2019, 16:37 | ||
|
- VS Code + PowerShell extension Всё это от создателей PS и самых актуальных версий, а не 5-ти летней давности.
1
|
||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
||
| 21.03.2019, 09:52 [ТС] | ||
|
Вообщем перехожу с PowerGui Script Editor на VS Code + PowerShell extension. Этапы перехода: Кликните здесь для просмотра всего текста
1. Качаем и устанавливаем VS Code по ссылке - https://aka.ms/win32-x64-user-stable (в процессе установки рекомендую поставить галку добавления возможности открытия файлов через VS Code в контекстное меню)
2. Запускаем VS Code. Слева вверху в поиске вбиваем "PowerShell" без кавычек. 3. Устанавливаем нажатием кнопки Install. 4. Если кому нужен русский интерфейс в программе, то в том же окне поиска вбиваем "Russian Language Pack for Visual Studio Code". У меня русский интерфейс включился после установки этого расширения и перезапуска VS Code. Вам возможно потребуется сделать доп. настройку конфигурационного файла (в пару кликов). Инструкция здесь - https://marketplace.visualstud... ge-pack-ru 5. Кракозябры вместо русских букв при открытии через VS Code своих существующих скриптов. Файл - Параметры - в поиск вбиваем "Auto guess Encoding". Напротив найденного параметра ставим галочку. У меня после этой настройки русские буквы стали корректно отображаться. Даже выглядит эта софтина круто, я уж молчу про функционал)) KDE777, благодарю вас.
0
|
||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
|
| 21.03.2019, 10:17 [ТС] | |
|
Скриншот программы.
0
|
|
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
||||
| 21.03.2019, 10:20 | ||||
|
- огромный плюс ISE в том, что эта IDE штатно уже есть в ОС, т.е. удобное создание/отладка скриптов доступно сразу из коробки. - у ISE (по умолчанию) более наглядная подсветка синтаксиса: "-ErrorAction SilentlyContinue", "-ComputerName $_", и т.п. - в VSC и ключ и его значение будут одним цветом, а в ISE нет
0
|
||||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
||
| 21.03.2019, 10:34 [ТС] | ||
|
"выделили нужный кусок или сразу всё (ctrl+A) и нажали F8" Проверил. Работает. Хоть целиком, хоть кусок кода. Кстати, это круто, что можно кусок кода проверять. Это как же облегчится написание скриптов))) Раньше создавал отдельные файлы, где и проверял функционал отдельных частей кода. Проверил сейчас, PowerGui оказывается это тоже может. Ну хоть поздно узнал, лучше чем никогда.
0
|
||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||
| 21.03.2019, 10:40 | |||
Выполнить выделенное, естественно было в PowerGui и есть в ISE/VSC...
0
|
|||
|
0 / 0 / 0
Регистрация: 15.05.2018
Сообщений: 43
|
||||||||||||||||||||||||||||
| 21.03.2019, 14:14 [ТС] | ||||||||||||||||||||||||||||
|
Данный код полностью совместим с предыдущим кодом (AnalizCSV.ps1) из моего 30-ого сообщения. Достаточно заменить блок кода отвечающего за отправку письма в конце скрипта и указать свои реквизиты к почтовому ящику. Кликните здесь для просмотра всего текста
Добавлено через 16 минут KDE777, выявил проблему со скриптом. Формирование отчёта работает не так как задумано. Покажу на примере. Кликните здесь для просмотра всего текста
Входные данные (csv-файл):
Вывод:
После обработки скриптом. За прошлую неделю. Есть проблема. Совмещаются события из прошлой и текущей недели.
0
|
||||||||||||||||||||||||||||
|
1887 / 1109 / 428
Регистрация: 22.01.2016
Сообщений: 3,050
|
|||||||||
| 21.03.2019, 15:09 | |||||||||
0
|
|||||||||
| 21.03.2019, 15:09 | |
|
Как заставить jquery-скрипт работать при перезагрузке контента AJAX-ом? Скрипт не реагирует после формирования блока При обновлении конфигурации не все формы регламентной отчетности обновились Пустой список отчетов в справочнике Варианты Отчетов в УТ 11 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|