DevOps Portal | Linux
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3P8kFH
Показати більше📈 Аналітичний огляд Telegram-каналу DevOps Portal | Linux
Канал DevOps Portal | Linux (@loose_code) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 13 144 підписників, посідаючи 9 722 місце в категорії Технології та додатки та 50 499 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 13 144 підписників.
За останніми даними від 13 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -84, а за останні 24 години на -7, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 17.90%. Протягом перших 24 годин після публікації контент зазвичай збирає 9.46% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 2 353 переглядів. Протягом першої доби публікація в середньому набирає 1 244 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 8.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як devops, kubernetes, docker, linux, ebpf.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3P8kFH”
Завдяки високій частоті оновлень (останні дані отримано 14 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
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
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
