Đuôi hai tệp nhật ký


14

Tôi có một ứng dụng web xuất ra một số tệp nhật ký với thông tin hiệu suất. Một tệp nhật ký xuất ra thời gian thực thi mã và một tệp thời gian SQL khác. Tôi không có quyền kiểm soát logger hoặc mã tạo ra các tệp nhật ký, nhưng tôi muốn xuất nhật ký ở một nơi.

Hiện tại tôi đang làm một cái gì đó như thế này

tail -f sqlLogs.log | grep sql-time
tail -f perflogs.log | grep exec-time

Điều này xuất ra một cái gì đó cho bàn điều khiển mỗi khi SQL được thực thi trong ứng dụng. Nhưng tôi phải chạy mã trong hai phiên SSH riêng biệt. Tuy nhiên, những gì tôi muốn có thể theo đuôi cả hai tệp, trong cùng một phiên SSH. Điều này có thể không?

Câu trả lời:


20

Có, các dòng đầu ra đuôi được nối vào tất cả các tệp được cung cấp trên dòng lệnh:

tail -F sqlLogs.log perflogs.log | egrep '(sql-time|exec-time)'

Chà, dễ hơn cách của tôi! (lol, chỉ đưa ra một câu trả lời không phải của tôi, tôi sẽ bỏ qua cho tôi vì tò mò)
Jeremy

4

Có một cái nhìn tại MultiTail . Đó là bạn của bạn.

Bạn có thể có nhiều đuôi đăng nhập

 - các cửa sổ khác nhau, 'chia tách' của al vim
 - hoặc để nó hợp nhất hai luồng (hoặc N) vào một chế độ xem và
 - bạn có thể lọc hơi bằng regex và, nếu bạn thích,
 - nó sẽ 'phát' đầu ra thành một tệp

http://www.vanheusden.com/multitail/

Trên Ubuntu 10.04: sudo apt-get install multitail


2

Đúng, sử dụng screenlệnh, bạn có thể có 2 phiên bash chạy trên một thiết bị đầu cuối.

  • Chạy screenđể bắt đầu,
  • Sau đó nhập Ctrl-arồi S(LƯU Ý: viết hoa S) để chia màn hình thành 2.
  • Ctrl-asau đó Tabsẽ di chuyển bạn giữa hai phiên.
  • Ctrl-asau đó csẽ bắt đầu một vỏ trong khu vực mới đó.

(Vui lòng xem câu trả lời của Riccardo trước khi sử dụng, đơn giản hơn nhiều. Tôi sẽ bỏ qua phần này vì nó có thể hữu ích cho những người có vấn đề tương tự nhưng khác nhau).


0

Bạn có thể sử dụng mkfifo để ghép đầu ra thành một ống

tạo một ống fifo, đuôi n tập tin vào đường ống, sau đó cat ống

 mkfifo pipeName
 tail file1 &
 tail file2 &
 ...
 tail fileN &
 cat pipeName

khi hoàn thành

 rm pipeName

1
Điều này không thực sự sử dụng fifo; bạn có thể muốn các lệnh đuôi được tail fileN >> pipeName.
Jeremy Kerr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.