среда, 19 января 2011 г.

Побороть рутину поможет сборщик логов

nanorobots
Все мы сталкиваемся на работе с рутинными задачами. И сборка логов, перед тем как запостить баг, одна из них. Не знаю как у вас, но у нас на проекте для этого нужно вырубить приложение, а иногда и несколько приложений, находящихся на разных виртуальных машинах. Зайти в папки, где лежат логи (или другие данные), заархивировать их, скопировать все это в какую-то папку, которая доступна из джиры (у меня это папка Exchange на рабочем ПК), собрать снова все в один файл, чтобы не прикладывать несколько файлов, прикрепить к баге. И, наконец, запустить все приложения….и даже пройти авторизацию в одном, введя пароль и логин. Уф….как это долго и утомительно. Но лень двигатель прогресса.
А можно все ведь автоматизировать! Итак, что должен уметь сборщик логов:
1. Выключать приложение. Можно просто убивать процесс; :)
2. Брать из папок нужные файлы и архивировать их в единый архив;
3. Присваивать архивам понятные имена. У меня - это названия виртуальных машин + текущая дата и время;
4. Копировать архив в удобную для нас папку (откуда мы и будем прикреплять логи к баге);
5. Запускать наши приложения. Делать нужные действия с приложением (авторизация, переход на нужный экран).
Итак, вооружившись Powershell, Autoit и 7zip в качестве архиватора, я написал такой сборщик. Рутины теперь убавилось. :)
Если учесть, что у PowerShell есть возможность запускать скрипты на нескольких удаленных машинах одновременно, то становится совсем хорошо. Запускаешь скрипт только на одной машине, а он выполняет все действия на нескольких удаленных виртуальных машинах.
В планах создать целый комплекс, написанный на Powershell, который будет при нажатии на кнопку «Баг»:
1. Делать скриншоты;
2. Собирать логи;
3. Открывать новый баг в джире;
4. Прикрепрять туда скриншоты.
Мне только останется описать баг и запостить его.
Вот такой у меня теперь есть помощник.
Коллеги, если есть вопросы, задавайте, с удовольствием на них отвечу.

4 комментария:

  1. Вопрос несколько не по теме.

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

    ОтветитьУдалить
  2. Татьяна, привет.
    Конечно можно вписать и чистку логов, а так же настроить сборщик так, чтобы он собирал логи только за текущий день. И еще кучу всякий настроек в зависимости от задач.

    P.S. для удаления логов можно написать простейший батник:
    RD /S /Q "путь до папки с логами"

    ОтветитьУдалить
  3. Алексей, это очень неплохая тема для выступления на следующей конференции, не находишь? :)

    ОтветитьУдалить
  4. Алексей, привет. Спасибо за оценку, я думаю на этим :)

    ОтветитьУдалить