Photo by Alfons Morales on Unsplash

Good afternoon colleague!

The history of the creation of this post is very interesting, it all started with the fact that I planned to write a little about the PyYAML library and how we domesticated it, but something went wrong, and all this resulted in the creation of a utility pyRegistryStore

Let’s go…

Starting…

Any CI / CD automation has reference books, registries, test environments, analyzers, source code control systems, and this is all controlled by the orchestrator.

Our small group prepares and tests images of virtual machines + development of Ansible roles for installing the necessary software according to the…


Photo by Sincerely Media on Unsplash

Good afternoon, casual reader.

For one project, it was required to get the value of a variable from an ini file.

And it seems like the solution is simple, a one-line script like:

grep dbname db.conf | awk -F '=' '{ print $2 }'

But what if there are several values in different sections? Then a one-line script will not work anymore.

Search for a solution for linux gave no results :(, although maybe I’m just lazy and have not looked through all the search results.

The decision was made quickly, we take Python and the configparser package. Result ini-file.


Photo by Vincent Botta on Unsplash

Добрый день, коллеги!

В данной статье я хотел бы рассказать и показать как проводить низкоуровневый анализ производительности и работы блочных устройств в Linux.

Для работы на потребуется утилита blktrace, установка в CentOS 7 выглядит следующим образом:

[root@centos7 ~]# yum install -y blktrace

Первое что нам нужно сделать это, запустить запись дампа, всех событий отправленных на устройство.

[root@centos7 blktrace]# blktrace -d /dev/sda -o sda

В данной команде мы указываем через ключ -d наше устройство, и через ключ -o файл который будет содержать наш дамп.

Файл дампа бинарный, и что бы вывести содержимое в человекочитаемом виде запустим утилиту blkparse(которая входит в пакет…


https://unsplash.com/photos/wh-RPfR_3_M?utm_source=unsplash&utm_medium=referral&utm_content=creditShareLink
Photo by Arian Darvishi on Unsplash

Коллеги, добрый день!

Перейдя а должность руководителя группы, стал более часто проводить собеседования. И проблема с кадрами, в регионе, дает о себе знать. Выход один — растить специалиста!

И главный вопрос становится, а готов ли он?! Решено было сделать тестовое задание, которое отправляли потенциальным коллегам.

Для проверки было создан образ виртуальной машины, специально поломанный. Восстановление данной VM ответит на следующие вопросы:

  • Сброс пароля root
  • Работа с fstab
  • Iptables|firewalld
  • Маршрутизация linux
  • Сервисы systemd
  • LVM
  • Расширенные атрибуты файлов
  • Восстановление работы PostgreSQL
  • Восстановление работы bash скрипта.

Ну и ссылки на задание :)

Дальше планирую создать еще одну ВМ, для более продвинутых администраторов, так что ждем еще одну статью.


Приветствую тебя мой дорогой друг!

Как говорится “назвался компьютерщиком, полезай в ИТ отдел”.

Преамбула

Попался мне как то на глаза скрипт, для сбора всех соединений по хосту, ну что идея хорошая, запилили в забикс, ждем… 5 минут… 10 минут… Нет значений.

Ошибка поразила, скрипт не смог уложится в отведенные, забиксом, 30 секунд.

Тут по идее должна быть картинка типа: “30 секунд, Карл!!!”.

Не буду описывать свое удивление когда я прочитал скрипт, вкратце это кровь из глаз, куча матерных слов и истеричный смех, т.к. использовалось куча внешних утилит, это все парсилось, накладывались regexp и т.д. и т.п. …


Коллеги, добрый день!

Хотелось бы сегодня поделится опытом решения проблемы, за 10 лет практики это было единожды, на восстановление было потрачено неприлично много времени. Ну не буду томить поехали.

В один момент времени пропал доступ по SSH на сервер СУБД, т.е. как пропал, авторизация и аутентификация проходит, но консоль не отдает. Подключение через iLo — результат тот же.

[svutkin@db01 ~]$ ssh 192.168.176.252 -l root –vvv

debug1: Authentication succeeded (keyboard-interactive).
Authenticated to 192.168.176.252 ([10.108.176.252]:22).
debug2: shell request accepted on channel 0

* ********************************************************************
* Welcome to ******************* running RedHat 7.4
* Puppet hostgroup: Base/Oracle/RDBMS
* AD OU: OU=DWH,OU=DB,OU=Linux,OU=UNIX,OU=Servers,DC=********,DC=ru
* This system supported by IT-Platform-OS-Unix@*********.
* Run ‘sudo -l’ to view…

Доброго времени суток, мой дорогой друг!

Работая с большими потоками данных и их анализом, сталкиваешься с проблемой определения принадлежности файла, его источника, т.к. 99% от всех потоков генерируют бездушные электрические машины.

Порой бывает сложно определить откуда пришел файл sasder345asd.txt или 123_HDR-Tas.csv(на самом деле это просто набор букв, в большинстве случаев имена файлов имеют структурированное имя, но это все равно тяжело читать человеку).

Изначально решение было небольшой набор bash скриптов для элементарного переименования файлов, все изменилось когда количество потоков резко увеличилось. И появилась более глубокая иерархия каталогов выгрузки, например:
было

vendor/filename

стало

region/point_id/data_name/filename

и использование скриптов уже не помогало.

На помощь как всегда пришел python, за несколько часов был подготовлен скрипт который справлялся с данной функцией на ура.

Пройдя несколько итераций исправлений, доработок и 2х лет работы в проде, я готов предоставить данную утилиту общественности, пользуйтесь и наслаждайтесь

pySpoolerRenamer


Дело было давно, с чем связано что я не нашел для генты плагина мониторинга температуры в портах уже не вспомню.

По этому написал свой. Пользуйтесь.


Доброго времени суток, случайный читатель!

И так о чем хочу рассказать сегодня, в недрах одного небольшого отдела, одной небольшой компании родился небольшой скрипт — и назвали этот скрипт pyRsyncBackup.

Для чего?! Задача была следующая:

  • Резервное копирование конфигурационных файлов.
  • Инициатор должен быть из вне. Т.к. NAT.
  • Не до всех узлов есть прямой доступ.

Сначала был создан прототип, который выполнял все эти функции, работал по крону и все были довольны, пока количество серверов не перевалило за overdohuya. + выход нового софта добавлял работы по переконфигурации бекапов.
От сюда вылезли еще требования:

  • Автообнаружение модулей резервного копирования.
  • Работа в режиме демона.

Что и было…


В хозяйстве имеется 4 принтера Brother DCP-7065DN, захотелось мониторить состояние картриджей, и столкнулся со следующими проблемами:

  1. Плагин для Nagios check_snmp_printer не подходит, возвращает не верное значение, хотя для мониторинга состояния барабана он отлично подходит.
  2. Не нашел в сети какой OID для состояния картриджа, для этого долбаного принтера.

Написал в тех. поддержку Brother… И неожиданно для себя они ответили и сообщили мне OID для моего принтера.
Открыл любимый VIM и написал bash-скрипт для Nagios. И теперь делюсь им check_snmp_brother.

Кладем данный скрипт в папку с плагинами Nagios, выставляем нужные права, и ставим флаг на выполнение.

Настройка в Nagios

define command{  
command_name check_snmp_brother
command_line $USER1$/check_snmp_brother $ARG1$ $HOSTADDRESS$ $ARG2$ $ARG3$
}
define service{
use default-service
host_name PRINTER
service_description Toner Black
check_command check_snmp_brother!public!20!10
}

Скрипт корректно работает для модели Brother DCP-7065DN. Если будет работать для других моделей, буду рад если вы мне сообщите.

Sergey Utkin — Technical Expert

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store