네트워크 또는 직렬 포트를 통해 다른 Linux 시스템의 모니터로 데이터를 전송하는 방법은 무엇입니까?

네트워크 또는 직렬 포트를 통해 다른 Linux 시스템의 모니터로 데이터를 전송하는 방법은 무엇입니까?

텍스트 기반 디버그 로그 및/또는 콘솔에 사용하고 싶은 두 번째 모니터가 있습니다. 나는 그것이 내 GUI/"데스크탑"/메인 시스템의 일부가 되는 것을 원하지 않습니다.

저는 이 모니터를 처리 능력이 별로 없는 오래된 Linux 상자에 연결했습니다. 시작되면 login:프롬프트에 따라 자체적으로 준비합니다.

LAN에 연결되어 있으므로 SSH로 연결할 수 있습니다. 나는 다음과 같은 것을 실행하여 화면에 쓸 수 있다는 것을 알고 있습니다.ssh root@ancient echo test \> /dev/tty0

저는 디버깅을 위해 명명된 파이프를 사용하는 것을 좋아합니다. 기본적으로 명명된 파이프를 생성한 mkfifo다음 tail -f다른 명령/스크립트/등에서 데이터를 쓸 때 이를 사용합니다.

내가 하려는 일에 대한 설명을 바탕으로 내가 하려는 일을 수행하는 "좋은"/"올바른" 방법은 무엇입니까(네트워크의 명명된 파이프에 데이터를 "덤프"하여 출력이 이루어지도록) 화면의 해당 터미널에 나타납니까?)

ssh- , tailnetcat( nc) 및 리디렉션과 같은 것을 통해 액세스할 수 있다는 것을 알고 있지만 , /dev/tty0이들을 어떻게 설득력 있게 조합할 수 있는지 잘 모르겠습니다. 나는 이것을 보았다:원격으로 사용할 수 있도록 netcat을 통해 콘솔 애플리케이션을 스트리밍/리디렉션할 수 있습니까?

이와 같은 것을 사용 하고 전송된 각 로그 항목에 대해 새 연결을 생성하는 ssh root@ancient echo test \> /dev/tty0것은 해킹된 것 같습니다 .

데이터가 일반 텍스트로 유선을 통해 전송되지 않으면 이점이 있지만, 작업이 매우 느려지거나 너무 많은 오버헤드나 복잡성이 발생하는 경우 표준이 필수라고 생각하지 않습니다.

또한 두 시스템 간에 직렬 연결을 사용하면 어떤 이점이 있습니까?

예전에 이런 일을 해본 적이 있지만, 115,200수백 줄의 코드를 보내는 최대 전송 속도에서도 네트워크를 통해 데이터를 보내는 것에 비해 "지연"해 보였습니다. 나는 115k이것이 오래된 "모뎀 기술"이라는 것을 알고 있으므로 이러한 유형의 직접(직렬이지만) 연결에 대해 예상보다 느린 경험이 정상적인 것인지 궁금합니다.

답변1

Netcat이 떠오릅니다. 저사양 수신 시스템의 경우 이는 더 현명한 선택일 수 있습니다(오버헤드가 없고 압축되지 않은 네트워크 통신 방법을 고려할 때).

좋은 사용 예는 여기에서 찾을 수 있습니다.
https://stackoverflow.com/questions/4113986/example-of-using-named-pipes-in-linux-bash

답변2

tail -f다음과 같은 익숙한 방법을 사용하여 ssh다른 컴퓨터로 파이프 할 수 있습니다 .

tail -f fifo | ssh root@ancient cat \> /dev/tty0

cat > /dev/tty0입력을 터미널에 에코하는 반대쪽에서 실행합니다 . ssh출력은 네트워크 tail의 표준 입력으로 전달됩니다. cat모든 데이터는 전송 중에 완전히 암호화됩니다.

직렬 연결은 작동하지만 시스템 중 하나가 매우 약하지 않는 한 ssh네트워크 트래픽과 오버헤드는 무시할 수 있습니다.

답변3

충분히 사용할 수 있을 것 같아요

cat > /dev/udp/ancient/12345

한 대의 기계에서 그리고

nc -lu 12345

또 다른. 안정성 향상을 위해 TCP를 사용하려면 리디렉션에서 -u옵션을 제거하고 다음 으로 nc바꾸십시오 ./udp//tcp

관련 정보