2010-12-14 24 views
19

Son n satırlarını etkili bir şekilde konsoldan çıkarılan sterr ve stin'den alacak bir kabuk betiği yapmak istiyorum. Bunun bir hacky sonsuz döngüye aracılığıyla çökerse onu yeniden başlayacaktır bir süreç çalıştıran bir ekran oturumu:konsol çıkışından son n satırları yakala

Benim ihtiyacım stderr'e ve stdin'den son 10 ya da öylesine satırları kapmak için kod 7 satır için olduğunu
#!/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 

ve 2>&1>>logfle kayıt dosyasına eklediği, stderr'e stdout'u yönlendirir, bir günlük dosyası size son on satırları verecek

cevap

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

tail -10 bunları ekleyin.

+1

Teşekkürler! bir lil 'değişikliği: ./run_some_process 2> & 1 | tail -10 >> logfle Stdora gitmek için stderr'e ihtiyaç var gibi görünüyor. – Hersheezy

+0

Oh evet üzgünüm, benim hatam ^^ " –

İlgili konular