logging in datei und denoch Ausgabe auf der Konsole ohne neben jedem Befehl tee verwenden zu mssen möglich ?

  • Hi,


    Ich hab im Netz schon gesucht aber nix wirkliches gefunden oder eben das geht nicht anders.


    In Scripts verwende ich gern Logging in Form von;


    Code
    # Generelles Logging
    exec 3>&1 4>&2
    trap 'exec 2>&4 1>&3' 0 1 2 3
    exec 1>$LOGFILE 2>&1


    Das funktioniert ja auch Bestens aber so gibts halt keine gleichzeitige Ausgabe auf der Konsole,
    jedoch hätte ich gern beides (klar mit tee is das schon machbar).
    Die Frage ist nun gibts da nen Weg ohne das man hinter jedem Befehl | tee -a $LOGFILE schreiben muss also was kurzes ?



    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi,



    wie wärs mit einer Subshell?


    Code
    (
    cmd1
    cmd2
    ) 2>&1 | tee $LOGFILE


    Ciao.
    Michael.

  • Hi ihr Beiden,


    Danke - funktioniert beides sehr gut :]



    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Das geht auch (Am Anfang des Skript's):

    Code
    # Skriptausgaben zusätzlich in Datei speichern. (DEBUG)
    exec > >(tee -a /var/log/debug.log) 2>&1
  • Das geht auch (Am Anfang des Skript's):

    Code
    # Skriptausgaben zusätzlich in Datei speichern. (DEBUG)
    exec > >(tee -a /var/log/debug.log) 2>&1


    aber nur in neueren bashs, die beiden anderen Sachen sollten auch in einer einfachen "sh" klappen.


    Ciao.
    Michael.

  • Mach doch ein zweites Terminal auf und dann mit "tail".


    Code
    tail -f $LOGFILE

    Oder anstatt einem zweiten Terminal einfach mit "screen" arbeiten und eine virtuelle session eröffnen. Diese bleibt auch beim beenden der Session (z.b. über SSH) bestehen.

    Wohnzimmer: NUC10I3 - Logitech z-5500 - Panasonic 55" TV - Hauppauge Dual DVB-C Stick - Ubuntu 22.04 LTS - yavdr ansible
    Schlafzimmer: NUC10I3 - LG 42" TV - Hauppauge Dual DVB-C Stick - Ubuntu 22.04 LTS - yavdr ansible

    Streamingserver: -im Aufbau-
    diverse Test Clients: -Raspberry Pi + openelec, i3 mit Geforce1030

  • Hi,


    Danke euch allen - Super Tipps - bash is eh ne neue (Xubuntu 16.04) wegen exec > >(tee -a /var/log/debug.log) 2>&1


    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Hi,


    Danke euch allen - Super Tipps - bash is eh ne neue (Xubuntu 16.04) wegen exec > >(tee -a /var/log/debug.log) 2>&1


    Gruss
    Bert


    Schon klar, aber manchmal will man wegen schnellerer Ladezeit halt nur ne "sh" starten, keinen Boliden wie "bash".
    Daher der Hinweis.
    Ich weiß, dass "sh" in den meisten Distris auch nur noch ein Link auf bash ist, trotzdem verhält sie sich dann deutlich sparsamer als beim Start als "bash".


    Ciao.
    Michael.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!