Computer >> Hướng Dẫn Máy Tính >  >> Điện Thoại Thông Minh >> Linux

Cách theo dõi cập nhật tệp theo thời gian thực trong Linux với tail

Hướng dẫn này sẽ chỉ cho bạn cách xem nội dung tệp khi nó được cập nhật theo thời gian thực (real-time) bằng lệnh tail trong Linux.

Nếu bạn quản trị máy chủ Linux hoặc là lập trình viên, rất có thể bạn cần theo dõi một tệp để bắt các cập nhật mới – ví dụ: tệp nhật ký (log) của web server để phát hiện lỗi, hoặc tệp dữ liệu đang được ghi liên tục. Thay vì phải nhấn phím tắt làm mới liên tục, hãy dùng tail -f.

Cú pháp cơ bản

Giả sử bạn muốn theo dõi nhật ký truy cập Apache:

# tail -f /var/log/httpd/access.log

Lưu ý: Đường dẫn nhật ký Apache thường là /var/log/httpd/access_log (RHEL/CentOS/Fedora) hoặc /var/log/apache2/access.log (Debian/Ubuntu).

Khi chạy lệnh, bạn sẽ thấy 10 dòng cuối cùng của tệp (mặc định), sau đó con trỏ chờ – mọi dòng mới ghi vào tệp sẽ tự động hiển thị trên màn hình.

Hai nhược điểm của tail -f

  1. Không thể cuộn lên/xuống: Bạn chỉ xem được luồng dữ liệu mới, không thể cuộn lại lịch sử.
  2. Ngừng theo dõi khi tệp xoay vòng (log rotation): Khi logrotate di chuyển tệp cũ và tạo tệp mới cùng tên, tail -f vẫn giữ kết nối với inode của tệp cũ – do đó ngừng hiển thị cập nhật từ tệp mới.

Giải pháp: Dùng tail -F (chữ F in hoa)

# tail -F /var/log/httpd/access.log

Cờ -F (viết tắt của --follow=name --retry) yêu cầu tail theo dõi tên tệp thay vì inode. Khi tệp bị xoay vòng, tail sẽ tự động mở lại tệp mới cùng tên và tiếp tục theo dõi. Tôi khuyến khích luôn dùng -F thay vì -f cho mọi trường hợp theo dõi nhật ký.

Các tùy chọn hữu ích khác

Tùy chọnChức năng
-n 50Hiển thị 50 dòng cuối thay vì mặc định 10 dòng
-f / -FTheo dõi thực thời gian (f: theo inode, F: theo tên tệp)
-qKhông in tiêu đề tên tệp khi theo dõi nhiều tệp
-s 2Ngủ 2 giây giữa các lần kiểm tra (giảm tải CPU)

Ví dụ thực tế

# Theo dõi 50 dòng cuối nhật ký nginx, chịu đựng log rotation
tail -F -n 50 /var/log/nginx/access.log

# Theo dõi nhiều tệp nhật ký cùng lúc
tail -F /var/log/nginx/access.log /var/log/nginx/error.log

Công cụ nâng cao hơn

  • less +F: Mở tệp với less rồi nhấn Shift+F – cho phép cuộn lên/xuống theo dõi thực tế.
  • multitail: Theo dõi nhiều tệp trong cửa sổ chia cột, tô màu, lọc regex.
  • lnav (Log Navigator): Phân tích định dạng log tự động, truy vấn SQL-like, giao diện TUI đẹp.