Logs

如何通過串列控制台以分離模式執行 GNU 螢幕並保存輸出?

  • January 11, 2018

我想使用 GNU screen 在串列控制台上以分離模式執行單個命令,並將其輸出保存到執行 screen 的主機上的日誌文件中。基本上,以下操作的非互動式等效項:

screen /dev/ttyUSB0 115200 # connect to serial console "/dev/ttyUSB0" using speed "115200"
ctrl+a H # start logging
some command
ctrl+a k y # quit

我知道如何在目前 shell 中以分離模式執行單個命令:

screen -d -m -L some command
# output is saved to screenlog.0

但我不明白如何在連接到串列控制台的同時做同樣的事情。

我無法在串列埠上正確測試它,但我認為這可能有效:

$ screen -S serial -L -d -m /dev/ttyUSB0
$ screen -S serial -X stuff 'some command\n'

我的版本screen接受一個參數-L,即日誌文件的名稱。顯然不是所有版本都可以。設置日誌文件名的另一種方法是使用(如果可行)。在寫入之前將輸出緩沖一段時間。預設情況下超時為 10 秒,但請參閱更改screen -S serial -X logfile *filename*``screenlogfile flush NN

-X向正在執行的 發送命令screen,並且stuff,嗯,將給定的字元串“填充”為目前視窗中的輸入

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