Cách ghi đầu ra của live-f1 vào một tệp


10

Tôi đã mở terminal và chạy live-F1, hiển thị nguồn cấp dữ liệu trực tiếp trong terminal (văn bản) thay đổi mỗi giây. Chỉ có thể sử dụng phím "Enter" trong khi chương trình này đang chạy (nó thoát khỏi chương trình đó). Vì vậy, bạn không thể gõ bất cứ điều gì khác vào bảng điều khiển.

Tôi muốn viết nội dung thiết bị đầu cuối vào một tập tin, như sau mỗi giây.

Tôi làm nó như thế nào?

Bằng cách mở giao diện điều khiển thứ 2 và sử dụng một số lệnh?

Không thể làm cho nó hoạt động với lệnh setterm -dump.

Câu trả lời:


8

live-f1vẽ lại màn hình với dữ liệu mới bằng cách sử dụng các ký tự điều khiển đầu cuối (ncurses), giống như tophoặc mtr. Đó là lý do tại sao bạn thấy tất cả những thứ linh tinh này khi chuyển hướng đến một tệp hoặc thiết bị đầu cuối không.

Thật không may, live-f1không cung cấp tùy chọn nhận đầu ra phù hợp để lưu và trích xuất dữ liệu sau này để thống kê. Nếu bạn vẫn muốn lưu đầu ra để phát lại sau, bạn có thể sử dụng script.

Điều này sẽ ghi lại live-f1 và tạo hai tệp, bản thảo và tệp thời gian.

script -c live-f1 -t 2> timingfile

Điều này sẽ phát lại đầu ra

scriptreplay timingfile

7

Có một số cách mà tôi sử dụng để nắm bắt đầu ra thành một tệp có thể được sử dụng cho bạn.

script

Điều này tạo ra một subshell và đặt tất cả đầu ra vào nó. Vì vậy, làm scriptbất cứ điều gì bạn muốn, sau đó exitđể kết thúc subshell của bạn và đầu ra của bạn sẽ ở trong một tệp có tên là "typecript"

tee

Bạn có thể lặp lại tất cả các đường ống đến một nơi khác. Vì vậy, bạn có thể teetắt đầu ra tiêu chuẩn của bạn thành một tệp:

$ mycommand | tee myoutput

Nếu bạn cũng cần phải nắm bắt lỗi tiêu chuẩn thì hãy chuyển hướng nó:

$ mycommand 2>&1 | tee myoutput

6

Làm thế nào về việc chạy chương trình như thế này:

program > /path/to/file

Đây chuyển hướng đầu ra của programđể /path/to/filengay lập tức.

Và nếu bạn muốn có đầu ra trong thiết bị đầu cuối của mình, cũng như lưu nó vào một tệp. Kiểm tra Có cách nào trong bash để chuyển hướng đầu ra mà vẫn đi đến thiết bị xuất chuẩn không?


Cảm ơn bạn đã trả lời nhanh. Điều này gần như hoạt động, chỉ có nội dung tập tin là bitled. Nó phải ở dạng HTML, nhưng thay vào đó, khi tôi mở tệp có một số ký hiệu lạ, hãy xem ảnh chụp màn hình: upload.ee/image/1223166/ss_01.png . Tên chương trình là live-F1.
Gustav

Trông thật buồn cười. Bạn có chắc chắn rằng chương trình chỉ xuất ra HTML? Có bất kỳ hình ảnh động hoặc một cái gì đó kỳ lạ?
phunehehe

Điều này sẽ chỉ chuyển hướng đầu ra tiêu chuẩn. Là lỗi tiêu chuẩn cần thiết là tốt?
Faheem Mitha

2
@Gustav Cũng có mã ANSI bị mắc kẹt trong đó. Ứng dụng của bạn xuất ra một số loại bộ đếm tiến trình (trông giống như), hoặc tô màu đầu ra của nó, hoặc tương tự. Nếu có một số cách để tắt điều này thì bạn sẽ cần phải sử dụng nó để thu được đầu ra sạch. Tuy nhiên, ứng dụng của bạn không xuất ra HTML, vì vậy để chụp HTML, bạn sẽ cần một số ứng dụng khác để dịch đầu ra.
Matthew Scharley

Tại sao tôi lại sử dụng HTML, bởi vì tôi đã sử dụng nó cách đây một năm, nhưng đã cải tổ đĩa nơi tôi có môi trường làm việc. Mục tiêu của tôi là đưa các vị trí của trình điều khiển Công thức 1 từ nguồn cấp dữ liệu F1 trực tiếp vào một tệp. Tôi đã làm cho nó hoạt động vào năm ngoái bằng cách chạy chương trình live-F1 trong thiết bị đầu cuối thứ nhất, sau đó kích hoạt thiết bị đầu cuối thứ 2 và sử dụng một số lệnh đã chụp màn hình thiết bị đầu cuối thứ nhất và lưu nó vào một tệp (sao chép từ tệp năm ngoái: upload.ee/doad/1223347 /0b6545ce227661452c8/html.log ). Lệnh là một cái gì đó tương tự: tty "Con trỏ đầu cuối thứ nhất" "tên tệp" "khoảng"
Gustav

3

Bạn có thể sử dụng màn hình GNU , cùng với chức năng ghi nhật ký của nó . Cũng lưu ý rằng logfile flush secslệnh cho phép bạn kiểm soát tần suất đầu ra được xả vào đĩa. Từ Hướng dẫn sử dụng màn hình:

- Lệnh: logfile flush giây

Xác định tên các tệp nhật ký sẽ nhận được. Mặc định là 'screenlog.% N'. Biểu mẫu thứ hai thay đổi số giây màn hình sẽ đợi trước khi chuyển bộ đệm logfile vào hệ thống tệp. Giá trị mặc định là 10 giây.


Tôi sẽ xem xét nó.
Gustav
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.