A curated list of “Top” based monitoring tools for use in Linux and Unix terminals.
В этой статье ссылки на репозитории инструментов для мониторинга Linux.
Для мониторинга статуса процессов: htop, bpytop, btop, bashtop, atop, vtop, gtop, gotop, ytop, treetop, tiptop, pytop, mintop, ntop, below, hegemon, glances, nmon.
Для мониторинга GPU: nvtop, intel_gpu_top, radeontop, gltop.
Для мониторинга сети: iftop, sntop, jnettop, dnstop, nats-top, nettop, pingtop, iptraf-ng.
Для мониторинга дисковой подсистемы: iotop, drbdtop, nfstop, hdtop, viotop.
Для мониторинга контейнеров: ctop, ktop, kube-top.
И много других.
В этой статье ссылки на репозитории инструментов для мониторинга Linux.
Для мониторинга статуса процессов: htop, bpytop, btop, bashtop, atop, vtop, gtop, gotop, ytop, treetop, tiptop, pytop, mintop, ntop, below, hegemon, glances, nmon.
Для мониторинга GPU: nvtop, intel_gpu_top, radeontop, gltop.
Для мониторинга сети: iftop, sntop, jnettop, dnstop, nats-top, nettop, pingtop, iptraf-ng.
Для мониторинга дисковой подсистемы: iotop, drbdtop, nfstop, hdtop, viotop.
Для мониторинга контейнеров: ctop, ktop, kube-top.
И много других.
Debugging Distributed Trace Gaps
Ранее в этом году мы заметили странные пробелы примерно в 0,5% трассировок наших распределенных приложений. Эти перерывы длились до нескольких секунд и приводили к ухудшению обслуживания пользователей и почти ежедневным оповещениям в течение нескольких недель. Мы подозревали, что причина этих пробелов лежит вне кода приложения, где-то в сети или еще в слоях программного обеспечения, поверх которых работают наши приложения.
В этом цикле из 3 статей команда Teachers Pay Teachers разбирается с трассировкой вызовов внутри операционной системы.
Debugging Distributed Trace Gaps with tcpdump
Debugging Distributed Trace Gaps with ftrace
Monitoring Linux Audit
Ранее в этом году мы заметили странные пробелы примерно в 0,5% трассировок наших распределенных приложений. Эти перерывы длились до нескольких секунд и приводили к ухудшению обслуживания пользователей и почти ежедневным оповещениям в течение нескольких недель. Мы подозревали, что причина этих пробелов лежит вне кода приложения, где-то в сети или еще в слоях программного обеспечения, поверх которых работают наши приложения.
В этом цикле из 3 статей команда Teachers Pay Teachers разбирается с трассировкой вызовов внутри операционной системы.
Debugging Distributed Trace Gaps with tcpdump
Debugging Distributed Trace Gaps with ftrace
Monitoring Linux Audit
How to monitor IP changes using cron or a systemd timer
Я использую Raspberry PI в качестве NAS для своей домашней сети, а также использую WireGuard для подключения к своей домашней сети из любого места. Поэтому мне важно знать IP-адрес моей домашней сети. К сожалению, мой домашний общедоступный IP-адрес время от времени меняется. Динамический DNS — это решение, но я предпочитаю не привлекать третьих лиц, поэтому мне остается вручную проверять свой IP-адрес, смотреть, меняется ли он, и обновлять конфигурацию WireGuard на своем телефоне.
Я хотел автоматизировать ту часть, где я всегда знаю свой текущий IP-адрес, поэтому я запустил свой терминал и вот что у меня получилось. Читать дальше.
Я использую Raspberry PI в качестве NAS для своей домашней сети, а также использую WireGuard для подключения к своей домашней сети из любого места. Поэтому мне важно знать IP-адрес моей домашней сети. К сожалению, мой домашний общедоступный IP-адрес время от времени меняется. Динамический DNS — это решение, но я предпочитаю не привлекать третьих лиц, поэтому мне остается вручную проверять свой IP-адрес, смотреть, меняется ли он, и обновлять конфигурацию WireGuard на своем телефоне.
Я хотел автоматизировать ту часть, где я всегда знаю свой текущий IP-адрес, поэтому я запустил свой терминал и вот что у меня получилось. Читать дальше.
Usage notes for nc command
Несколько рекомендаций по использованию утилиты nc для диагностики проблем с сетью. Читать далее.
Несколько рекомендаций по использованию утилиты nc для диагностики проблем с сетью. Читать далее.
Structured Logging in a Shell Script with jq
Доработка скриптов для структурированного ведения логов означает, что вы можете себе помочь сократить среднее время решения проблем. Мы напишем простую функцию-оболочку вокруг jq, чтобы улучшить сообщения в логе. Читать дальше.
Доработка скриптов для структурированного ведения логов означает, что вы можете себе помочь сократить среднее время решения проблем. Мы напишем простую функцию-оболочку вокруг jq, чтобы улучшить сообщения в логе. Читать дальше.
:(){ :|: & }; :
Это простой Bash-скрипт, который сделает всё, что нужно. Или не нужно. По сути, это создание процессов, которые ничего не делают, кроме как снова создают себя. В этой статье метод борьбы с таким типом атаки при помощи конфигурации limits.conf.
Вот описание того, что происходит:
:() — This is a simple function definition, '<function-name>()'. In this case, the function name is ':'. As defined, this function accepts no parameters.
{ — Begin Function Definition.
:|: — Call the function & pipe it to the same function. Simple recursion technique.
& — Send the process to background so it cannot be killed with simple Ctrl+C.
}; — Terminate Function Definition.
: — Call the Function ':'.
Это простой Bash-скрипт, который сделает всё, что нужно. Или не нужно. По сути, это создание процессов, которые ничего не делают, кроме как снова создают себя. В этой статье метод борьбы с таким типом атаки при помощи конфигурации limits.conf.
Вот описание того, что происходит:
:() — This is a simple function definition, '<function-name>()'. In this case, the function name is ':'. As defined, this function accepts no parameters.
{ — Begin Function Definition.
:|: — Call the function & pipe it to the same function. Simple recursion technique.
& — Send the process to background so it cannot be killed with simple Ctrl+C.
}; — Terminate Function Definition.
: — Call the Function ':'.
Resource Limits in Linux | limits.conf
Продолжение вчерашней статьи о безопасности Linux. Вы узнаете какие ещё есть настройки в limits.conf. Читать дальше.
Продолжение вчерашней статьи о безопасности Linux. Вы узнаете какие ещё есть настройки в limits.conf. Читать дальше.
Курс для тех, кто отвечает «Jenkins»
Специально для тех, у кого Jenkins падает при каждом деплое, в Слёрм есть курс от Кирилла Борисова, Infrastructure Engineer технологического центра Deutsche Bank. В курсе будет много кейсов и примеров из практики спикера, которые помогут научиться работать с инструментом так, чтобы все работало стабильно и предсказуемо 😎
Старт — 6 сентября.
Здесь можно ознакомиться с подробной программой и подобрать удобный формат обучения 👉 https://slurm.club/3Pzjfx8
Специально для тех, у кого Jenkins падает при каждом деплое, в Слёрм есть курс от Кирилла Борисова, Infrastructure Engineer технологического центра Deutsche Bank. В курсе будет много кейсов и примеров из практики спикера, которые помогут научиться работать с инструментом так, чтобы все работало стабильно и предсказуемо 😎
Старт — 6 сентября.
Здесь можно ознакомиться с подробной программой и подобрать удобный формат обучения 👉 https://slurm.club/3Pzjfx8
Пособие по программированию модулей ядра Linux. Ч.1
Перед вами последняя версия пособия по программированию модулей ядра Linux, вышедшего 2 июля 2022 года. Пособие большое, поэтому материал будет разбит на серию статей. В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав лицензирование, передачу аргументов командной строки и прочие нюансы. Читать дальше.
Перед вами последняя версия пособия по программированию модулей ядра Linux, вышедшего 2 июля 2022 года. Пособие большое, поэтому материал будет разбит на серию статей. В первой части мы разберём, что такое модули ядра, рассмотрим необходимые подготовительные этапы для их создания и в завершении по традиции напишем первый простейший модуль «Hello world», попутно разобрав лицензирование, передачу аргументов командной строки и прочие нюансы. Читать дальше.
Эскалация привилегий при помощи polkit: как заполучить root-доступ в Linux, воспользовавшись семилетним багом
polkit — это системный сервис, по умолчанию устанавливаемый во многих дистрибутивах Linux. Он используется демоном systemd, поэтому в любом дистрибутиве Linux, где применяется system, также используется polkit. Автор этой статьи, входя в состав GitHub Security Lab, работает над улучшением безопасности опенсорсного софта; он ищет уязвимости и докладывает о них. Именно он однажды нашел уязвимость в polkit, позволяющую злоумышленнику увеличить его привилегии. Читать дальше.
polkit — это системный сервис, по умолчанию устанавливаемый во многих дистрибутивах Linux. Он используется демоном systemd, поэтому в любом дистрибутиве Linux, где применяется system, также используется polkit. Автор этой статьи, входя в состав GitHub Security Lab, работает над улучшением безопасности опенсорсного софта; он ищет уязвимости и докладывает о них. Именно он однажды нашел уязвимость в polkit, позволяющую злоумышленнику увеличить его привилегии. Читать дальше.
Большое количество курсов и полезного материала для системных администраторов и безопасников:
https://t.me/Social_engineering/2002
Самая редкая и актуальная литература для специалистов в области информационной безопасности:
https://t.me/S_E_Book/2664
#реклама
https://t.me/Social_engineering/2002
Самая редкая и актуальная литература для специалистов в области информационной безопасности:
https://t.me/S_E_Book/2664
#реклама
Разработка драйвера сетевого адаптера для Linux. Часть 1
В этой статье рассмотрим общую структуру сетевого адаптера, узнаем какие компоненты входят в его состав, что такое MAC и PHY, разберемся как подготовить адаптер к работе, сконфигурировать, и как в итоге получать сетевые пакеты.
Хотя при разработке драйверов необходимо использовать стандартные ядерные фреймворки, такие как clock, reset, libphy и пр., поначалу мы будем работать с адаптером напрямую через регистры состояния и управления. Это позволит нам детально разобраться с аппаратной частью. Читать дальше.
В этой статье рассмотрим общую структуру сетевого адаптера, узнаем какие компоненты входят в его состав, что такое MAC и PHY, разберемся как подготовить адаптер к работе, сконфигурировать, и как в итоге получать сетевые пакеты.
Хотя при разработке драйверов необходимо использовать стандартные ядерные фреймворки, такие как clock, reset, libphy и пр., поначалу мы будем работать с адаптером напрямую через регистры состояния и управления. Это позволит нам детально разобраться с аппаратной частью. Читать дальше.
Linux: How to rsync between two remote servers that do not communicate each other
rsync широко используется системными администраторами для синхронизации файлов между серверами. Сценарии, с которыми я сталкивался до сих пор, были простыми: «синхронизировать файлы с удаленного хоста на локальный» или «синхронизировать файлы с локального на удаленный хост».
Но сценарий, с которым мне недавно приходилось иметь дело, заключался в синхронизации файлов между двумя удаленными серверами с использованием третьего сервера между этими двумя удаленными серверами. Причиной этого было то, что между двумя удаленными серверами не было связи из-за ограничений брандмауэра, и это не могло измениться быстро или легко из-за корпоративной политики. rsync не поддерживает синхронизацию двух удаленных серверов, поэтому я начал думать об альтернативах. Читать душещипательную историю.
rsync широко используется системными администраторами для синхронизации файлов между серверами. Сценарии, с которыми я сталкивался до сих пор, были простыми: «синхронизировать файлы с удаленного хоста на локальный» или «синхронизировать файлы с локального на удаленный хост».
Но сценарий, с которым мне недавно приходилось иметь дело, заключался в синхронизации файлов между двумя удаленными серверами с использованием третьего сервера между этими двумя удаленными серверами. Причиной этого было то, что между двумя удаленными серверами не было связи из-за ограничений брандмауэра, и это не могло измениться быстро или легко из-за корпоративной политики. rsync не поддерживает синхронизацию двух удаленных серверов, поэтому я начал думать об альтернативах. Читать душещипательную историю.
Linux: How to compress data in a remote server and save them locally in one command!
Одной из наиболее распространенных задач системного администратора является сжатие некоторых файлов на удаленном сервере, а затем их перемещение на другой сервер либо для резервного копирования, либо для обработки данных. Это относительно простая операция, но она имеет два подводных камня:
⚡️ Удаленный сервер мог исчерпать место на диске во время сжатия
⚡️ Требуются дополнительные команды для загрузки и удаления сжатого файла.
Читать дальше.
Одной из наиболее распространенных задач системного администратора является сжатие некоторых файлов на удаленном сервере, а затем их перемещение на другой сервер либо для резервного копирования, либо для обработки данных. Это относительно простая операция, но она имеет два подводных камня:
⚡️ Удаленный сервер мог исчерпать место на диске во время сжатия
⚡️ Требуются дополнительные команды для загрузки и удаления сжатого файла.
Читать дальше.
Python для инженеров — курс, где не будем отвлекаться на абстрактные задачи, а займёмся тем, что действительно нужно в работе, например:
— Написать модуль управления правами для ansible,
— Внедрить commit conventions и генерировать ченджлоги из коммитов при слиянии dev-бранча с релизным.
Смотреть программу курса
В конце напишем итоговый проект, для которого можно взять рабочую задачу и получить на неё ревью.
Занять место можно со скидкой 16,99%, если подписаться на вот этот канал
— Написать модуль управления правами для ansible,
— Внедрить commit conventions и генерировать ченджлоги из коммитов при слиянии dev-бранча с релизным.
Смотреть программу курса
В конце напишем итоговый проект, для которого можно взять рабочую задачу и получить на неё ревью.
Занять место можно со скидкой 16,99%, если подписаться на вот этот канал
Как превратить пишущую машинку в терминал Linux
Пятничное. Кто не любит звук старой пишущей машинки? Я точно люблю! Вот почему я работаю над превращением своей пишущей машинки Brother AX-25 в терминал Linux.
Клавиатура машинки подключена по матрице 8x11 с помощью кабелей на 8 пинов и на 11 пинов. Когда один из пинов строки соединяется с пином столбца после нажатия клавиши, пишущая машинка обнаруживает это и печатает соответствующий символ.
Матрица клавиатуры пишущей машинки управляется двумя мультиплексорами Arduino Uno. Я использовал мультиплексоры от Amazon, но для этого подойдёт любой цифровой или аналоговый мультиплексор, если он имеет более 11 каналов. Arduino может обмануть пишущую машинку и заставить её думать, что была нажата клавиша. Для этого нужно выбрать канал на каждом мультиплексоре и соединить контакты. Читать дальше.
Пятничное. Кто не любит звук старой пишущей машинки? Я точно люблю! Вот почему я работаю над превращением своей пишущей машинки Brother AX-25 в терминал Linux.
Клавиатура машинки подключена по матрице 8x11 с помощью кабелей на 8 пинов и на 11 пинов. Когда один из пинов строки соединяется с пином столбца после нажатия клавиши, пишущая машинка обнаруживает это и печатает соответствующий символ.
Матрица клавиатуры пишущей машинки управляется двумя мультиплексорами Arduino Uno. Я использовал мультиплексоры от Amazon, но для этого подойдёт любой цифровой или аналоговый мультиплексор, если он имеет более 11 каналов. Arduino может обмануть пишущую машинку и заставить её думать, что была нажата клавиша. Для этого нужно выбрать канал на каждом мультиплексоре и соединить контакты. Читать дальше.
Memory Management in Linux
Управление памятью в Linux состоит из двух основных компонентов:
а). Первый касается совместного использования и освобождения блоков физической памяти, групп страниц и небольших блоков памяти.
б). Второй обрабатывает виртуальную память, отображаемую в памяти в адресное пространство активных процессов.
Читать дальше.
Управление памятью в Linux состоит из двух основных компонентов:
а). Первый касается совместного использования и освобождения блоков физической памяти, групп страниц и небольших блоков памяти.
б). Второй обрабатывает виртуальную память, отображаемую в памяти в адресное пространство активных процессов.
Читать дальше.
Stop using Virtual Box on Linux
..используйте Virtual Machine Manager вместо Virtual Box
Вот почему вы должны использовать Virtual Machine Manager вместо Virtual Box. Читать дальше.
..используйте Virtual Machine Manager вместо Virtual Box
Вот почему вы должны использовать Virtual Machine Manager вместо Virtual Box. Читать дальше.
Linux: how to add a filesystem to fstab the right way
Если имя устройства для хранения /dev/sdb1, это означает, что это первый раздел второго жесткого диска, но нет гарантии, что /dev/sdb1 всегда будет именован /dev/sdb1. В зависимости от порядка подключения жестких дисков к материнской плате он может меняться, а использование внешних USB-накопителей может еще более усложнить присвоение имен устройствам. Если это произойдет, ваши жесткие диски могут быть смонтированы в неправильных точках монтирования, что приведет к потере или повреждению данных.
Решение этой проблемы состоит в том, чтобы смонтировать диски, используя их метки или их UUID. Я предпочитаю использовать метки, потому что у меня есть возможность установить специальную метку, чтобы увидеть метки дисков. В этой статье расскажу про утилиту blkid. Читать дальше.
Если имя устройства для хранения /dev/sdb1, это означает, что это первый раздел второго жесткого диска, но нет гарантии, что /dev/sdb1 всегда будет именован /dev/sdb1. В зависимости от порядка подключения жестких дисков к материнской плате он может меняться, а использование внешних USB-накопителей может еще более усложнить присвоение имен устройствам. Если это произойдет, ваши жесткие диски могут быть смонтированы в неправильных точках монтирования, что приведет к потере или повреждению данных.
Решение этой проблемы состоит в том, чтобы смонтировать диски, используя их метки или их UUID. Я предпочитаю использовать метки, потому что у меня есть возможность установить специальную метку, чтобы увидеть метки дисков. В этой статье расскажу про утилиту blkid. Читать дальше.
Bash: execute a script only when no other instance of the script is running
Если вы системный администратор или разработчик, скорее всего, вы используете cron и в большинстве случаев задания завершается очень быстро. Но так бывает не всегда. В этой статье о настройке проверки работы аналогичного задания, чтобы исключить их одновременную работу. Читать дальше.
Если вы системный администратор или разработчик, скорее всего, вы используете cron и в большинстве случаев задания завершается очень быстро. Но так бывает не всегда. В этой статье о настройке проверки работы аналогичного задания, чтобы исключить их одновременную работу. Читать дальше.