Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Погрузитесь в логическую головоломку: откручивайте болты из планок на самых сложных уровнях! Вы не только расслабитесь в конце сложного дня, но еще и натренируете свой мозг, решая увлекательные задачки. Справитесь с ролью опытного мастера? Попробуйте свои силы в режиме онлайн бесплатно и без регистрации!

Головоломка. Болты и Гайки

Казуальные, Гиперказуальные, Головоломки

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Linux + Shell

С этим тегом используют

Windows IT Программирование Ubuntu IT юмор Компьютер Программист Заправка Нефть Политика Новости Санкции Юмор Все
10 постов сначала свежее
12
0sennijLis
0sennijLis
2 месяца назад
Лига Сисадминов

Повышение производительности с использованием LVM Striping⁠⁠

В области управления хранилищами приоритетом является достижение оптимальной производительности дисков. Стремление к более быстрому доступу к данным, уменьшению задержек и повышению количества операций ввода-вывода (I/O) и пропускной способности привело к использованию передовых техник. Одной из таких является LVM Striping (полосование), мощная функция менеджера логических томов (LVM), которая существенно повышает производительность дисковых томов.

Линейный (Linear) LVM против LVM Striping:

1.1 — Линейный LVM:

Линейная конфигурация, являющаяся стандартным подходом для LVM, подразумевает последовательное добавление нескольких физических томов (дисков) в группу томов (Volume Group). Данные последовательно записываются на эти диски: сначала заполняется один диск, затем следующий, и так далее.

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Хотя линейный LVM прост и удобен для расширения хранилищ, он не полностью раскрывает потенциал параллельной обработки и увеличения общей пропускной способности.

1.2 — LVM Striping (Полосование):

Напротив, LVM Striping представляет собой более продвинутый подход, при котором данные распределяются одновременно по нескольким физическим томам. Это создает логический том, охватывающий сразу несколько дисков, что позволяет осуществлять параллельные операции чтения и записи. В результате значительно повышается производительность, что делает LVM Striping особенно привлекательным для систем с высоким уровнем нагрузки ввода-вывода.

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Процесс создания полос:

  1. Создание полос:

  • Данные разделяются на сегменты («полосы»).

  • Каждая полоса записывается на отдельный диск в составе логического тома.

2. Параллельная запись полос:

  • Полосы записываются параллельно на несколько физических томов (дисков).

3. Равномерное распределение:

  • Полосы равномерно распределены по дискам, предотвращая появление узкого места (bottleneck).

4. Увеличение IOPS и пропускной способности:

  • Благодаря параллельной записи полос LVM Striping существенно увеличивает общую производительность и пропускную способность логического тома.

1.3 — Пример использования:

Рассмотрим пример с тремя дисками, каждый из которых обеспечивает пропускную способность 125 МБ/с:

  • При использовании LVM Striping суммарная производительность составит 375 МБ/с.

  • В случае же с линейным LVM, производительность останется равной 125 МБ/с, вне зависимости от количества добавленных дисков.

Настройка Linear LVM и Striping LVM:

В этом разделе мы создадим две группы томов (Volume Groups, VG): одну линейную, вторую — с полосованием, каждая с использованием трёх дисков. Затем создадим логические тома (Logical Volumes, LV), отформатируем и смонтируем их.

2.1 — Исходные данные:

  • Сервер: AWS EC2 instance типа m4.10xlarge

  • EBS-диски: 6 штук по 20ГБ (тип GP3, 3000 IOPS, 125MiB/s пропускная способность каждый)

  • ОС: Amazon Linux 2

Просмотр подключенных дисков:

# lsblk

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

2.2 — Создание групп томов (VG):

Создадим две группы томов:

# vgcreate vg_linear /dev/sdb /dev/sdc /dev/sdd
# vgcreate vg_striping /dev/sde /dev/sdf /dev/sdg

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

# vgs

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

2.3 — Создание линейного логического тома (Linear LVM):

# lvcreate -l 100%FREE -n lv_linear vg_linear

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Параметры:

  • -l 100%FREE — задействовать весь доступный объем VG.

  • -n lv_linear — имя логического тома.

  • vg_linear — целевая группа томов.

2.4 — Создание логического тома с полосованием (Striping LVM):

# lvcreate -l 100%FREE -i 3 -I 64k -n lv_striping vg_striping

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Параметры:

  • -l 100%FREE — задействовать весь объем VG.

  • -i 3 — количество полос (равно числу дисков).

  • -I 64k — размер полосы.

  • -n lv_striping — имя логического тома.

  • vg_striping — целевая группа томов.

2.5 — Проверка созданных LV:

Проверка линейного LV:

# lvdisplay -m /dev/vg_linear/lv_linear

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Проверка LV с полосованием:

# lvdisplay -m /dev/vg_striping/lv_striping

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Здесь мы можем увидеть различные детали наших настроек.

2.6 — Форматирование и монтирование LV:

# mkfs.xfs /dev/vg_linear/lv_linear

# mkfs.xfs /dev/vg_striping/lv_striping

# mkdir /mnt/linear

# mkdir /mnt/striping

# mount /dev/vg_linear/lv_linear /mnt/linear/

# mount /dev/vg_striping/lv_striping /mnt/striping/

# df -h

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

LV успешно смонтированы.

3 — Тестирование производительности LV (benchmark):

Для тестирования используем инструмент fio:

# yum install fio -y

3.1 — Тестирование линейного LV:

Чтобы сравнить LV, мы будем использовать файл конфигурации FIO, который поможет нам генерировать трафик на 400м:

# cat fio_config-1.fio

[global]

ioengine=libaio

runtime=60

time_based

direct=1

rw=write

size=10G

bs=512K

rate=400M

numjobs=16

[job1]

filename=/mnt/linear/testfile

Запуск тестирования с созданным конфигом:

# fio fio_config-1.fio

Одновременно с этим в отдельном терминале запустим iostat, чтобы контролировать использование дисков:

# iostat -xdmt 2

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Видим, что используется только один диск xvdb со скоростью 125 МБ/с.

Ту же картину нам демонстрирует и fio:

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Операции записи были выполнены исключительно на одном диске.

3.2 — Тестирование LV с полосованием:

Теперь снова запустим fio, но изменим параметр filename в файле конфигурации:

filename=/mnt/striping/testfile

Запускаем iostat:

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Все три диска работают параллельно, суммарная скорость равна 375 МБ/с (125 x 3).

Аналогичную картинку нам демонстрирует и fio:

Повышение производительности с использованием LVM Striping Системное администрирование, Linux, Shell, IT, Исследования, Сервер, Длиннопост

Вывод:

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

Используйте LVM Striping, чтобы раскрыть потенциал параллельной обработки данных и вывести производительность дисковой подсистемы на новый уровень.

Показать полностью 14
Системное администрирование Linux Shell IT Исследования Сервер Длиннопост
7
357
nekko
nekko
1 год назад
ДЕВОПСИНА

Лучший Linux дистрибутив для просмотра XXX контента⁠⁠

Лучший Linux дистрибутив для просмотра XXX контента IT, IT юмор, Юмор, Linux, Командная оболочка bash, Shell, DevOps, Скриншот

ИСТОЧНИК: https://t.me/bashdays/183

[моё] IT IT юмор Юмор Linux Командная оболочка bash Shell DevOps Скриншот
41
sinloehal
2 года назад
Спроси Пикабу

Регулярное выражение⁠⁠

Как выбрать "АБВ" (вместе с пробелами если они есть) используя только одно регулярное выражение, запуская ее отдельно по строкам:

  1. "АБВ". Если будет строка "гггАБВ" или "АБВггг" или "гггАБВггг", то строка не должна выбираться.

  2. "ггг АБВ"

  3. "АБВ ггг"

  4. "ггг АБВ ггг"

В 1м только сама строка без пробелов и без любых других символов. Т.е. если вокруг АБВ есть другие символы кроме пробелов то ее выбирать не надо.

В 2м пробел спереди.

в 3м пробел сзади.

в 4м пробел с обеих сторон.

Regex Linux Shell Командная оболочка bash Терминал Программирование IT Хакеры Текст
21
24
0sennijLis
0sennijLis
2 года назад
Лига Сисадминов

Как DevOps'ам изучать Shell-скриптинг?⁠⁠

Действительно хорошие и целеустремлённые DevOps-инженеры обязаны уметь писать скрипты как минимум на sh/bash. По крайней мере стремиться освоить этот навык.

Эта статья представляет из себя краткое руководство (с рядом рекомендаций, и ссылок на полезные ресурсы), которое как поможет вам решать ежедневные задачи, так и поможет давать более корректные ответы на собеседовании.

Никогда не лишним будет заметить, что в любом обучающем процессе, особенно когда дело касается самообучения, очень важно иметь терпение и обладать должной самодисциплиной, чтобы не бросить на полпути.
Это руководство именно для тех, кто хотел бы разобраться в фундаментальных процессах. Для тех кому нужно решать задачи "по-быстрому" здесь и сейчас - есть stackoverflow и google.

1.Shell-скриптинг для DevOps

Первый вопрос, которым вы возможно задаётесь. А насколько действительно важен этот навык для DevOps-инженера? Этот вопрос абсолютно нормальный как в среде новичков, так и матёрых специалистов (да-да, такое тоже встречается).

Ответ прост: Да, это важно.
Картинка ниже хорошо иллюстрирует исследование stackoverflow, где 27% респондентов ответили, что пишут на shell.

Как DevOps'ам изучать Shell-скриптинг? IT, Linux, Полезное, Программирование, Shell, DevOps, Длиннопост

Тут в догонку может прилететь второй вопрос.
Но у нас же полно различных средств автоматизации на любой вкус и под совершенно разные задачи? Может Shell всё таки того? Не нужен?
Ответ аналогичный первому: Shell всё еще жив, и всё еще очень нужен.
Да, может сейчас и не очень нужно создавать огромные портянки сценариев оболочки для автоматизации всего и вся, но для специальных задач для использования с инструментами автоматизации нам всё еще нужен Shell.

Например, если вы используете AWS user data, то весьма велика вероятность, что внутри него вы будете использовать скрипты на Shell. Другой пример, для создания образов AMI с помощью packer вы в конечном итоге будете применять Shell для конфигурации AMI. Также умение писать на баше может пригодится и при работе с системами управления конфигурацией, с контейнерами, и с многими другими системами.

Кроме того, сценарий оболочки пригодится для повторяющихся задач разработки. Например, это может быть развертывание Vagrant VM с необходимым программным обеспечением или настройка самой среды разработки.

Что наиболее важно, практическое написание сценариев и программирование становятся обязательными на предварительных собеседованиях в рамках собеседований DevOps. Так что это еще одна важная причина, по которой вам следует изучать сценарии оболочки.

2. Как начать писать на Shell?

Предварительное условия для начала - иметь опыт работы с Linux(или Unix). Следовательно прежде всего нужно убедиться, что вы комфортно себя чувствуете в командной строке Linux, и умеете работать с командами из пакета coreutils.

Если мир Linux для вас пока чужд, то стоит какое-то время потренироваться в виртуальной среде. Например развернув у себя локально абсолютно любой Linux в VirtualBox. Либо, воспользовавшись предложениями облачных провайдеров. Важно выбрать для начала широкоиспользуемый дистрибутив (ubuntu, fedora), так будет проще найти людей в сети, которым можно задать вопросы, и обсудить всплывающие проблемы. Если интересно копнуть глубже, и разобраться во внутренностях системы, то можно попробовать "продвинутые" дистрибутивы типа Arch или Gentoo (для особо упорных LFS). Но что совершенно точно не нужно, так это брать в руки всякую маргинальщину вроде KaliLinux или AstraLinux (во первых они основаны на более популярном и широко используемом дистрибутиве, а во вторых не во всяком линуксовом сообществе вас встретят с распростёртыми объятиями при упоминании таких поделок).

Если вы считаете, что достаточно хорошо умеете работать с Linux, то тогда сделайте следующее.

Создайте репозиторий на Github, создайте в нём каталог для каждого изучаемого вами аспекта, и коммитьте туда все ваши рабочие скрипты. Не имеет значения, будет репозиторий открытый или закрытый (хотя открытый обязывает более ответственно подходить к наполнению).

Заведите собственную документацию. Вы можете например оставлять в README ссылки на полезные источники. Поверьте - фиксирование информации в репозитории поможет вам сохранить знания, а также может помочь другим.

3. Какие есть бесплатные ресурсы для изучения программирования на Shell?

Вам совершенно точно не нужно платить за какие-либо расширенные курсы по изучению Shell-скриптинга, хотя на рынке есть достаточно предложений самых разных курсов для инженеров DevOps. Курсы (если они качественные) - это не плохо, и если вам комфортно обучаться в таком формате, то пожалуйста. Однако программирование на Shell - это тот навык, который вполне можно освоить самостоятельно.

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

Ссылки на сайты с интерактивными туториалами, бесплатными курсами, и pdf материалами (так как все ресурсы на английском, то тут у нас всплывает побочный квест - оттачивание навыка чтения технических текстов).

  1. Linux Shell Scripting Tutorial [Web]

  2. Free interactive shell scripting tutorials [Web]

  3. Shell Scripting tutorial [Web]

  4. Bash Guide [web]

  5. Shell Scripting Free Course [Udemy]

  6. Advanced Bash Scripting Guide [PDF]

  7. Bash Academy [Web]

  8. Bash Notes for Professionals [PDF]

  9. Bash Reference manual [PDF]

  10. The Linux command line [PDF]

4.Применение навыков Shell-скриптинга на практике.

Предположим вы уже изучили все основные концепции программирование на Shell, возможно написали несколько солидных скриптов в обучающих целях. Следующий справедливый вопрос у вас возможно будет "Ну и где мне теперь это всё применять?"

В первую очередь имеет смысл посмотреть существующие проекты автоматизации в своей компании. Особенно если компания не маленькая, и не решается одна точечная задача, то весьма вероятно, что в проектах найдётся не мало мест, где применяется Shell-скриптинг.

Если в вашей компании нет таких проектов, и вы как раз хотите заняться чем-то подобным, но не знаете с чего начать, то например можете посмотреть Git-репозитории с наиболее популярными образами контейнеров для Docker (например контейнер с Nginx).

Как DevOps'ам изучать Shell-скриптинг? IT, Linux, Полезное, Программирование, Shell, DevOps, Длиннопост

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

Не стоит конечно зацикливаться только на скриптах из контейнеров, вы можете найти скрипты во множестве других репозиториях open-source комьюнити.

5. Некоторые примеры для тренировки

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

  1. Найдите 10 самых больших файлов в системе, и перенаправьте вывод в файл.

  2. Напишите скрипт для безопасного извлечения накопителей.

  3. Напишите скрипт, отправляющий уведомление на почту.

  4. Напишите скрипт для мониторинга загрузки CPU, памяти и дисков. Перенаправьте вывод с собранными данными в виде таблицы в файл, и уведомление в stdout если один их них превышает определённый порог.

  5. Напишите сценарий для поиска созданных файлов и их размеров. Он должен принимать количество дней в качестве входных данных. Или формат от и до даты в качестве входных данных.

  6. Напишите сценарий для автоматизации процесса создания новых учетных записей пользователей на сервере Linux и настройки их разрешений и доступа по SSH.

  7. Напишите скрипт для создания списка пользователей, вошедших в систему по дате, и запишите его в выходной файл.

  8. Напишите скрипт для рекурсивного копирования файлов на удалённую машину.

  9. Напишите скрипт который отображает количество неудачных попыток входа в систему по IP-адресу

  10. Создайте скрипт, который анализирует системный журнал, и пересылает в выходной файл выборку событий по конкретной службе, с отметками времени (в человекочитаемом формате).

  11. Напишите скрипт, автоматизируйщий процесс архивирования системного журнала в каталог с резервными копиями, с последующей очисткой текущего журнала.

  12. Напишите сценарий, проверяющий доступность списка URL, и отправляющий уведомление на почту, если какой-то из них не доступен.

  13. Напишите скрипт для автоматизации процесса обновления нескольких серверов.

  14. Напишите функцию, которая находит и убивает все зомби процессы в системе (задание со звёздочкой)

Не забывайте использовать в скриптах изученные понятия:

  1. Переменные.

  2. Подстановка команд, назначение результата переменным.

  3. Использование cut, awk, и grep.

  4. Перенаправление stdin/stdout/stderr.

  5. Обработка условий с помощью if/elif/else.

  6. Работу с оператором выбора (switch).

  7. Циклы for/do-while)

  8. Коды завершения (exit codes)

6.Вопросы по навыкам написания сценариев на собеседовании DevOps инженера.

Вопросы инженерам разнятся от компании к компании.

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

Ниже приведены несколько примеров вопросов на собеседовании инженера DevOps.

  1. Можете ли вы объяснить, как сценарии оболочки вписываются в более широкий рабочий процесс DevOps?

  2. Зачем нужны сценарии оболочки, если есть другие инструменты автоматизации?

  3. В решении каких задач вы предпочтете использовать Shell, а не Python/Golang?

  4. Как провести статический анализ скрипта Shell?

  5. Как вы можете гарантировать, что сценарий оболочки не содержит ошибок в CI/CD pipeline?

  6. Как вы будете обрабатывать ошибки и исключения в своих сценариях?

  7. Напишите простой скрипт, который принимает в качестве аргументов имена двух файлов, объединяет их и записывает вывод в третий.

  8. Найдите дублирующиеся строки в файле, и замените их другой строкой.

  9. Найдите все уникальные IP адреса в логе, и запишите их в отдельный файл

  10. Как бы вы отлаживали сценарий оболочки, который работает неправильно?

  11. Какая разница между циклами for и while?

7. Заключение

Разумеется этот пост не претендует на исчерпывающее рассмотрение темы (очень уж она большая, чтобы уместиться в один пост), но надеюсь, это краткое руководство по изучению сценариев Shell будет как минимум небесполезным для вас.

Неприятная ссылка на канал сообщества в телеграме

Показать полностью 2
IT Linux Полезное Программирование Shell DevOps Длиннопост
22
4
Mackedonsky
Mackedonsky
2 года назад
IT-юмор

Remove⁠⁠

Хотел узнать у гугла, умеет ли команда rm в логические операторы, а в итоге узнал, что бтс топ

Remove IT, Linux, Shell, Командная оболочка bash
Показать полностью 1
[моё] IT Linux Shell Командная оболочка bash
10
26
VladimirChursin
VladimirChursin
2 года назад
Лига Сисадминов
Серия ИТ

Ansible. Network-scripts. RHEL8⁠⁠

Ansible. Network-scripts. RHEL8 Разработка, Программирование, IT, Perl, Linux, Shell, Командная оболочка bash

Приветствую!


Практически завершил работу над ansible-хелпером "conf_int_ipv4_via_network_scripts" (репозиторий "ansible_helpers"), но "практически" означает, что совокупность скриптов и сценариев уже можно использовать в работе.


Краткая инструкция.

1. Клонируем репозиторий - git clone "https://github.com/vladimir-chursin000/ansible_helpers".

2. Переходим в директорию ".../ansible_helpers/conf_int_ipv4_via_network_scripts/rhel8_based".

3. Заполняем inventory-файл "conf_network_scripts_hosts" (не забываем про ssh-ключи на удалённых хостах).

4. Заполняем основной файл конфигурации "config" (такой вот незамысловатый нейминг). Каждая линия - настройка конкретного сетевого интерфейса на конкретном хосте. Присутствует файл со всеми возможными примерами конфигурации - "config_examples".

5. Правим дополнительные файлы конфигурации, расположенные в директории "additional_configs":

а) dns_settings (настройки DNS). По умолчанию содержит только доменные сервера Google (8.8.8.8, 8.8.4.4) в качестве общих NS (nameservers/сервера имён) для всех хостов из inventory-файла. Также присутствует возможность для отдельных хостов выставить уникальные сервера имён;

б) config_del_not_configured_ifcfg. Файл конфигурации, определяющий действия в отношении сетевых интерфейсов, отсутствующих в основном файле конфигурации (который "config"). Для inventory-хостов, вписанных в этот конфиг, действует правило - отключать сетевые интерфейсы (и удалять соответствующие ifcfg-файлы), не сконфигурированные в файле "config".

6. Запускаем скрипт "install_network_scripts_and_configure_network.sh" (если "network-scripts" не установлен) или "apply_immediately_ifcfg.sh".


Что произойдёт после запуска (если опустить часть с установкой "network-scripts"), если кратко:

1. Бэкап ifcfg-файлов с сохранением в директорию (и поддиректории) ".../playbooks/ifcfg_backup_from_remote": "history" - для хранения, "now" - для дальнейшего сравнения с ifcfg-файлами, генерация которых (на основе config-а) произойдёт на следующем этапе.

2. Запуск perl-скрипта "generate_dynamic_ifcfg.pl", которые создаёт:

а) ifcfg-файлы для каждого inventory-хоста (на основе основного конфига). Размещаются в ".../playbooks/dyn_ifcfg_playbooks/dyn_ifcfg";

б) файлы resolv-conf (на основе "dns_settings"). Директория ".../playbooks/dyn_ifcfg_playbooks/dyn_resolv_conf";

в) task-файл для каждого inventory-хоста, содержащий ansible-инструкции для реконфигурации сети (директория ".../playbooks/dyn_ifcfg_playbooks"). Важный момент - если сгенерированные ifcfg-файлы не отличаются от текущих (скопированных на первом этапе исполнения), то task-файл будет содержать только ansible-код для взаимодействия с "resolv.conf".

3. Исполнение сформированных task-файлов.


P.S. №1. Осталась самая малость - реализовать механизм временного применения сетевых настроек (о чём писал ранее).


P.S. №2. Надеюсь, кому-то результат моих изысканий поможет сэкономить время.

Показать полностью
[моё] Разработка Программирование IT Perl Linux Shell Командная оболочка bash
28
RedBall
RedBall
5 лет назад
GNU/Linux

Инструмент для отладки PHP в консоли?⁠⁠

Доброго всем дня!

Часто сижу на сервере в консоли дебиан 10, без GUI.

Отлаживаю скрипты. В основном php.

Использую для этого mc.

Инструмент для отладки PHP в консоли? Debian, Shell, Консоли, Linux, Develop, Debug

Но. Хотелось бы удобства.

Может видел кто консольный редактор с подсветкой синтаксиса, авто подстановкой, прочим сахаром?

[моё] Debian Shell Консоли Linux Develop Debug
73
29
nxxxx
nxxxx
6 лет назад
GNU/Linux

Ежедневный срез/отчет Zabbix по текщим проблемам к примеру для тимлидов.⁠⁠

Ежедневный срез/отчет Zabbix по текщим проблемам к примеру для тимлидов. Linux, Scripting, Shell, SQL, Customization, Zabbix, Длиннопост

Доброго дня коллеги. Как то я озаботился получением утреннего дайджеста, а именно среза текущих проблем на момент времени. Не добившись от мидов ясности в глах и азарта впальцах я наковырял сие (иногда используя кусочки чужуго кода. Публикую - вдруг кому понравится.

Работает с базой Zabbix-3.4

zabbix-daily-report.sh


#!/bin/bash

#Working with Zabbix 3.4 Database

SENDWITH0=0

URL=http://zabbix.slocal

MAIL="***@*** ***@*** #emails with spaces here#"

MAILFROM=zabbix@zabbix.slocal

SMTP="your.smtp.server"

SMTPUSER="******"

SMTPPASS="******"

SQLHOST=$(sed -e '/^DBHost/!d; s/.*=\(.*\)/\1/' /etc/zabbix/zabbix_server.conf)

SQLUSER=$(sed -e '/^DBUser/!d; s/.*=\(.*\)/\1/' /etc/zabbix/zabbix_server.conf)

SQLPASS=$(sed -e '/^DBPassword/!d; s/.*=\(.*\)/\1/' /etc/zabbix/zabbix_server.conf)

SQL='SELECT host, t.description, FROM_UNIXTIME(e.clock) as time, t.value, IF(e.acknowledged=1,"Yes","No") as acknowledged, IF(e.acknowledged=1,a.message,"") as message

FROM triggers t

INNER JOIN functions f ON ( f.triggerid = t.triggerid )

INNER JOIN items i ON ( i.itemid = f.itemid )

INNER JOIN hosts h ON ( i.hostid = h.hostid )

INNER JOIN events e ON ( e.objectid = t.triggerid )

LEFT JOIN acknowledges a ON ( a.eventid = e.eventid )

WHERE (e.eventid DIV 100000000000000)

IN (0)

AND e.object = 0

AND (t.value=1 OR (t.value =0 AND unix_timestamp(now()) - t.lastchange <60))

AND h.status = 0

AND i.status = 0

AND t.status = 0

AND e.eventid = (SELECT max(eventid)

FROM events e

WHERE (e.eventid DIV 100000000000000)

IN (0)

AND e.object = 0

AND (t.value=1 OR (t.value =0 AND unix_timestamp(now()) - t.lastchange <60))

AND h.status = 0

AND i.status = 0

AND t.status = 0

AND e.objectid = t.triggerid

)

GROUP BY host, f.triggerid

ORDER BY t.lastchange DESC;'

echo ${SQL}|mysql -h ${SQLHOST} -u ${SQLUSER} -p${SQLPASS} zabbix -t | sed 's/$/\\n/g; /acknowledged/d; 1d;' > /dev/shm/$(basename $0)

body="This is an automatically generated fokin mail message sent by a script running on zabbix.slocal."

subject="Zabbix daily report by $(date): We have "

num=0

if [ -s /dev/shm/$(basename $0) ]; then

num=$(( $(cat /dev/shm/$(basename $0)|wc -l) -2))

body="${body}

The following triggers are currently active:


`echo -e $(cat /dev/shm/$(basename $0))`"


else


body="${body}


All quiet chef!"


fi


body="${body}


Log in to Zabbix at ${URL}


Regards,

Zabbix Server"


subject="${subject} $num fokin problems."


if [ ${num} -eq 0 ] && [ ${SENDWITH0} -eq 0 ]; then

exit 0;

else

for i in $MAIL

do

echo -e "${body}" | sendemail -s $SMTP -xu $SMTPUSER -xp $SMTPPASS -f $MAILFROM -t $i -u ${subject} > /dev/null 2>&1

done

fi

Показать полностью
[моё] Linux Scripting Shell SQL Customization Zabbix Длиннопост
14
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии