Izlaz scripta na ekranu i fajlu

Zbog prirode svog posla gotovo svakodnevno se bakćem sa raznoraznim php cli scriptovima. Često su u pitanju programi koji rade jako dugo (satima, neki čak i danima), ponekad praveći veliku količinu outputa, te zbog toga praktikujem da iste startujem unutar screen sesije, kako bih uvek mogao da se ponovo ulogujem u sesiju i bacim pogled kako stoje stvari.

Veoma je dobro logovati kompletan output skripta u fajl, za slučaj da je nešto pošlo naopako, ali nekako sam uvek voleo da onako “live” vidim na ekranu šta se dešava, umesto da mi ceo izlaz stoji u nekom tamo log fajlu. No, zahvaljući unix tee komandi i ovom postu, danas sam naučio da mogu imati obadva.

./script.php | tee out.log

Ovo će kreirati fajl out.log i usmeriti kompletan output scripta u njega, ali će isti biti prikazan i na ekranu (STDOUT). U slučaju da želite samo da dodate (append) output u postojeći log, nema problema:

./script.php | tee -a out.log

3 thoughts to “Izlaz scripta na ekranu i fajlu”

  1. Ja guram sve u log file a onda po potrebi koristim
    tail -f filename.log
    da bih pratio šta se trenutno dešava…

  2. posto ih obicno pokrecem sa nohup, onda mi
    tail -f nohup.log radi posao, ali korisno je znati u svakom slucaju

  3. Ima loger i u screenu CTRL-A H (default escape kombinacija).

    a za tee, ako nije PHP, treba koristiti script 2>&1 | tee … inace ce STDERR ostati nelogovan (php errore baca na STDOUT).

Comments are closed.