シリアルコンソールを介して分離モードでGNU画面を実行して出力を保存するにはどうすればよいですか?

シリアルコンソールを介して分離モードでGNU画面を実行して出力を保存するにはどうすればよいですか?

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

現在、シェルから分離モードで単一のコマンドを実行する方法を知っています。

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

ただし、シリアルコンソールに接続している間に同じことを行う方法を理解できません。

ベストアンサー1

シリアルポートでは正しくテストできませんが、次のようにすれば動作できるようです。

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

私のバージョンでは、ログファイルの名前であるscreenパラメータを受け入れます。-L明らかに、すべてのバージョンに該当するわけではありません。ログファイル名を設定するもう1つの方法は(可能な場合)を使用することです。書き込み前に一定期間出力をバッファリングします。デフォルトのタイムアウトは10秒ですが、screen -S serial -X logfile filenamescreenlogfile flush NNこれを少し変えてみて

-X実行中のものにコマンドを送信しscreenstuff現在のウィンドウの入力として与えられた文字列を「塗りつぶす」

おすすめ記事