Как найти и зафиксить медленные команды в скриптах

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

bashbash-скриптпрофилирование

👁 Скрипт на Bash тормозит, а понять где — непонятно? Вот простой способ профилировать выполнение команд и найти узкие места.

📝 Добавь в начало скрипта вот это:

#!/bin/bash
export PS4='+ $(date "+%s.%N")\011 '
exec 3>&2 2>trace.log
set -x

А в конец скрипта — отключение трассировки:

set +x
exec 2>&3 3>&-

🔎 Что это даёт:

  • set -x включает пошаговую трассировку всех команд
  • PS4 добавляет к каждой команде timestamp с наносекундами
  • — Все логи с таймингами пишутся в trace.log

📌 Результат — лог, в котором можно точно увидеть, какая команда выполнялась слишком долго.

❗️ Подходит для Linux и Bash 4+, работает без дополнительных утилит. Отлично помогает при отладке сложных скриптов и CI/CD шагов.

tags: #bash #linux #полезно

❤️ @recura_tech

Тёмная карточка с фрагментом Bash‑кода: экспорт PS4 с таймстампом и включение set -x для записи трассировки в trace.log; логотип RECURA внизу.
Пример кода для профилирования Bash‑скрипта: PS4 с наносекундами и перенаправление трассировки в trace.log.

Читайте так же