Tùy chọn -f của lệnh tail hoạt động như thế nào?

Tác giả: VPS chính hãng 11 tháng 10, 2023

Tham số “-f” được sử dụng để theo dõi quá trình phát triển của tệp. Khi tham số “-f” được sử dụng, phần đuôi không thoát ra sau khi hiển thị một vài dòng cuối cùng của tệp. Thay vào đó, nó tiếp tục theo dõi tệp để tìm bất kỳ dòng mới nào được thêm vào và hiển thị khi chúng được thêm vào. Mục tiêu chính của lệnh tail là tìm ra các thông báo lỗi và theo dõi các thay đổi của tệp trong thời gian thực. Blog này giải thích mục tiêu chính và hoạt động của tùy chọn -f(follow) của lệnh tail.

Tùy chọn -f của lệnh tail hoạt động như thế nào?

Lệnh tail Linux là một công cụ thiết yếu cho dòng lệnh. Lệnh này chủ yếu được sử dụng để xuất phần cuối của tệp (văn bản) hoặc để giới hạn đầu ra của lệnh Linux. Do đó, lệnh tail Linux phù hợp với lệnh head của Linux và các lệnh ‘cat’ và ‘less’ – các lệnh Linux này cũng được sử dụng để xuất nội dung của tệp văn bản.

Lệnh “tail” cung cấp tham số “-f(follow)” theo dõi các thay đổi về đầu ra của tệp liên tục trong thời gian thực. Nó chủ yếu được quản trị viên của hệ thống máy chủ Linux/VPS Linux sử dụng để theo dõi các tệp văn bản và nhật ký. Nó cũng hiển thị việc bổ sung các dòng mới trong một tệp cụ thể bằng cách truy cập nó thông qua một thiết bị đầu cuối khác.

Tùy chọn này chủ yếu được quản trị hệ thống sử dụng để theo dõi sự phát triển của các tệp nhật ký được viết bởi nhiều chương trình Unix khi chúng đang chạy. Nó sẽ hiển thị mười dòng cuối cùng của tệp và sẽ cập nhật khi thêm dòng mới. Khi các dòng mới được ghi vào nhật ký, bảng điều khiển sẽ cập nhật các dòng mới. Lời nhắc không quay lại ngay cả sau khi công việc kết thúc. Vì vậy bạn phải sử dụng phím ngắt để hủy lệnh này.

Bạn có thể sử dụng tùy chọn -f để kiểm tra các thông báo lỗi khi chúng xuất hiện trong tệp nhật ký:

$ tail -f logfile

Đặc điểm tùy chọn -f của lệnh tail

  • Tùy chọn này khiến đuôi lặp lại mãi mãi, kiểm tra dữ liệu mới ở cuối tệp. Khi dữ liệu mới xuất hiện, nó sẽ được in.
  • Nếu bạn theo dõi nhiều tệp, tiêu đề sẽ được in để cho biết dữ liệu của tệp nào đang được in.
  • Nếu tệp bị thu lại thay vì mở rộng lên, tail sẽ thông báo cho bạn biết bằng một thông báo.
  • Nếu bạn chỉ định tên, tệp có tên đó sẽ được theo sau, bất kể bộ mô tả tệp của nó.
  • Nếu bạn chỉ định bộ mô tả, tệp tương tự sẽ được tuân theo, ngay cả khi nó được đổi tên. Đây là hành vi mặc định.

Cú pháp tùy chọn -f của lệnh tail

Hoạt động của lệnh “tail -f” yêu cầu tên tệp có nội dung cần được theo dõi ở định dạng sau:

$ tail -f filename

Nếu không có tên tệp nào được truyền bằng lệnh “tail -f” thì “descriptor” sẽ được sử dụng tự động theo mặc định và quá trình này được gọi là “live tail”.

Các ví dụ về tùy chọn -f của lệnh tail

Ví dụ 1: Theo dõi các thay đổi của tệp văn bản

Hãy xem “tail -f” hoạt động thực tế với sự trợ giúp của một ví dụ để theo dõi các thay đổi của tệp.

Tạo một tập tin

Tạo một tệp văn bản có tên “Note.txt” với sự trợ giúp của lệnh “cat” tích hợp đơn giản nhất:

$ cat > Note.txt
Chạy lệnh cat để tạo một tập tin

Chạy lệnh cat để tạo một tập tin

Giám sát tập tin

Bây giờ hãy mở một thiết bị đầu cuối thứ hai khác và thực hiện lệnh “tail -f” với tên tệp “Note.txt” để theo dõi các thay đổi và lưu chúng:

$ tail -f Note.txt

Vào thời điểm đó, lệnh “tail -f” đang theo dõi tệp “Note.txt”. Bây giờ, nếu người dùng thêm bất kỳ nội dung nào vào tệp “Note.txt”, tham số “-f” ở phần đuôi sẽ tuân theo nội dung đó.

Nhấn phím tắt “Ctrl+C” để thoát khỏi quá trình giám sát.

=>> Cách sử dụng lệnh Chown trong Linux để thay đổi quyền sở hữu tệp

Ví dụ 2: Theo dõi nhật ký cập nhật

Nhật ký hoạt động như một phần thông tin về chính hành động được thực hiện trên hệ thống Linux như thư, dịch vụ cron, kern, daemon,… Lệnh “tail -f” liên tục theo dõi nhật ký và hiển thị các bản cập nhật mới được thêm vào theo thời gian khi quản trị hệ thống.

Trong Linux, nhật ký được lưu trữ trong thư mục “/var/log/message” ngoại trừ Ubuntu. Nó lưu trữ nhật ký trong thư mục “syslog”. Để giám sát thư mục “syslog” đó, hãy sử dụng lệnh “tail -f” theo cách sau:

$ tail -f /var/log/messages
Theo dõi nhật ký với tùy chọn -f của lệnh tail

Theo dõi nhật ký với tùy chọn -f của lệnh tail

Đầu ra chứa một vài dòng cuối cùng của thư mục “var/log/syslog” của hệ điều hành Ubuntu.

Ví dụ 3: Hiển thị cập nhật theo thời gian thực

Tùy chọn -f cho phép người dùng theo dõi tệp trong thời gian thực và hiển thị mọi cập nhật ở đầu ra tiêu chuẩn. Tùy chọn này thường được sử dụng cho các tệp nhật ký vì mọi thông tin trạng thái mới thường được thêm vào cuối tệp. Tuy nhiên, tệp nhật ký phải là tệp văn bản để có thể đọc được bằng đuôi.

Sử dụng cú pháp sau:

tail -f [file]

Lệnh trên xuất nhật ký cho trình quản lý gói dpkg và chờ dữ liệu mới được thêm vào tệp. Để hủy lệnh, nhấn tổ hợp phím ngắt (Ctrl+C). Khoảng thời gian làm mới mặc định là 1 giây.

Chúng ta có tùy chọn khác -s  phải luôn được sử dụng cùng với -f để xác định khoảng thời gian ngủ. Trong khi tail -f sẽ tiếp tục xem tệp, tốc độ làm mới mỗi giây là 1 giây, nếu bạn muốn kiểm soát điều này thì bạn sẽ phải sử dụng tùy chọn -s “sleep” và chỉ định khoảng thời gian ngủ:

tail -f -s <sleep interval in seconds> /path/to/file

Trong Linux, lệnh “tail” với tham số “-f” tuân theo việc bổ sung hoặc cập nhật các dòng mới vào tệp cụ thể. Nó giám sát tệp dữ liệu đầu vào liên tục cho đến khi hoạt động giám sát dừng lại. Để dừng hoạt động giám sát, hãy sử dụng phím “Ctrl+C” từ bàn phím. Bài viết này đã chứng minh mục đích và hoạt động tham số “-f” của lệnh “tail”. Tham gia ngay với chúng tôi qua vpschinhhang.com để biết thêm những thông tin thú vị về máy chủ Windows, Linux. Cảm ơn đã theo dõi bài viết!