Tôi có một thư mục đầy đủ các tệp nhật ký cuộn mà tôi muốn có thể sử dụng đuôi.Tailing Rolling Files
Các tập tin được đặt tên như vậy:
name modified
00A.txt Dec 27 19:00
00B.txt Dec 27 19:01
00C.txt Dec 27 19:02
00D.txt Dec 27 19:03
Trên một hệ thống unix cũ, tôi đang cố gắng để đưa ra một kịch bản shell rằng sẽ đuôi file gần đây nhất là sửa đổi trong một thư mục cụ thể, và nếu tập tin đó được đóng về mặt hành chính (cuộn tới tệp tiếp theo) Tôi muốn chương trình tự động bắt đầu tailing tệp mới mà không cần phải thoát khỏi đuôi để chạy lại.
tail -100f `ls -t | head -1`
Các hành vi mong muốn, do tên tập tin ở trên, sẽ đi như thế này:
./logtailer.sh
Sau đó kịch bản sẽ bắt đầu tailing 00D.txt. Ngay sau khi trình ghi nhật ký được hoàn tất bằng văn bản thành 00D.txt và tệp nhật ký mới nhất hiện được đặt tên là 00E.txt, chương trình sẽ tự động bắt đầu tailing tệp đó.
Người ta có thể viết kịch bản này bằng cách xem đầu ra của đuôi cho văn bản "File Administratively Closed" và sau đó có lệnh sau chạy lại.
tail -100f `ls -t | head -1`
Có cách nào thanh lịch hơn để thực hiện việc này không bằng cách xem văn bản "tệp được quản trị về mặt hành chính"? Làm thế nào tôi thậm chí có thể đọc đầu ra của dòng đuôi bằng dòng trong một kịch bản shell?
Chỉnh sửa: Tôi nên giải thích rằng cờ -F cho đuôi không phải là tùy chọn cho tôi trên hệ thống này. Nó sử dụng một phiên bản đuôi khác không chứa tính năng này. Phiên bản hệ điều hành - Solaris 10
Tôi ước mình có thể sử dụng cờ này, nhưng phiên bản của tôi đuôi không có tính năng này và tôi không có tùy chọn để nâng cấp. (Không có quyền quản trị) – user1118047
Bạn có thể vui lòng cung cấp 'thông tin phiên bản' của' đuôi' và 'hộp (unix/linux)' bạn đang sử dụng không? –
SunOS 5.10 Không chắc chắn cách tìm phiên bản đuôi ... – user1118047