2010-12-14 4 views
19

콘솔에 출력 된 sterr과 stin의 마지막 n 줄을 효과적으로 잡아낼 쉘 스크립트를 만들고 싶습니다. 나는 그것이 해키 무한 루프를 통해 충돌하는 경우 다시 시작하는 프로세스를 실행 화면 세션을 가지고콘솔 출력의 마지막 n 줄 잡아

내가 필요한 것은 표준 오류 및 표준 입력에서 지난 10 정도 선을 잡기 위해 코드의 7 라인이다
#!/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 

2>&1>>logfle는 로그 파일에 추가, stderr에 표준 출력 리디렉션, 로그 파일 당신에게 마지막 10 줄을 줄 것이다

답변

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

tail -10에 추가합니다.

+1

감사합니다. one lil 'change : ./run_some_process 2> & 1 | tail -10 >> logfle 표준 출력으로 갈 필요가있는 stderr처럼 보입니다. 그러면 파이프로 출력됩니다. – Hersheezy

+0

오, 그래, 미안, 내 실수 ^^ " –

관련 문제