DevOps Portal | Linux
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3P8kFH
Show more📈 Analytical overview of Telegram channel DevOps Portal | Linux
Channel DevOps Portal | Linux (@loose_code) in the Russian language segment is an active participant. Currently, the community unites 13 144 subscribers, ranking 9 722 in the Technologies & Applications category and 50 499 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 13 144 subscribers.
According to the latest data from 13 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -84 over the last 30 days and by -7 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 17.90%. Within the first 24 hours after publication, content typically collects 9.46% reactions from the total number of subscribers.
- Post reach: On average, each post receives 2 353 views. Within the first day, a publication typically gains 1 244 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 8.
- Thematic interests: Content is focused on key topics such as devops, kubernetes, docker, linux, ebpf.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3P8kFH”
Thanks to the high frequency of updates (latest data received on 14 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
line-buffered опция которая выведет результат как только найдет
strace -f — отслеживание дочерних процессов
strace -f l ftp sitename | & grep --line-buffered open | grep /home/user
Либо в самой программе, если удастся найти параметры
/usr/sbin/mysqld --verbose --help | grep -A 1 «Default options»
👉 DevOps PortalFROM alpine
CMD ["ping", "8.8.8.8"]
В инструкцию CMD передаются 2 аргумента. Выполним сборку образа docker build -t test . и запустим контейнер.
$ docker run test
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=43 time=32.976 ms
64 bytes from 8.8.8.8: seq=1 ttl=43 time=31.998 ms
64 bytes from 8.8.8.8: seq=2 ttl=43 time=31.843 ms
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 31.708/33.316/36.823 ms
Теперь передадим 2 новых аргумента для запуска контейнера.
$ docker run test traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 30 hops max, 46 byte packets
1 172.17.0.1 (172.17.0.1) 0.017 ms 0.016 ms 0.009 ms
2 192.168.168.1 (192.168.168.1) 0.996 ms 1.553 ms 2.069 ms
3 * * *
4 lag-2-435.bgw01.samara.ertelecom.ru (85.113.62.125) 1.454 ms 1.427 ms 1.984 ms
5 172.68.8.3 (172.68.8.3) 19.685 ms 15.722 ms 15.565 ms
6 172.68.8.2 (172.68.8.2) 15.846 ms 22.696 ms 35.093 ms
7 one.one.one.one (1.1.1.1) 17.439 ms 17.670 ms 24.202 ms
ping заменен на traceroute, IP адрес заменен на 1.1.1.1.
Пример 2. ENTRYPOINT: Опишем сборку образа в Dockerfile.
FROM alpine
ENTRYPOINT ["ping", "8.8.8.8"]
В инструкцию ENTRYPOINT передаются 2 аргумента. Выполним сборку образа docker build -t test . и запустим контейнер.
$ docker run test2
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=43 time=36.189 ms
64 bytes from 8.8.8.8: seq=1 ttl=43 time=44.120 ms
64 bytes from 8.8.8.8: seq=2 ttl=43 time=44.584 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 36.189/41.631/44.584 ms
Теперь передадим изменим один из аргументов для запуска контейнера.
$ docker run test2 ping 1.1.1.1
BusyBox v1.31.1 () multi-call binary.
Usage: ping [OPTIONS] HOST
Send ICMP ECHO_REQUEST packets to network hosts
-4,-6 Force IP or IPv6 name resolution
-c CNT Send only CNT pings
-s SIZE Send SIZE data bytes in packets (default 56)
-i SECS Interval
-A Ping as soon as reply is recevied
-t TTL Set TTL
-I IFACE/IP Source interface or IP address
-W SEC Seconds to wait for the first response (default 10)
(after all -c CNT packets are sent)
-w SEC Seconds until ping exits (default:infinite)
(can exit earlier with -c CNT)
-q Quiet, only display output at start
and when finished
-p HEXBYTE Pattern to use for payload
Как видим, аргумент передать контейнеру нельзя.
👉 DevOps Portal$ find . -type d -empty -exec rmdir -v {} +
Параметр -type d выполняет поиск каталогов, -empty выбирает пустые каталоги, а -exec rmdir {} выполняет команду rmdir для их удаления.
Команда rmdir гарантирует, что каталог пуст перед его удалением.
В качестве альтернативы, вы также можете использовать эту команду для выполнения той же задачи:
$ find . -type d -empty -delete
👉 DevOps Portalpip install pysnmp
Пример скрипта: Сбор метрик интерфейса
Вот пример кода, который получает статистику интерфейса по OID:
from pysnmp.hlapi import *
# Укажите параметры устройства
snmp_target = '192.168.1.1'
community = 'public'
oid = '1.3.6.1.2.1.2.2.1.10.1' # OID для входящего трафика интерфейса
# Запрос SNMP
def get_snmp_data(target, community, oid):
iterator = getCmd(
SnmpEngine(),
CommunityData(community, mpModel=0),
UdpTransportTarget((target, 161)),
ContextData(),
ObjectType(ObjectIdentity(oid))
)
error_indication, error_status, error_index, var_binds = next(iterator)
if error_indication:
print(f"Error: {error_indication}")
elif error_status:
print(f"Error: {error_status.prettyPrint()}")
else:
for var_bind in var_binds:
print(f"{var_bind[0]} = {var_bind[1]}")
# Выполнение запроса
get_snmp_data(snmp_target, community, oid)
Как это работает:
1. getCmd выполняет запрос на устройство по указанному OID.
2. CommunityData указывает тип доступа (public — стандартное имя сообщества для чтения).
3. Результат содержит текущую метрику (например, объем входящего трафика на интерфейсе).
Применение:
🔹Получите данные о загрузке процессора, памяти или состоянии интерфейсов.
🔹Интегрируйте скрипт в существующую систему мониторинга.
🔹Расширьте функционал для уведомлений или построения графиков.
Что дальше?
Для визуализации собранных данных можно использовать библиотеки, такие как Matplotlib или Pygal. Это позволяет легко строить графики, показывающие состояние сети.
👉 DevOps Portalps aux
Выводит список всех процессов с подробной информацией:
🔹USER — пользователь, запустивший процесс.
🔹PID — уникальный идентификатор процесса.
🔹%CPU / %MEM — использование процессора и памяти.
🔹COMMAND — название программы.
🟢 Интерактивный мониторинг:
top
Показывает процессы в реальном времени. Нажмите q, чтобы выйти.
🟢 Упрощенная альтернатива:
htop
Если не установлено, добавьте:
sudo apt install htop
2️⃣ Управление процессами
🟢 Завершение процесса:
kill <PID>
Например:
kill 1234
Чтобы принудительно завершить процесс:
kill -9 <PID>
🟢 Остановка и возобновление:
🔹Остановить процесс:
kill -STOP <PID>
🔹Возобновить процесс:
kill -CONT <PID>
🟢 Изменение приоритета процесса:
🔹Проверить приоритет (niceness):
ps -o pid,ni,cmd -p <PID>
🔹Изменить приоритет (чем ниже значение, тем выше приоритет):
renice -n 10 -p <PID>
3️⃣ Планирование задач
🟢 Запуск в фоне: Если команда занимает много времени, добавьте & в конце:
long_running_command &
Узнать PID фонового процесса:
jobs -l
🟢 Отложенный запуск: Используйте at, чтобы запланировать выполнение команды:
echo "backup.sh" | at 02:00
Если at не установлен:
sudo apt install at
🟢Периодические задачи: Для регулярных задач используйте cron:
1. Открыть редактор crontab:
crontab -e
2. Добавить задачу (пример: запуск каждую минуту):
* * * * * /path/to/script.sh⚡️ Советы ➖ Используйте
htop для удобной работы с процессами, если командная строка кажется сложной.
➖ Команда pkill позволяет завершить процессы по имени:
pkill firefox
➖ Следите за потреблением ресурсов с помощью iotop (для ввода-вывода) и nmon (общий мониторинг).
✅ Заключение
Управление процессами — это важнейшая часть работы в Linux. Знание этих инструментов позволит вам не только следить за состоянием системы, но и эффективно решать проблемы производительности. 😐
👉 DevOps Portaldocker ps
После ввода команды вы увидите удобный выхлоп, где нас интересует имя или ID нужного контейнера.
2️⃣ Вывод логов конкретного контейнера
Здесь есть два способа: менее удобный и совсем неудобный. Где какой решайте сами 🤷♂️ Первый способ заиметь доступ к логу контейнера указан был в сообщении про работу с логами, где я указывал место хранения логов Docker:
/var/lib/docker/containers/<id_контейнера>/<id_контейнера>-json.log
Но, как говорилось ранее, вы получаете лютый JSON, где вообще ничего непонятно. Второй способ - использовать команду для вывода логов конкретного контейнера:
docker logs <имя_или_ID_контейнера>По сути, команда вываливает в терминал содержимое JSON-файла из способа №1. Что делать дальше с этой информацией решает каждый сам, кому-то может оно и поможет, ну а мы идем дальше... 3️⃣ Сохраняем логи за определенный период в отдельный файл Совместим все, что узнали в пунктах выше и приправим ключом --since, который позволяет задать временной отрезок, с которого будет выведен лог. Вдобавок используя перенаправление вывода сохраним это все в отдельный файл, чтобы потом его изучить:
docker logs <имя_или_ID_контейнера> --since 60m > mydocker.logДанный пример выведет содержимое лога контейнера Docker за последний час. Ну а что делать, если нужно вывести данные с прошлого месяца? Все просто!
docker logs <имя_или_ID_контейнера> --since YYYY-MM-DD > mydocker.logЗдесь YYYY - год (2023, например), MM - месяц (09) и DD - день (21). Порядок идет именно такой, так как все эти ваши европейцы и американцы, создавшие Linux и большую часть того, что связано с программированием, используют такой формат даты. Всю эту информацию перенаправляем в файл с расширением log, который потом можно использовать как душе угодно. 4️⃣ Добавляем временную метку в логи Но даже после использования команды в п. 3 у вас получится файл, в котором все будет в кучу и не поймешь когда и во сколько какое событие, описанное в логе произошло. Поэтому нужно добавить временную метку, делается это при помощи ключа -t.
docker logs <имя_или_ID_контейнера> --since YYYY-MM-DD -t > mydocker.log
Вот теперь-то вы получите информативный лог о том, что происходило с вашим сервисом внутри контейнера!
Полученную в конце команду вы можете использовать вместе с сервисом Transfer.sh, чтобы без лишней головомойки делиться логами с кем нужно
👉 DevOps Portal/var/log/...Внутри нее могут располагаться как отдельные файлы-логи (имеющие расширение log), так и директории с названиями сервисов внутри которых находятся логи. Есть, естественно, исключения. Например, Docker. У него логи запущенных контейнеров находятся в другом месте:
/var/lib/docker/containers/<id_контейнера>/<id_контейнера>-json.log
Опять-таки, повторюсь, что чаще всего местоположение логов, заданное разработчиками программы или сервиса указывается в конфигурационных файлах и может, при желании, меняться пользователем. Системные логи, чаще всего, хранятся в /var/log.
🟢 Какие виды логов бывают?
Расскажу, опять-таки, про классическую схему того, какие логи бывают.
✅ access.log - содержат данные о доступе к серверу/ресурсу/приложению (например, успешные авторизации)
❌ error.log - содержат данные об ошибках, возникающих при работе с серверами/ресурсами/приложениями.
🔤 <имя_сервиса>.log - содержат данные обо всех взаимодействиях с сервисом (доступ, ошибки, информация и пр.)
Указанные имена логов являются стандартными, конкретный вариант уже зависит от того, как решили разработчики или пользователь. Используя конфигурационные файлы вы можете задать любое имя для файла с логами. Теперь уже перейдем к командам.
1️⃣ Команда cat для просмотра содержимого лога
При использовании этой команды в терминал будет выведено все содержимое лога:
cat /var/log/<имя_лога>.log
Удобно, когда лог небольшой, в обратном случае вывод может занять длительное время.
2️⃣ Команда tail -f для вывода содержимого лога в режиме реального времени
Напомню, что команда tail выводит по-умолчанию 10 последних строк содержимого файла. Но при использовании ключа -f в выхлоп будут попадать строки лога в режиме реального времени.
tail -f /var/log/<имя_лога>.log
Удобно запустить такую команду и начать тестирование сервиса или программы, чтобы сразу видеть влетающую информацию.
3️⃣ Команда echo -n > для зануления логов
Бывает так, что логи разрастаются до неимоверных размеров. Решается это настройкой так называемой ротации (про нее расскажу отдельно в следующий раз), но если лог разросся до размеров, которые нужно занулить здесь и сейчас, то указанная команда подойдет в самый раз:
echo -n > /var/log/<имя_лога>.log
Почему нельзя решить проблему простым удалением лога при помощи rm? Некоторые сервисы используют проверку наличия файла для записи лога и если он отсутствует, то считают это ошибкой и перестают работать. Поэтому вместо кажущегося очевидного удаления файла лога нужно его просто занулить.
Работа с логами не составляет каких-то сложностей. Помимо указанных выше команд можно использовать практически все другие инструменты, применяемые к работе с файлами в Linux. В логах можно искать информацию, сортировать ее вывод в терминал, применять редактор sed и так далее. Чтобы не утруждать пользователя или администратора просмотров логов вручную существуют автоматизированные системы сбора и обработки логов, которые позволяют собирать информацию сразу с нескольких серверов.
Поддержите пост лайком, если он оказался полезным 🤝
👉 DevOps Portal
Available now! Telegram Research 2025 — the year's key insights 
