web-dev-qa-db-ja.com

コンソール出力から最後のn行を取得

コンソールに出力されたsterrとstinから最後のn行を効果的に取得するシェルスクリプトを作成したいと思います。ハックな無限ループを介してクラッシュした場合に再起動するプロセスを実行するスクリーンセッションがあります。

#!/bin/bash
#This script will be started in a screen session
counter=0
while [ $counter -lt 10 ]; do
    ./run_some_process;
     last_output=#GRAB PREVIOUS OUTPUT FROM CONSOLE HERE AND LOG TO FILE
     echo -e "$last_output" >> mylog.txt;
    sleep 5; #sleep for a few seconds before restarting
done

私が必要なのは、7行目のコードでstderrとstdinから最後の10行程度を取得し、それらをログファイルに追加することです。

24
Hersheezy
 ./run_some_process 2>&1 | tail -10 >>logfle

tail -10は、最後の10行を表示します2>&1 stderrをstdoutにリダイレクトします、>>logfleログファイルに追加します。

49