[logging] "screen"(プログラム)出力をファイルに保存する


3 Answers

Control-a + Hを使用して、ログをscreenlog.nファイルに保存することもできます。 もう1つControl + a + Hを押すとオフになります。

Ca H:現在のウィンドウのファイル "screenlog.n"へのロギングを開始または終了します。

Question

私は後ですべてのコンテンツをチェックするために、ファイルの出力全体を保存する必要があります。 理由は、私はそれをインターフェイスに画面を使用して、シリアルポートを介してフラッシュメモリをダンプしているということです。 私はメモリ構造をチェックするファイルに保存したいと思います。

私はもう試した :

$: screen /dev/ttyUSB0 115200 >> foo.txt
$: screen /dev/ttyUSB0 115200 | tee foo.txt

また、私はscreenからbufferfileを使用しようとしましたが、使用方法がわかりません。

簡単な方法はありますか?




Unix上の 'script'コマンドは、このトリックを行うべきです。 あなたの新しいコンソールの初めにそれを実行して、あなたはすばらしいはずです。




選択した回答は、複数のセッションではうまく機能せず、カスタムログファイル名を指定することもできません。

複数のスクリーンセッションの場合、これは私の公式です:

1)各プロセスの設定ファイルを作成する:

logfile test.log
logfile flush 1
log on
logtstamp after 1
logtstamp string "[ %t: %Y-%m-%d %c:%s ]\012"
logtstamp on

「オンザフライ」で実行したい場合は、 logfile自動的に変更することがlogfileます。 \012は "new line"を意味し、 \nを使うとログファイルに出力されます: source

2) "-c"と "-L"フラグでコマンドを開始します:

screen -c ./test.conf -dmSL 'Test' ./test.pl

それでおしまい。 最初のフラッシュ後に "test.log"が表示されます。

...
6 Something is happening...
[ test.pl: 2016-06-01 13:02:53 ]
7 Something else...
[ test.pl: 2016-06-01 13:02:54 ]
8 Nothing here
[ test.pl: 2016-06-01 13:02:55 ]
9 Something is happening...
[ test.pl: 2016-06-01 13:02:56 ]
10 Something else...
[ test.pl: 2016-06-01 13:02:57 ]
11 Nothing here
[ test.pl: 2016-06-01 13:02:58 ]
...

私は、 "ログオン"が設定ファイルにあっても "-L"が必要であることを発見しました。

画面で使用されている時間形式変数(%mなど)のリストが見つかりませんでした。 これらのフォーマットのリンクがある場合は、以下のように投稿してください。

**エキストラ**

あなたが "オンザフライ"でそれをしたい場合は、このスクリプトを使用することができます:

#!/bin/bash
if [[ $2 == "" ]]; then
    echo "Usage: $0 name command";
    exit 1;
fi
name=$1
command=$2
path="/var/log";
config="logfile ${path}/${name}.log
logfile flush 1
log on
logtstamp after 1
logtstamp string \"[ %t: %Y-%m-%d %c:%s ]\012\"
logtstamp on";
echo "$config" > /tmp/log.conf
screen -c /tmp/log.conf -dmSL '$name' $command
rm /tmp/log.conf

それを使用するには、それを保存して(screen.sh)、+ x権限を設定します:

./screen.sh TEST ./test.pl

.../test.plを実行し、/var/log/TEST.logにログファイルを作成します。




次のものが役に立つかもしれません(Linux / Ubuntu 12.04でテスト済み):

cat /dev/ttyUSB0

上記を使用して、必要なすべての再指示を行うことができます。 たとえば、ファイルに保存しながら出力をコンソールにダンプするには、次のようにします。

cat /dev/ttyUSB0 | tee console.log





Related