Bash-функция для логирования команд с меткой времени

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

bashлогированиескрипты

👁 Когда ты часто работаешь с серверами, автоматизацией или отладкой скриптов, хочется, чтобы команды логировались не просто текстом, а с временными метками, статусами и сохранялись в лог. Вот простая Bash-функция, которая делает именно это.

📝 Код:

log_exec() {
echo "$(date '+%Y-%m-%d %H:%M:%S') ⏳ $*" | tee -a script.log
"$@" >> script.log 2>&1
local status=$?
echo "$(date '+%Y-%m-%d %H:%M:%S') ✅ Done ($status)" | tee -a script.log
return $status
}

📌 Как использовать:

log_exec apt update
log_exec systemctl restart nginx
log_exec ./deploy.sh

🔎 Что делает:

  • Логирует каждую команду с меткой времени
  • Сохраняет вывод в script.log
  • Показывает статус завершения
  • Подходит для деплой-скриптов, cron-задач, CI/CD

⚡️ Работает на любом Linux, не требует зависимостей. Можно расширить для логирования в syslog, цветного вывода или отправки в Prometheus Pushgateway.

tags: #полезно #bash #логирование

❤️ @recura_tech

Скриншот с тёмной темой редактора: код Bash-функции log_exec показан на экране, видна подсветка синтаксиса и логотип RECURA
Код функции log_exec в тёмной теме редактора, рядом логотип RECURA

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