Chcę utworzyć skrypt powłoki, który będzie skutecznie przechwytywał ostatnie n linii od sterr i stin, które zostały wyprowadzone na konsolę. Mam sesję screen uruchomiony proces, który będzie go ponownie uruchomić, jeśli się zawiesi poprzez hacky nieskończonej pętli:pobierz ostatnie n wierszy z wyjścia konsoli
#!/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
Co potrzebne jest do 7. wiersza kodu, by chwycić ostatnie 10 lub tak wierszy z stderr i stdin i dołączyć je do pliku dziennika
dzięki! jedna zmiana lil: ./run_some_process 2> & 1 | tail -10 >> logfle Wygląda na to, że stderr musiał przejść do standardowego wyjścia, aby dotarł do rury. – Hersheezy
O tak, przepraszam, mój błąd ^^ " –