Làm thế nào để lưu đầu ra giao diện điều khiển vẫn hiển thị nó


3

Tôi cần khắc phục sự cố phiên telnet và gửi lưu kết quả cho người khác. Khi tôi sử dụng chuyển hướng, tôi lưu nội dung của phiên, nhưng tôi không thể thấy nó trên bảng điều khiển.

Làm thế nào để đặt thiết bị đầu cuối / chương trình hiện tại và vẫn hiển thị trên bảng điều khiển hiện tại.

Khi tôi sử dụng lệnh bên dưới, tôi có thể lưu đầu ra của chương trình, nhưng tôi không thể thấy nó trên bàn điều khiển.

telnet ADDRESS PORT >> myoutputfile

Tôi có thể sử dụng tùy chọn đầu ra telnet, tôi đang tìm một cách độc lập lệnh để thực hiện.

Câu hỏi dành riêng cho phiên telnet, nhưng áp dụng cho bất kỳ lệnh nào khác, kể cả những lệnh không có "tùy chọn lưu đầu ra vào tệp".

Câu trả lời:


6

Giải pháp đơn giản nhất là sử dụng tee: -

telnet ADDRESS PORT | tee -a myoutputfile

Điều này sao chép đầu ra cho cả đầu ra tiêu chuẩn và tên tệp được chỉ định và -atùy chọn sẽ thêm vào, giống như >>chuyển hướng của bạn đã làm.


Một vấn đề nhỏ: chuỗi ^] (nhân vật scape) không hoạt động khi sử dụng tee.
Rafael Borja

1
Điều đó có thể là do telnetthực hiện chuyển đổi đó trong đầu ra của nó khi nó được viết stdout, trong trường hợp này không có. Bạn có thể thử nối thêm | cat -vlệnh, nhưng điều này sẽ chỉ hiển thị các dòng khi có một dòng mới trong đầu ra.
AFH

1

Có một mẹo để sử dụng đầu ra lỗi làm bộ đệm thứ hai để xuất ra 2 thiết bị.

Lệnh của bạn sẽ là:

telnet ADDRESS PORT >&2 2>>myoutputfile

Điều này nối thêm đầu ra vào myoutputfile và cũng viết bất cứ điều gì xuất hiện trên bàn điều khiển.

>&2: Điều này sao chép đầu ra từ luồng 1 (bảng điều khiển) sang luồng 2 (lỗi)

2>>: Điều này đảm bảo mọi thứ từ luồng 2 đang được gửi đến tệp.

Nếu bạn không muốn mạo hiểm khi thêm lỗi vào tệp, hãy thay đổi 2 thành 3 ở cả hai hàng. ( >&3 3>>file)

EDIT: Tôi chỉ nhận thấy thẻ linux. Điều này được viết cho Windows, nhưng nó vẫn có thể hoạt động.


Điều này có ý nghĩa, nhưng không hoạt động với phiên telnet (Tôi nhập các lệnh telnet, nhưng tôi không thể đọc phản hồi)
Rafael Borja

1
>&2chuyển hướng đầu ra: nó không sao chép nó. Lệnh của bạn có tác dụng tương tự như người hỏi, ngoại trừ thông báo lỗi cũng chuyển đến tệp thay vì được hiển thị trên bảng điều khiển.
AFH

@AFH trên windows và có nghĩa là sao chép luồng. Tôi đã thử nó và trên windows nó hoạt động.
LPChip

Xin lỗi, tôi đã quá quen với cú pháp Linux ngày nay.
AFH
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.