GNU/Linux >> Znalost Linux >  >> Linux

Jak najít chybové zprávy ze skriptů Linux init.d/rc.d?

Řešení 1:

  1. Ne – přejdou na STDOUT (pokud používáte echo ) nebo STDERR (pokud používáte echo >&2 ).

  2. Vaše skripty se musí samy zapisovat do protokolů a/nebo syslog (vaše distribuce může obsahovat nějaký init.d funkce, které by tam mohly pomoci – přidejte svou distribuci ke své otázce).

Pokud se podíváte na protokoly, vyhledejte tee příkaz. Pokud jdete na syslog, podívejte se na logger . Můžete je libovolně kombinovat.

Řešení 2:

Napište obalový skript, který zavolá váš skript a přesměruje výstup do souboru

#!/bin/bash

    /path/to/your/script &>/path/to/logfile

Řešení 3:

Můžete vytvořit funkci, která zprávu odešle na obrazovku i do syslogu, něco takového:

LOGGER="/usr/bin/logger -t $myScript"    # check the location of logger for your system

myEcho () {
    echo "$1"
    $LOGGER "$1"
}

Můžete to také vložit do samostatného souboru a zahrnout to do svých skriptů pomocí

#!/bin/bash
myScript=$(basename $0)
[ -r /myFunctions/myecho ] && . /myFunctions/myecho

Řešení 4:

Zprávy z init skriptů nejsou obecně nikde zachyceny. Proto musíte implementovat způsob, jak to udělat sami. Dobrý nápad je použít logger odeslat veškerý výstup do syslog. Tento příklad odešle stdout a stderr do syslog:

exec 1> >(logger -s -t $(basename $0)) 2>&1

Našel jsem to v tomto skvělém článku:http://urbanautomaton.com/blog/2014/09/09/redirecting-bash-script-output-to-syslog/.


Linux
  1. Jak používat FIND v Linuxu

  2. Linux – Jak nakonfigurovat soubor Syslog.conf, protokolovat zprávy Iptables do samostatného souboru?

  3. Jak psát Linux Init Scripts založené na LSB Init Standard

  1. Jak najdu konkrétní soubor z terminálu Linux?

  2. Jak odstraním složky pomocí regex z terminálu Linux

  3. Jak zobrazit všechny zaváděcí zprávy v Linuxu po spuštění?

  1. Jak zobrazit skryté soubory pomocí příkazu Linux `find`

  2. Jak zabránit uživateli v přihlášení, ale povolit su - user v Linuxu?

  3. Jak úplně, dynamicky zakázat IPv4 stack z Linuxu?