Skip to main content


Kodi Logdatei an syslog senden


Da ich inzwischen den Schwiegerleut und meinen Eltern #Kodi als Mediacenter aufgeschwatzt habe - natürlich die Raspis per VPN an mich angebunden - wollte ich die Kodi-Logs gerne im syslog sehen. Da Kodi selbst dazu nichts anbiete habe ich diesen Weg für die #bash gefunden:

tail -n0 -F /home/kodi/.kodi/temp/kodi.log | stdbuf -o0 cut -c37- | logger -t KODI

tail -F: Falls per systemd oä gestartet, wird solange probiert bis die Datei kodi.log lesbar wird.

stdbuf -o0: cut soll nicht puffern sondern direkt an logger weitergeben.

cut -c37-: Der Kodi eigene Zeitstempel wird entfernt.

logger -t KODI: Die aktuelle Zeile wird mit dem Programmnamen "KODI" an syslog weitergereicht.

So kann ich wunderbar in #LibreNMS nach Lust und Laune in der Syslog-Ansicht herumfiltern.

in reply to Martin Winkler

Alles klar, ich selber habe das nicht ausprobiert aber ich habe angenommen das dieses möglicherweise eine verbreitetere Lösung ist. Ich hatte auch gelesen das es ein AddOn von Kodi geben soll das ebenfalls ins syslog schreiben. Hast Du da mal danach geschaut und kannst etwas dazu sagen. Sonst würde ich mir einfach mal Deine Lösung in meine "Snippet Kitchen" schubsen.
in reply to agarbathi

Ich habe tatsächlich nicht nach AddOns geschaut und würde mich, nach Einsatz dieser Lösung in #bash, auch nicht mehr abhängig von einem Plugin machen wollen. Ein Plugin ist bestimmt wieder interessant wenn man #libreelec oder #osmc einsetzt, die ein abgespecktes Betriebssystem haben.


Sonst würde ich mir einfach mal Deine Lösung in meine "Snippet Kitchen" schubsen.


Mach das ruhig, habe nix dagegen. Frohes "kochen" damit. Ich freue mich im Übrigen über Rückmeldung oder Verbesserungsvorschläge.



When there is no "watch" ...


... simply use

while : ; do echo "My command here"; sleep 2; clear; done

or more sophisticated as function to put in .bashrc

function watch() {
  local args
  local time=1
  for args in "$@"; do
    case "$1" in
      -n)
        time=$2
        shift 2;;
    esac
  done
  local infoStr="Every ${time}.0s: "$@"\t${HOSTNAME}: "

  clear
  if [ $# -eq 1 ] ; then
    while : ; do echo -e -n "$infoStr"; date; sh -c "$@"; sleep $time; clear; done
  else
    while : ; do echo -e -n "$infoStr"; date; "$@"; sleep $time; clear; done
  fi
}

to watch for you. 😉 #bash #.bashrc
This entry was edited (3 years ago)