Создадим парсер, который будет из нужного конфига делать чистую болванку какого-нибудь софта, без комментариев и прочего ненужного.
Для примера будем работать с файлом php.ini и приведем его в юзер-френдли вид.
#!/bin/bash
sep=$2
while IFS= read -r var
do
[[ $var =~ ^$sep.* ]] || [[ ! $var =~ ' ' ]] && continue
echo "$var" >> $1.tpl
done < $1
Запускаем так:
./script.sh php.ini ";"
Передаем 2 параметра. Первый — имя файла-конфига, который будем читать и парсить. Второй — символ, которым комментируются строки в этом файле.
В нашем случае комментарии в файле идут после символа «;». Обращаем внимание, что второй параметр передаем в кавычках. Если передать напрямую, то оболочка не поймёт что от нее хотят и выпадет в panic.
Разбираем скрипт:
Присваиваем переменной sep, символ, который передали вторым параметром $2. У нас это символ «;».
Далее идет цикл, который построчно читает файл php.ini переданный в первом параметре $1 при запуске скрипта — можно передать любой файл.
IFS — разделяет строку с использованием символа в качестве значения
Логика цикла:
Если первый символ равен символу «;», который уже лежит в переменной sep ИЛИ первый символ равен пустой строке, ТО передаем управление команде continue, которая проигнорирует запись в output файл. И так по кругу, пока не закончится файл.
Команда continue пропускает оставшиеся команды внутри тела цикла для текущей итерации и передает управление программой к следующей итерации цикла.
ВО ВСЕХ ДРУГИХ СЛУЧАЯХ, происходит запись в output файл, в котором будут содержаться только необходимые для работы параметры.
На выходе получится 2х килобайтный файл php.ini.tpl, без комментариев и прочего мусора.
Теперь можно сделать шаблон для ansible/puppet/chef.
В скрипте будут использованы простые регулярки.
$var =~ ^$sep.*
^ - соответствует началу текстовой строки
$sep - символ с помощью которого комментируют строки
.* - оставшийся кусок строки
#гайд
Для примера будем работать с файлом php.ini и приведем его в юзер-френдли вид.
#!/bin/bash
sep=$2
while IFS= read -r var
do
[[ $var =~ ^$sep.* ]] || [[ ! $var =~ ' ' ]] && continue
echo "$var" >> $1.tpl
done < $1
Запускаем так:
./script.sh php.ini ";"
Передаем 2 параметра. Первый — имя файла-конфига, который будем читать и парсить. Второй — символ, которым комментируются строки в этом файле.
В нашем случае комментарии в файле идут после символа «;». Обращаем внимание, что второй параметр передаем в кавычках. Если передать напрямую, то оболочка не поймёт что от нее хотят и выпадет в panic.
Разбираем скрипт:
Присваиваем переменной sep, символ, который передали вторым параметром $2. У нас это символ «;».
Далее идет цикл, который построчно читает файл php.ini переданный в первом параметре $1 при запуске скрипта — можно передать любой файл.
IFS — разделяет строку с использованием символа в качестве значения
Логика цикла:
Если первый символ равен символу «;», который уже лежит в переменной sep ИЛИ первый символ равен пустой строке, ТО передаем управление команде continue, которая проигнорирует запись в output файл. И так по кругу, пока не закончится файл.
Команда continue пропускает оставшиеся команды внутри тела цикла для текущей итерации и передает управление программой к следующей итерации цикла.
ВО ВСЕХ ДРУГИХ СЛУЧАЯХ, происходит запись в output файл, в котором будут содержаться только необходимые для работы параметры.
На выходе получится 2х килобайтный файл php.ini.tpl, без комментариев и прочего мусора.
Теперь можно сделать шаблон для ansible/puppet/chef.
В скрипте будут использованы простые регулярки.
$var =~ ^$sep.*
^ - соответствует началу текстовой строки
$sep - символ с помощью которого комментируют строки
.* - оставшийся кусок строки
#гайд
🥰31👍25❤14👏10🔥8
🤿🥽📟 TerraVision — это CLI-инструмент, который преобразует код Terraform в Professional Cloud Architecture Diagrams и решает проблему поддержания в актуальном состоянии документов в облачных проектах.
Terravision работает на стороне клиента без какой-либо зависимости от Terraform или доступа к облачной среде, чтобы динамически анализировать созданные ресурсы и переменные и автоматически генерировать визуальное представление вашей архитектуры. Terravision разработан как инструмент «Docs as Code» (DaC), который может быть включен в конвейер CI / CD для обновления архитектурных схем после этапов конвейера сборки / тестирования / релиза. В настоящее время он поддерживает AWS, а вскоре Google и Azure cloud.
Подробнее
#софт
Terravision работает на стороне клиента без какой-либо зависимости от Terraform или доступа к облачной среде, чтобы динамически анализировать созданные ресурсы и переменные и автоматически генерировать визуальное представление вашей архитектуры. Terravision разработан как инструмент «Docs as Code» (DaC), который может быть включен в конвейер CI / CD для обновления архитектурных схем после этапов конвейера сборки / тестирования / релиза. В настоящее время он поддерживает AWS, а вскоре Google и Azure cloud.
Подробнее
#софт
❤7👍3
🚜🚛 blendOS — комбайн Ubuntu, Fedora и Arch Linux в одной системе
Операционная система blendOS 23.01 основана на Arch и GNOME на Wayland позволяет использовать приложения из других популярных ОС.
В blendOS можно использовать менеджеры пакетов из Arch Linux (pacman), из Fedora — это dnf, а из Ubuntu взяли apt, реализовав это все на контейнерах Distrobox/Podman. При первом запуске пакетных менеджеров Fedora или Ubuntu соответствующие контейнеры создаются автоматически и не требуют дополнительных действий.
Вся красота становится доступна при полноценной установке ОС, а еще, разрабы реализовали поддержку изолированных приложений Flatpak.
Изучить
#новость
Операционная система blendOS 23.01 основана на Arch и GNOME на Wayland позволяет использовать приложения из других популярных ОС.
В blendOS можно использовать менеджеры пакетов из Arch Linux (pacman), из Fedora — это dnf, а из Ubuntu взяли apt, реализовав это все на контейнерах Distrobox/Podman. При первом запуске пакетных менеджеров Fedora или Ubuntu соответствующие контейнеры создаются автоматически и не требуют дополнительных действий.
Вся красота становится доступна при полноценной установке ОС, а еще, разрабы реализовали поддержку изолированных приложений Flatpak.
Изучить
#новость
👍9❤3😍1
Разберем #дайджест из 8 инструментов для мониторинга и управления производительностью своей сетевой инфраструктуры.
🔺 ManageEngine OpManager. Обеспечивает глубокое понимание сетевых устройств, таких как маршрутизаторы, коммутаторы, брандмауэры, беспроводные устройства, соединения WAN, физические и виртуальные серверы, блоки хранения и всю сквозную инфраструктуру.
🔺 Auvik. Облачное ПО предлагает функции сетевого мониторинга, управления ИТ-активами, анализа сетевого трафика, простого мониторинга и устранения неполадок, управления распределенными сайтами и централизованной автоматизации.
🔺 PRTG. Инструмент может контролировать с помощью датчиков сетевые устройства, аппаратное обеспечение, приложения, базы данных, центры обработки данных, узлы виртуализации, серверы SharePoint. Может работать с доступом SNMP для подключения и мониторинга маршрутизаторов, коммутаторов и брандмауэров.
🔺 Nagios. Обеспечивает видимость критически важных сетевых компонентов в режиме реального времени, а также строит карту сети. Можно отслеживать сетевые узлы, службы, протоколы и производительность приложений, обеспечивая выявление и решение проблем на раннем этапе.
🔺 LogicMonitor. Облачная платформа для мониторинга инфраструктуры, сети, серверов, БД, облака, AIOps, а также анализа журналов, производительности приложений (APM) и т.д.
🔺 Zabbix. Бесплатный и опенсорсный инструмент работает как с опросом, так и с перехватом, при этом все отчеты, статистика и параметры конфигурации доступны через веб-интерфейс. Он также может использовать агенты для мониторинга сетевых узлов, где это применимо.
🔺 LibreNMS. Система мониторинга сети с открытым исходным кодом, основана на PHP, NGINX, MySQL / MariaDB. Работает на Linux. Предлагает автоматическое обнаружение сети, настраиваемые оповещения, доступ к API, биллинговую систему, автоматические обновления, распределенный опрос и мобильные приложения.
🔺 Datadog. Обеспечивает сквозную визуализацию производительности сети, производительность прикладного уровня и работоспособность сетевых компонентов. Прост в установке и использовании, имеет удобный интерфейс и предлагает быстрые запросы к журналам.
🔺 ManageEngine OpManager. Обеспечивает глубокое понимание сетевых устройств, таких как маршрутизаторы, коммутаторы, брандмауэры, беспроводные устройства, соединения WAN, физические и виртуальные серверы, блоки хранения и всю сквозную инфраструктуру.
🔺 Auvik. Облачное ПО предлагает функции сетевого мониторинга, управления ИТ-активами, анализа сетевого трафика, простого мониторинга и устранения неполадок, управления распределенными сайтами и централизованной автоматизации.
🔺 PRTG. Инструмент может контролировать с помощью датчиков сетевые устройства, аппаратное обеспечение, приложения, базы данных, центры обработки данных, узлы виртуализации, серверы SharePoint. Может работать с доступом SNMP для подключения и мониторинга маршрутизаторов, коммутаторов и брандмауэров.
🔺 Nagios. Обеспечивает видимость критически важных сетевых компонентов в режиме реального времени, а также строит карту сети. Можно отслеживать сетевые узлы, службы, протоколы и производительность приложений, обеспечивая выявление и решение проблем на раннем этапе.
🔺 LogicMonitor. Облачная платформа для мониторинга инфраструктуры, сети, серверов, БД, облака, AIOps, а также анализа журналов, производительности приложений (APM) и т.д.
🔺 Zabbix. Бесплатный и опенсорсный инструмент работает как с опросом, так и с перехватом, при этом все отчеты, статистика и параметры конфигурации доступны через веб-интерфейс. Он также может использовать агенты для мониторинга сетевых узлов, где это применимо.
🔺 LibreNMS. Система мониторинга сети с открытым исходным кодом, основана на PHP, NGINX, MySQL / MariaDB. Работает на Linux. Предлагает автоматическое обнаружение сети, настраиваемые оповещения, доступ к API, биллинговую систему, автоматические обновления, распределенный опрос и мобильные приложения.
🔺 Datadog. Обеспечивает сквозную визуализацию производительности сети, производительность прикладного уровня и работоспособность сетевых компонентов. Прост в установке и использовании, имеет удобный интерфейс и предлагает быстрые запросы к журналам.
❤44🥰17🔥10👏9👍6
troubleshooting-kubernetes.en_en.v3 (1).pdf
789.6 KB
👀🤲 Наглядное руководство по устранению неполадок в развертывании Kubernetes
Вот вам схемка, которая поможет вам дефектовать и отдебажить ваши развертывания в Kubernetes.
Разбор очень подробный, с кодом, разъяснениями и комментариями.
Вот вам схемка, которая поможет вам дефектовать и отдебажить ваши развертывания в Kubernetes.
Разбор очень подробный, с кодом, разъяснениями и комментариями.
❤11🔥4
👮♂️👮♂️ 3 октября пройдет вебинар DevSecOps: организация безопасной разработки на уровне процессов. Начало в 11:00.
На вебинаре будет обсуждаться, как создавать продукты, которые будут соответствовать требованиям безопасности, как автоматизировать разработку и доставку продукта там, где зависимости и условия меняются ежедневно.
Темы дискуссии:
👉 Что сегодня вкладывается в понятие DevSecOps
👉 Автоматизация тестирования безопасности на каждом этапе процесса разработки
👉 Автоматизация реакции на инциденты, стабилизация процесса функционирования приложения
👉 Governance и Compliance: как построить безопасный процесс разработки и соответствовать требованиям
👉 Облачные инструменты организации безопасной разработки на уровне процессов
Мероприятие будет полезно разработчикам и тимлидам команд разработки, DevOps и DevSecOps, руководителям и специалистам по информационной безопасности, техническим и ИТ-директорам.
Регистрация тут
На вебинаре будет обсуждаться, как создавать продукты, которые будут соответствовать требованиям безопасности, как автоматизировать разработку и доставку продукта там, где зависимости и условия меняются ежедневно.
Темы дискуссии:
👉 Что сегодня вкладывается в понятие DevSecOps
👉 Автоматизация тестирования безопасности на каждом этапе процесса разработки
👉 Автоматизация реакции на инциденты, стабилизация процесса функционирования приложения
👉 Governance и Compliance: как построить безопасный процесс разработки и соответствовать требованиям
👉 Облачные инструменты организации безопасной разработки на уровне процессов
Мероприятие будет полезно разработчикам и тимлидам команд разработки, DevOps и DevSecOps, руководителям и специалистам по информационной безопасности, техническим и ИТ-директорам.
Регистрация тут
❤5👍3
GoReplay — это опенсорсный инструмент мониторинга сети, который может записывать ваш трафик в реальном времени и использовать его для отслеживания, нагрузочного тестирования, мониторинга и детального анализа.
Установка
Загрузите последнюю версию бинарника и соберите
Как оно работает
Самый простейший вариант: sudo ./gor --input-raw :8000 --output-stdout который действует как tcpdump. Если у вас уже есть тестовая среда, вы можете сделать так: sudo ./gor --input-raw :8000 --output-http http://staging.env
Дополнительная информация: FAQ, Troubleshooting, Issues
#гайд
Установка
Загрузите последнюю версию бинарника и соберите
Как оно работает
Самый простейший вариант: sudo ./gor --input-raw :8000 --output-stdout который действует как tcpdump. Если у вас уже есть тестовая среда, вы можете сделать так: sudo ./gor --input-raw :8000 --output-http http://staging.env
Дополнительная информация: FAQ, Troubleshooting, Issues
#гайд
👍6❤3
#вопросыссобеседования
Чему будет равно a?
a=5; true | { true && a=10; }
Ответ: а = 5. Потому что каждая команда конвейера исполняется в отдельном SubShell
efusion@cannabis:~$ a=5; true | { true && a=10; echo $a; }
10
efusion@cannabis:~$ echo $a
5
Чему будет равно a?
a=5; true | { true && a=10; }
❤10🌚7
This media is not supported in your browser
VIEW IN TELEGRAM
Когда вас ДДОСят — вот самый правильный вариант решения проблемы 💪💪
👍12❤3😁3
#дайджест бесплатных сертификационных курсов
🔵 Основы программирования для Linux. Курс нацелен на изучение основ программирования в операционной сиcтеме Linux. Он затрагивает базовый инструментарий и все основные компоненты: управление процессами, межпроцессные взаимодействия, сетевые возможности.
🔵 GIT. Программа поможет разобраться в трехэтапном рабочем процессе в GIT (системе контроля версий, или VCS) и настроить GIT в своей системе. Также научитесь создавать ветки и отслеживать файлы, а также создавать репозиторий в GIT, GitHub.
🔵 Основы Docker. В этом курсе вы начнете с основ: создания и запуска ваших первых контейнеров Docker. К концу курса получите краткое представление о запуске контейнеров в рабочей среде и о том, как решать проблемы расширенной оркестровки, такие как высокая доступность, обнаружение служб и согласование.
🔵 Microsoft Azure Essentials. Этот онлайн-курс расскажет о различных моделях доставки и ролях Azure. Вы узнаете о различных доступных службах Azure и тщательно изучите компоненты Azure. Кроме того, вы также получите информацию о службах Azure в различных регионах и получите подробную информацию о регионах Azure и менеджере ресурсов.
🔵 Специализация Python Scripting for DevOps. Научитесь разрабатывать и развертывать программное обеспечение с использованием Python. Эта специализация даст вам основы программирования, включая знания и навыки, необходимые для карьеры в области разработки программного обеспечения, информационных технологий и науки о данных.
🔵 Introduction to Cloud. Вы также узнаете о различных моделях облачных сервисов (IaaS, PaaS, SaaS) и моделях развертывания (публичное облако, частное облако, гибридное облако), ключевых компонентах облачной архитектуры (виртуализация, виртуальные машины, хранилища, сети, контейнеры) и новых облачных тенденциях (гибридное мультиоблачное, бессерверное, микросервисы, Cloud Native, модернизация приложений).
🔵 Основы программирования для Linux. Курс нацелен на изучение основ программирования в операционной сиcтеме Linux. Он затрагивает базовый инструментарий и все основные компоненты: управление процессами, межпроцессные взаимодействия, сетевые возможности.
🔵 GIT. Программа поможет разобраться в трехэтапном рабочем процессе в GIT (системе контроля версий, или VCS) и настроить GIT в своей системе. Также научитесь создавать ветки и отслеживать файлы, а также создавать репозиторий в GIT, GitHub.
🔵 Основы Docker. В этом курсе вы начнете с основ: создания и запуска ваших первых контейнеров Docker. К концу курса получите краткое представление о запуске контейнеров в рабочей среде и о том, как решать проблемы расширенной оркестровки, такие как высокая доступность, обнаружение служб и согласование.
🔵 Microsoft Azure Essentials. Этот онлайн-курс расскажет о различных моделях доставки и ролях Azure. Вы узнаете о различных доступных службах Azure и тщательно изучите компоненты Azure. Кроме того, вы также получите информацию о службах Azure в различных регионах и получите подробную информацию о регионах Azure и менеджере ресурсов.
🔵 Специализация Python Scripting for DevOps. Научитесь разрабатывать и развертывать программное обеспечение с использованием Python. Эта специализация даст вам основы программирования, включая знания и навыки, необходимые для карьеры в области разработки программного обеспечения, информационных технологий и науки о данных.
🔵 Introduction to Cloud. Вы также узнаете о различных моделях облачных сервисов (IaaS, PaaS, SaaS) и моделях развертывания (публичное облако, частное облако, гибридное облако), ключевых компонентах облачной архитектуры (виртуализация, виртуальные машины, хранилища, сети, контейнеры) и новых облачных тенденциях (гибридное мультиоблачное, бессерверное, микросервисы, Cloud Native, модернизация приложений).
🥰47👍36🔥24👏23🤩22
🔥😎🤯 Развертывание non-deployable сервисов на ArgoCD и Kustomize, управляя пограничными состояниями
Условие примера, приведенного автором, требовало, чтобы была сохранена структура каталогов для сотен репозиториев при переходе от kubectl к подходу ArgoCD.
В каждом репозитории есть Configmap-ы в соответствии со стандартизированным внутренним шаблоном, которые позволяют наследовать их на уровне всей команды, где у нескольких приложений может быть, совместно используемые конфиги.
Ничего нового — в Spring Boot есть встроенный механизм, который склеивает все конфигурационные файлы вместе, но в Python, Javascript и других ЯП все не так просто. Такая функция поддерживается в Helm — можно объединить несколько файлов, которые объединятся и будут переданы вместе в шаблоны.
Проблема
ArgoCD не позволяет синхронизировать ресурсы с одинаковым именем — нет способа выбрать, какой ресурс имеет более высокий приоритет.
Что же делать?
Kustomize можно настроить с помощью плагинов-генераторов — это скрипты или бинарники, запускаемые в контексте каталога, и в результате возвращают ресурсы Kubernetes в формате YAML.
Далее автор объединит пользовательскую логику в приложение Go, импортирует необходимые библиотеки, скомпилирует ее и выпустит в artifactory, например Nexus или JFrog.
Подробное продолжение тут
#туториал
Условие примера, приведенного автором, требовало, чтобы была сохранена структура каталогов для сотен репозиториев при переходе от kubectl к подходу ArgoCD.
В каждом репозитории есть Configmap-ы в соответствии со стандартизированным внутренним шаблоном, которые позволяют наследовать их на уровне всей команды, где у нескольких приложений может быть, совместно используемые конфиги.
Ничего нового — в Spring Boot есть встроенный механизм, который склеивает все конфигурационные файлы вместе, но в Python, Javascript и других ЯП все не так просто. Такая функция поддерживается в Helm — можно объединить несколько файлов, которые объединятся и будут переданы вместе в шаблоны.
Проблема
ArgoCD не позволяет синхронизировать ресурсы с одинаковым именем — нет способа выбрать, какой ресурс имеет более высокий приоритет.
Что же делать?
Kustomize можно настроить с помощью плагинов-генераторов — это скрипты или бинарники, запускаемые в контексте каталога, и в результате возвращают ресурсы Kubernetes в формате YAML.
Далее автор объединит пользовательскую логику в приложение Go, импортирует необходимые библиотеки, скомпилирует ее и выпустит в artifactory, например Nexus или JFrog.
Подробное продолжение тут
#туториал
❤4🔥4
✍️ Библиотека программиста» находится в поиске переводчика и автора оригинальных статей
Тематика
● DevOps
Объем
● от 7 до 15 тыс. знаков без учета кода.
● 3-4 статьи в месяц.
Оплата
● 4к руб. за статью.
● перевод — 250 руб. за 1000 символов без учета кода.
● работаем с самозанятыми, ИП.
Статья публикуется на сайте proglib.io, в группе ВК (425к подписчиков), на канале «Библиотека программиста» (77к подписчиков) и в «Библиотеке devops’а» (6к подписчиков).
➡️ Заполнить анкету ⬅️
Тематика
● DevOps
Объем
● от 7 до 15 тыс. знаков без учета кода.
● 3-4 статьи в месяц.
Оплата
● 4к руб. за статью.
● перевод — 250 руб. за 1000 символов без учета кода.
● работаем с самозанятыми, ИП.
Статья публикуется на сайте proglib.io, в группе ВК (425к подписчиков), на канале «Библиотека программиста» (77к подписчиков) и в «Библиотеке devops’а» (6к подписчиков).
➡️ Заполнить анкету ⬅️
❤5👍3
🧑🏫🧑🏫🧑🏫 Что такое NOC-команда, и какие 5 KPI на нее вешать для улучшения аптайма вашей платформы
Network Operations Center — это команда, которая занимается 24/7 мониторингом системы и алертинга, и их первой линией поддержки. Команда понимает как делать базовый дебаг алертов и варнингов. Команда отвечает за полный цикл инцидент-менеджмента: то есть оркестрацию процесса фикса этого инцидента, и артефактами после того как все случилось.
Как обычно с любым процессом, всплывают роли, артефакты и события.
Роли:
🔹 NOC-команда, которая мониторит;
🔹 Incident Commander — это Engineering Manager, который ответственен за валидацию дебага и исправлением инцидента;
🔹 Incident Team — дежурящие инженеры.
Артефакты:
🔹 Root Cause Analysis (RCA) — пост-мортем (ниже будет);
🔹 Runbook — источник знаний по каждой метрике и алерту, как они могут влиять на пользователей и систему, а также как их дебажить и эскалировать.
События:
🔹 Post-Mortem — в котором вы анализируете и пишете Root Cause Analysis документ;
🔹 Incident — когда все горит и очень опасно.
К примеру, у вас есть у вас дашборд с критическими системными метриками SaaS-платформы в Grafana и команда мониторит этот дашборд. На каждый чарт в этом дашборде есть некие показатели и паттерны поведения, которые команда отслеживает. Все эти правила лежат в Runbook (справочнике). Если что-то упало — нужно смотреть что это значит, и определять можно ли это NOC-команде подебажить (вдруг ночью упала пиковая нагрузка), пофиксить (рестарт сервера), или эскалировать саппорту или инженерам.
Подробнее здесь
#обучалка
Network Operations Center — это команда, которая занимается 24/7 мониторингом системы и алертинга, и их первой линией поддержки. Команда понимает как делать базовый дебаг алертов и варнингов. Команда отвечает за полный цикл инцидент-менеджмента: то есть оркестрацию процесса фикса этого инцидента, и артефактами после того как все случилось.
Как обычно с любым процессом, всплывают роли, артефакты и события.
Роли:
🔹 NOC-команда, которая мониторит;
🔹 Incident Commander — это Engineering Manager, который ответственен за валидацию дебага и исправлением инцидента;
🔹 Incident Team — дежурящие инженеры.
Артефакты:
🔹 Root Cause Analysis (RCA) — пост-мортем (ниже будет);
🔹 Runbook — источник знаний по каждой метрике и алерту, как они могут влиять на пользователей и систему, а также как их дебажить и эскалировать.
События:
🔹 Post-Mortem — в котором вы анализируете и пишете Root Cause Analysis документ;
🔹 Incident — когда все горит и очень опасно.
К примеру, у вас есть у вас дашборд с критическими системными метриками SaaS-платформы в Grafana и команда мониторит этот дашборд. На каждый чарт в этом дашборде есть некие показатели и паттерны поведения, которые команда отслеживает. Все эти правила лежат в Runbook (справочнике). Если что-то упало — нужно смотреть что это значит, и определять можно ли это NOC-команде подебажить (вдруг ночью упала пиковая нагрузка), пофиксить (рестарт сервера), или эскалировать саппорту или инженерам.
Подробнее здесь
#обучалка
❤9👍4
Находитесь в поиске нормальной вакансии?
Вы уже подумали за вас и у нас есть канал вам в помощь.
Сохраняйте, чтобы не потерять
Вы уже подумали за вас и у нас есть канал вам в помощь.
Сохраняйте, чтобы не потерять
❤4🔥2
#туториал
Нужно найти какой-то файл?
Нет, не find!
🔎 Утилита locate используется для поиска файлов, расположенных на машине пользователя или на сервере, опираясь на собственную БД.
Обновление БД происходит автоматически, +- раз в сутки или командой updatedb.
locate txt
Ищем все файлы, имена которых содержат «txt». Опа, меньше чем за секунду команда нашла все подходящие файлы, а find потратил бы гораздо больше времени.
locate '*txt' — Ищем файлы, которые оканчиваются на «txt»
Посчитаем общее количество файлов, которые нашлись: locate -ic '*txt'
(-i — не смотрим на регистр, -с — вывести общее количество найденных файлов)
Углубимся немного и заюзаем strace.
В папке tmp создадим пустой файл: > hello.txt
locate *txt
Ничего не вывел 🤔
Мы вызываем внешнюю команду locate, которую вызывает интерпретатор. И тут всплывает подстановка имен файлов, то есть Globbing.
🧑🎓 После того, как интерпретатор обнаружил символ «*», интерпретатор попытался сделать подстановку Globbing. При вызове команды locate она получила в качестве аргументов, результат этих подстановок. Запускаем:
strace -e execve locate *txt
Получаем:
execve("/usr/bin/locate", ["locate", "hello.txt"], 0x7ffe242252d8 /* 27 vars */) = 0
Опция e и аргумент execve сообщают strace, что отслеживаются только системные вызовы execve.
execve() выполняет программу, заданную параметром filename
Возвращаемся к выводу от strace и видим, что locate получила в качестве аргумента hello.txt
И теперь locate будет искать файлы именно по этому шаблону, а не по тому, что мы ожидали, когда писали *txt. Поэтому ничего не вывелось, когда запустили locate *txt
Чтобы этого не происходило ⚠️ всегда используйте кавычки для ожидаемого результата.
locate '*txt'
Нужно найти какой-то файл?
Нет, не find!
🔎 Утилита locate используется для поиска файлов, расположенных на машине пользователя или на сервере, опираясь на собственную БД.
Обновление БД происходит автоматически, +- раз в сутки или командой updatedb.
locate txt
Ищем все файлы, имена которых содержат «txt». Опа, меньше чем за секунду команда нашла все подходящие файлы, а find потратил бы гораздо больше времени.
locate '*txt' — Ищем файлы, которые оканчиваются на «txt»
Посчитаем общее количество файлов, которые нашлись: locate -ic '*txt'
(-i — не смотрим на регистр, -с — вывести общее количество найденных файлов)
Углубимся немного и заюзаем strace.
В папке tmp создадим пустой файл: > hello.txt
locate *txt
Ничего не вывел 🤔
Мы вызываем внешнюю команду locate, которую вызывает интерпретатор. И тут всплывает подстановка имен файлов, то есть Globbing.
🧑🎓 После того, как интерпретатор обнаружил символ «*», интерпретатор попытался сделать подстановку Globbing. При вызове команды locate она получила в качестве аргументов, результат этих подстановок. Запускаем:
strace -e execve locate *txt
Получаем:
execve("/usr/bin/locate", ["locate", "hello.txt"], 0x7ffe242252d8 /* 27 vars */) = 0
Опция e и аргумент execve сообщают strace, что отслеживаются только системные вызовы execve.
execve() выполняет программу, заданную параметром filename
Возвращаемся к выводу от strace и видим, что locate получила в качестве аргумента hello.txt
И теперь locate будет искать файлы именно по этому шаблону, а не по тому, что мы ожидали, когда писали *txt. Поэтому ничего не вывелось, когда запустили locate *txt
Чтобы этого не происходило ⚠️ всегда используйте кавычки для ожидаемого результата.
locate '*txt'
👍11❤4
🧑🎓😎 Еще одна серия с мероприятия OFFZONE 2023.
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
Деобфускация и анализ клиентского JavaScript‑кода для обнаружения DOM‑based XSS
Основная цель доклада — описание нового, разработанного докладчиком, автоматизированного метода анализа JavaScript‑кода, использующего статический и динамический анализ, а также сравнение результатов его работы с существующими автоматизированными сканерами веб‑уязвимостей
Смотреть
Здесь собираются безопасники, разработчики, инженеры, исследователи, преподаватели и студенты из десятков стран мира. В центре внимания — только хардкорный технический контент по кибербезопасности.
Деобфускация и анализ клиентского JavaScript‑кода для обнаружения DOM‑based XSS
Основная цель доклада — описание нового, разработанного докладчиком, автоматизированного метода анализа JavaScript‑кода, использующего статический и динамический анализ, а также сравнение результатов его работы с существующими автоматизированными сканерами веб‑уязвимостей
Смотреть
👍5❤4
HyperDX — помогает инженерам быстрее понять, почему прерывается продакшн, с помощью централизованных журналов, метрик, трассировок и исключений в одном месте. Крутая опенсорсная альтернатива Datadog и New Relic, удобная для разработчиков.
Что включено
🕵️ End to end корреляция от сеанса браузера к журналам и трассировкам всего за несколько кликов
🔥 Высокая производительность благодаря Clickhouse
🔍 Интуитивно понятный полнотекстовый поиск и синтаксис поиска свойств
🤖 Автоматическая кластеризация шаблонов событий
📈 Панель мониторинга событий без сложного языка запросов
🔔 Настройка оповещений
🔭 Нативная Open Telemetry
Вы можете начать с развертывания полного стека с помощью Docker Compose:
docker compose up -d
После этого можно перейти на http://localhost:8080 чтобы получить доступ к UI HyperDX.
Что включено
🕵️ End to end корреляция от сеанса браузера к журналам и трассировкам всего за несколько кликов
🔥 Высокая производительность благодаря Clickhouse
🔍 Интуитивно понятный полнотекстовый поиск и синтаксис поиска свойств
🤖 Автоматическая кластеризация шаблонов событий
📈 Панель мониторинга событий без сложного языка запросов
🔔 Настройка оповещений
🔭 Нативная Open Telemetry
Вы можете начать с развертывания полного стека с помощью Docker Compose:
docker compose up -d
После этого можно перейти на http://localhost:8080 чтобы получить доступ к UI HyperDX.
❤10