karawaci.kode

← Semua snippet

Bash Pemula Utility

Tail multiple log files dengan prefix per file

Jalan satu terminal, tail beberapa log file sekaligus, output di-prefix dengan nama file supaya jelas yang mana darimana.

Dipublikasikan 4 Juni 2026

Saat debug app dengan banyak log file (mis. nginx + app + worker), buka tab terminal terpisah per file melelahkan. Snippet ini gabungkan output beberapa tail -f dengan prefix nama file.

Kode

#!/usr/bin/env bash
# multitail.sh — tail multiple files dengan prefix
# Usage: ./multitail.sh /var/log/nginx/access.log /var/log/app.log

for f in "$@"; do
  if [ ! -f "$f" ]; then
    echo "Skip: $f tidak ada"
    continue
  fi
  name=$(basename "$f" .log)
  tail -F "$f" 2>&1 | sed -u "s/^/[$name] /" &
done

wait

-F (besar) bukan -f (kecil) — -F handle file rotation, jadi kalau log di-rotate (logrotate), tetap follow file yang sama.

Kapan dipakai

  • Debug multi-component setup (nginx + app + worker logs)
  • Watch correlated events across services di satu terminal
  • Live tail saat deploy untuk lihat error muncul

Catatan

  • wait di akhir supaya parent script nunggu sampai semua tail selesai (Ctrl+C akan stop semua background tail).
  • sed -u (unbuffered) penting — tanpa ini, output di-buffer dan delay terlihat di terminal.
  • Untuk warna per file: tambahkan \e[3${i}m ANSI code di prefix. Tapi banyak terminal beda support warnanya, saya skip.

Untuk production tail yang persistent, pakai multitail (apt install multitail) atau lnav (lebih kaya feature). Script ini untuk quick ad-hoc tail.

# tags

bashlogstaildebugging

Ditulis oleh Asti Larasati · 4 Juni 2026