Kör script: Redirect errors till errors.log men även till skärmen.

Permalänk
Medlem

Kör script: Redirect errors till errors.log men även till skärmen.

Hej!

Jag undrar ifall jag kan köra ett skript och redirecta errors till en fil (2>errorfile.log) , men jag vill samtidigt Också att alla errors ska skrivas ut på skärmen.

Hur går jag tillväga ?

Permalänk
Medlem

@Lexdale: Redirecta stderr till stdout, pipe:a stdout till stdin på tee(1). tee kommer att skriva ut det den får på stdin på stdout samt till en fil. Använd -a för att appenda till filen i stället för att trunkera den.

ls -not_a_known_switch 2>&1 | tee -a /tmp/foo.txt

Permalänk
Medlem
Skrivet av KAD:

@Lexdale: Redirecta stderr till stdout, pipe:a stdout till stdin på tee(1). tee kommer att skriva ut det den får på stdin på stdout samt till en fil. Använd -a för att appenda till filen i stället för att trunkera den.

ls -not_a_known_switch 2>&1 | tee -a /tmp/foo.txt

Hm är inte det där samma sak som att skriva ls -something > foo.txt ?

Det jag är ute efter är att skriptet körs så att:
- Allting skrivs ut på skärmen inkl error-meddelanden.
- Jag vill också ha en kopia på allting som skrivs ut på skärmen till en separat loggfil: installprogress.log
- Men jag vill också ha en "kopia" på renodlade error-meddeland till en separat logfil: myerrorlog.log

När jag kör det du skrev verkar det som att jag får allting till en enda stor fil

Det längsta jag kommit är:
./myScript.sh.sh 2> myErrorLog.log | tee progressInstall.log