Linux-редиректы позволяют гибко управлять потоками stdin, stdout и stderr. С их помощью можно направлять вывод в файлы, разделять или объединять потоки, работать с here-documents и here-strings — всё для автоматизации и точного контроля над командами.
На картинке — основные варианты редиректов, включая базовые операции, комбинирование потоков и полезные приёмы.
Сохрани, чтобы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥6❤5
Как понять, что блокирует процесс — точная точка ожидания в ядре!
В Linux каждый процесс может “зависнуть” не в смысле ошибки, а потому что ждёт диск, сеть, mutex или ресурс ядра.
Но можно увидеть, на чём он сейчас стоит, без
Увидим функции ядра, в которых процесс находится.
Например:
Хотите короткий ответ, без стека?
🔥 Вернёт одну точку блокировки - идеально для быстрых проверок.
➡️ DevOps Ready | #совет
В Linux каждый процесс может “зависнуть” не в смысле ошибки, а потому что ждёт диск, сеть, mutex или ресурс ядра.
Но можно увидеть, на чём он сейчас стоит, без
strace или ptrace. Посмотрим стек ядра процесса:sudo cat /proc/<PID>/stack
Увидим функции ядра, в которых процесс находится.
Например:
futex_wait_queue_me - блокировка / mutex, filemap_read - чтение с диска и т.д.Хотите короткий ответ, без стека?
sudo cat /proc/<PID>/wchan
/proc/<PID>/stack — это именно то, что видит ядро.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🤝4🔥3
Оставленные «на потом» миграции — частая причина падений после деплоя. Проще один раз добавить в
CI этап, который явно проверяет статус миграций и не даёт выкатывать код, пока база не в нужном состоянии.В этом посте:
• Показываем, как проверить pending‑миграции в Django через manage py;
• Разбираем, как вытащить список неприменённых миграций в EF Core и Flyway;
• Оборачиваем команды в единый шаг check-db-migrations в пайплайне.
Полезно всем, кто разворачивает базы через миграции и хочет, чтобы схема всегда совпадала с кодом.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍6🔥5
Тут мы видим, как браузер получает публичный ключ, шифрует им сессионный ключ и дальше общается с сервером уже по симметричному шифрованию.
Сохрани, чтобы быстро освежить в памяти, что происходит под капотом при каждом
HTTPS-запросе.Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥10👍7
Как диагностировать процессы, которые «висят» и не отвечают!
Когда приложение перестаёт реагировать, важно быстро определить, где оно застопорилось: в I/O, системном вызове, блокировке или в логике приложения.
Состояние процесса (R, S, D, Z, T):
Ключевые состояния:
Признаки I/O-зависания:
Открытые файлы, сокеты, дескрипторы:
Python: быстрый
Node.js: корректный способ получить диагностический отчёт: запуск:
Получение отчёта:
Системные вызовы, на которых процесс висит:
Частые паттерны ожидания:
Профиль нагрузки процесса (
🔥 Эти команды позволяют быстро и без даунтайма понять, завис ли процесс в
➡️ DevOps Ready | #практика
Когда приложение перестаёт реагировать, важно быстро определить, где оно застопорилось: в I/O, системном вызове, блокировке или в логике приложения.
Состояние процесса (R, S, D, Z, T):
ps -o pid,ppid,state,cmd -p <PID>
Ключевые состояния:
D — ожидание I/O
T — остановлен
Z — зомби
Kernel stack зависшего процесса (если он залип в системном вызове):sudo cat /proc/<PID>/stack
Признаки I/O-зависания:
io_schedule, wait_on_page_bit.Открытые файлы, сокеты, дескрипторы:
sudo lsof -p <PID>
Python: быстрый
traceback без перезапуска:sudo py-spy dump --pid <PID>
Node.js: корректный способ получить диагностический отчёт: запуск:
node --report-on-signal --report-compact app.js
Получение отчёта:
kill -USR2 <PID>
Системные вызовы, на которых процесс висит:
sudo strace -p <PID>
Частые паттерны ожидания:
futex(...), read(...), poll(...), select(...).Профиль нагрузки процесса (
CPU, context switch, I/O):pidstat -p <PID> -w -d 1
🔥 Эти команды позволяют быстро и без даунтайма понять, завис ли процесс в
I/O, блокировке, системных вызовах или в логике приложения.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤6👍4
Перед выкатом сервиса в
K8s нужно убедиться, что контейнер готов к распределённой системе: логи в stdout, конфиги в env, ресурсы заданы, пробы здоровья работают. Иначе сервис упадёт на старте или будет требовать ручного рестарта.В этом гайде:
• Собираем образ без лишнего и параметризуем конфиги;
• Задаём requests/limits и настраиваем liveness/readiness-пробы;
• Выводим логи в stdout через переменные окружения;
• Используем ConfigMap и Secret для управления конфигами и ключами.
Следуйте этому чек-листу, и ваш первый деплой в
K8s пройдёт без сюрпризов.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6❤5🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь подробно разбираются ключевые вещи, с которыми сталкиваешься в Linux каждый день: как работают процессы и сигналы, что происходит с памятью, как устроена файловая система, как читать права доступа и управлять ими. Каждая тема идёт с примерами команд и пояснениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤6👍5😁1
Запуск команды в полностью чистой среде!
Многие проблемы в Linux возникают не из-за команды, а из-за окружения: переменные, алиасы, функции, конфиги shell. Из-за этого одна и та же команда может вести себя по-разному.
Но можно запустить её в идеально чистой среде, как на новом сервере или внутри контейнера:
Хотите чистый интерактивный shell?
🔥 Если что-то ведёт себя нестабильно, воспроизведите проблему в чистой среде, так сразу видно, где баг: в окружении или в самой программе.
➡️ DevOps Ready | #совет
Многие проблемы в Linux возникают не из-за команды, а из-за окружения: переменные, алиасы, функции, конфиги shell. Из-за этого одна и та же команда может вести себя по-разному.
Но можно запустить её в идеально чистой среде, как на новом сервере или внутри контейнера:
env -i PATH=/usr/bin:/bin <команда>
env -i очищает окружение полностью. Добавляем PATH и команда выполняется с нуля.Хотите чистый интерактивный shell?
bash --noprofile --norc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍7🤝6❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь собраны десятки CLI-инструментов, полезные bash/zsh-скрипты, практичные сниппеты и лайфхаки, которые ускоряют работу. Отличный набор для автоматизации, оптимизации и прокачки навыков работы с командной строкой.
Оставляю ссылочку: GitHub📱
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥6🤝5