|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Обработка логов |
|
CMD/BAT - [решено] Обработка логов
|
Новый участник Сообщения: 4 |
Профиль | Отправить PM | Цитировать Добрый день!
Помогите написать батник который будет обрабатывать логи программы. Имеется программа которая ежедневно создает новые лог файл In 21.10.2011.log и Out 21.10.2011.log Нужно написать батник который будет искать в логе с сегодняшней датой слово error или not connect и если нашел всю эту строку копировать в новый файл sendmail с добавлением перед копируемой строкой еще адрес support@ |
|
Отправлено: 15:36, 21-10-2011 |
Ветеран Сообщения: 1758
|
hvorost,
Попробуй. Если нет спецсимволоа, то все должно работать |
Последний раз редактировалось Foreigner, 21-10-2011 в 16:55. Отправлено: 16:45, 21-10-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать А как еще в этот батник добавить, чтобы он создавал файл sendmail если ходя бы один файл не найден?
|
Отправлено: 11:47, 23-10-2011 | #3 |
Ветеран Сообщения: 1758
|
Цитата hvorost:
@echo off setlocal for /f %%i in ('date /t') do set "file=%%i.log" for %%i in (in out) do ( if not exist "%%i %file%" 1>>sendmail echo "%%i %file%" not found for /f "tokens=*" %%j in ('findstr /i "\<error\>" "%%i %file%"') do 1>>sendmail echo support@%%j for /f "tokens=*" %%j in ('findstr /i "\<not.connect\>" "%%i %file%"') do 1>>sendmail echo support@%%j ) |
|
Отправлено: 12:03, 23-10-2011 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Спасибо за отличный пример, у меня схожая проблема, но я так и не смог разобраться в выложенном батнике...проблема следующая, есть программа, каждый час она создает новый лог с именем 88.151.108.95_4567-ASUSK-12011102613.log, где 13 в конце-это час, необходимо в логе искать данные, начинающиеся после символа '>' и заканчивающиеся перед символом '<', в случае, если данные начинаются со слова 'ASUSK', пропускать их, а если начинаются с какой-либо цифры, копировать их в файл с таким же именем, как и лог, но с разрешением dat. Заранее благодарен! eMail andry-i@mail.ru
|
|
Отправлено: 12:57, 26-10-2011 | #5 |
Ветеран Сообщения: 1758
|
Imodem174,
Не совсем понял на счет времени в названии лога (в твоем примере 13). Для чего они? Нужно как-то обрабатывать исходя из времени? В остальном, попробуй такой вариант: |
Отправлено: 15:53, 26-10-2011 | #6 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Спасибо, сейчас попробую...каждый час программа создает новый файл лога, таким образом лог, созданный с 13 до 14 часов дня называется 88.151.108.95_4567-ASUSK-12011102613.log, лог с 14 до 15 - 88.151.108.95_4567-ASUSK-12011102614.log, с 18 до 19 - 88.151.108.95_4567-ASUSK-12011102618.log. В результате работы батника в папке с логами должны появиться файлы с расширением dat, соответствующие файлам логам и сформированные по вышеизложенным правилам.
|
Отправлено: 17:12, 26-10-2011 | #7 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать батник работает, но только не циклично, то есть он действительно создает файл с расширением dat и копирует в него данные, но только первый пакет, то есть данные которые находятся в начале файла между > и < следующие он уже не копирует(...привожу пример
данные в логе... <20111026060113.562>95,29787 95,29787 95,29787 95,29787 95,29787 86,23417 86,23417 86,23417 86,23417 <20111026060126.375>ASUSK-1 PmpStat1 = A000 PmpStat2 = 4000 FCFault1 = 00 FCFault2 = 00 FCAlarm = 00 FCLimit = 00 Runtime = 3155.0min MSW = 1F37 <20111026060158.218>100,32037 100,32037 100,32037 100,32037 100,32037 99,30582 99,30582 99,30582 <20111026065709.203>28,18000 28,18000 13,19350 13,19350 13,19350 13,19350 <20111026065722.046>ASUSK-1 PmpStat2 = 4000 FCFault1 = 00 FCFault2 = 00 FCAlarm = 00 FCLimit = 00 Runtime = 3211.0min MSW = 1F37 <20111026065753.437>43,20022 43,20022 43,20022 в итоге должен получиться файл с расширением dat с названием от лог файла и следующим содержанием... 95,29787 95,29787 95,29787 95,29787 95,29787 86,23417 86,23417 86,23417 86,23417 100,32037 100,32037 100,32037 100,32037 100,32037 99,30582 99,30582 99,30582 28,18000 28,18000 13,19350 13,19350 13,19350 13,19350 43,20022 43,20022 43,20022 |
Отправлено: 18:58, 26-10-2011 | #8 |
Ветеран Сообщения: 1758
|
Imodem174, Я просто думал, что "> данные <" это одна строка в логе. Может проще найти все строки вида 99,99999?
|
Отправлено: 19:41, 26-10-2011 | #9 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Спасибо, на этот раз все работает, только почему-то он пропускает и слова типа ASUSK-1 и UNKNOWNOK...но это как выяснилось на программу, для которой нужны выходные файлы dat не влияет, поэтому можно сказать, что результат положительный!Еще раз спасибо. Хочется так же научиться писать батники и разбираться в этом языке, може посоветуете литературу?
|
Отправлено: 13:35, 27-10-2011 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Просмотр логов! | Kobzar | Microsoft Windows NT/2000/2003 | 4 | 31-03-2010 09:49 | |
Интернет - Анализатор логов IIS | Artur88 | Программное обеспечение Windows | 0 | 25-09-2009 12:20 | |
V. 5.5/2000/2003 - Добавление логов в базу | Butunin Klim | Microsoft Exchange Server | 3 | 08-05-2009 09:47 | |
MSFT SQL Server - Уменьшение логов | __sa__nya | Программирование и базы данных | 27 | 22-10-2008 15:15 | |
FreeBSD - Ротация логов | Аlchemist | Общий по FreeBSD | 5 | 18-07-2008 16:11 |
|