Ssh

無緩衝的 socat 命令連接遠端機器的串口並記錄數據

  • November 9, 2016

我目前正在使用以下命令。它從本地機器中的串列 ttyUSB0 讀取,並通過兩個用於記錄的 tee 命令雙向連接到 ssh。在遠端端,socat 將 stdio 連接到遠端 ttyUSB0:

stty -F /dev/ttyUSB0 raw 3000000

ssh  admin@remote.local stty -F /dev/ttyUSB0 raw 3000000

socat /dev/ttyUSB0,raw,echo=0 SYSTEM:'"tee -a log_l2r | ssh  admin@remote.local socat - /dev/ttyUSB0,raw,echo=0  | tee -a log_r2l"',pty,echo=0
  1. 我想確保緩沖不會破壞兩個機器人控制器之間的實時通信。行緩衝是可以的,但僅此而已。

上面的命令中有很多連接,我不確定潛在的緩衝管道/套接字。你能幫我找出它們嗎? 2. 我還需要刪除任何翻譯或迴聲(我相信stty ... raw ...已經這樣做了)。 3. 是否有其他首選方法來解決此通信問題?即其他命令?

執行 Debian GNU/Linux - Ubuntu

如果您獲得 stdio 緩衝,則將該stdbuf命令用作實際命令的前綴。

stty可能需要一個明確的-echo.

作為替代方案,如果您不需要 ssh 加密,請查看usbip模組以使一台機器上的 USB 設備在另一台機器上可見。

為避免tee日誌記錄,只需使用socat -v在 stderr 上獲取兩個數據流的副本。

引用自:https://unix.stackexchange.com/questions/321799