🐧 Linux Junior. Программирование под Linux.
🔥 tail для нескольких файлов и пользователей
Вы, вероятно знакомы с multitail — он умеет следить за несколькими логами сразу. Но:
🔴 он не всегда установлен,
🔴 иногда нет прав на установку, особенно на продакшн-серверах.
Не беда: с этим справится и обычный tail:
tail -f /var/logs/*.log
⚙️ Проблема с "висящими" tail
На сервере с приложением часто работают несколько разработчиков или тестировщиков. Все смотрят логи через tail -f.
Когда приложение перезапускают, старые процессы tail остаются в фоне — иногда на дни или даже недели. Это не критично, но выглядит неаккуратно и засоряет список процессов:
ps aux | grep tail
🔧 Решение: tail с автозавершением
Можно сделать алиас, который будет следить за логом только пока жив процесс приложения:
alias TFapplog='tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app.log'
Как это работает:
🔴 --pid=$(cat /opt/app/tmp/app.pid) — tail будет автоматически завершён, когда процесс приложения умрёт.
🔴 /opt/app/logs/app.log — путь к логу.
⚙️ Практика
Добавьте этот алиас в ~/.bashrc или ~/.bash_profile.
Теперь, даже если кто-то забудет завершить tail, он сам корректно закроется при рестарте приложения.
Можно сделать несколько алиасов для разных приложений или логов — удобно и безопасно.
🟢 Бонус
Для нескольких файлов и с PID можно использовать и так:
tail -f --pid=$(cat /opt/app/tmp/app.pid) /opt/app/logs/app1.log /opt/app/logs/app2.log
Все логи будут отображаться одновременно, и tail закроется при завершении процесса.
6 · 1.2K ·