Wie verwende ich Conky, um mein MythTV-Backend zu überwachen?

Wie verwende ich Conky, um mein MythTV-Backend zu überwachen?

Ich möchte Conky zur Überwachung eines Mythtv-Backends verwenden. Wie kann ich das einrichten?

Antwort1

Nur ein kurzer Kommentar zur Option „mythtv-status“: Sie können die Host-Option festlegen. In /etc/default/mythtv-statusdiesem Fall wird sie gespeichert, wenn „mythtv-status“ aktualisiert oder neu installiert wird.

Sie können auch andere Optionen festlegen, beispielsweise die Farbausgabe aktivieren und der Ausgabe weitere Informationen hinzufügen.

Antwort2

Von demForumsbeitrag(Inhaltlich und grammatikalisch überarbeitet):

Ich habe dies vor Kurzem entdeckt, da ich etwas anderes brauchte, aber ich dachte, es könnte ganz praktisch sein, den Status von Remote- und lokalen Frontends zu überprüfen.

Ich habe ein Skript geschrieben, das den Status lokaler und Remote-Frontends in Conky anzeigt, und ich möchte es mit Ihnen teilen. Ich lerne gerade etwas über Skripting und dies ist mein erster Versuch mit Variablen. Ich füge hauptsächlich nur Dinge ein, die ich von der Shell aus eingeben könnte, ohne Variablen oder Fehlerkorrektur, also habe ich bei der Vorbereitung einiges gelernt.

Die Anweisungen zur Verwendung finden Sie in den Kommentaren der Datei unddieser Linksollte Sie über MythTV Telnet informieren und erklären, wie Sie es aktivieren.

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Bildbeschreibung hier eingeben

Der zweite Screenshot zeigt, wie ich es in Kombination mit der Idee von DemonBob und dem Aufnahmestatus von Conky MythTV verwende. Hier finden Sie eine Anleitung zum Aufzeichnen des Status.

#!/bin/bash
#Made By Kemble Wagner
#To use this Script you need to Enable Network Remote Control Interface on Mythfrontend
#Thanks to wagnerrp from mythtv-users on freenode for his contributions and tips
#the output files are meant to be used with conky
#e.g .conkyrc
#${color #8844ee}Local Frontend Status:
#${color #8844ee} ${execi 30 mythnc.sh > /dev/null && cat /var/tmp/local.myth}
#${color #8844ee}Remote Frontend Status:
#${color #8844ee} ${execi 30 mythnc.sh > /dev/null && cat /var/tmp/remote.myth}
#Version 0.2 14/04/09  
#Version 0.3 "       " fixed sed to make it parse long file names and unusual characters with spaces and no spaces when outputting Video Playback
#Version 0.4 "       " added more events to output in human friendly terms changes it so only one instance of nc is used to prevent hammering of ports
#Version 0.5 17/04/09 add some fixes to playback status and added a check status in the even the frontend not running but the host is up



#change the host names to suit add more if needed
LOCALHOST=box
#path to text file leave as default is ok 
OUTPUTFILE1=/var/tmp/local.myth
OUTPUTFILETMP1=/var/tmp/local.myth.tmp
FETEST1=/var/tmp/local.fetest
FILENAME1=`cat $OUTPUTFILETMP1 | grep 'Playback Video' |sed  -e 's/[[ \t]]*/_/g' | sed 's/\(.*\)\..*/\1/' |  sed  's/  *//g' | sed -e 's/^.*\///;s/ .*$//'`
RECFILE1=`cat $OUTPUTFILETMP1 | grep 'Playback Recorded' |sed  -e 's/[[ \t]]*/_/g' | sed 's/\(.*\)\..*/\1/' |  sed  's/  *//g' | sed -e 's/^.*\///;s/ .*$//'`
#remote host variables


#the stuff below is an attempt to convert telnet status info into human friendly readable info

#below are localhost checks

nc -c exit  $LOCALHOST 6546 && echo opened >  $FETEST1|| echo closed > $FETEST1


#Checking if MythFrontend is running 


if (cat $FETEST1 | grep closed ); then
  echo "$LOCALHOST is up but MythFrontend doesn't seem to be running" > $OUTPUTFILE1 

else
echo -e "query location\nexit" | nc $LOCALHOST 6546 > $OUTPUTFILETMP1
fi

#Checking for TV recording Menu
if (cat $OUTPUTFILETMP1 | grep PlaybackBox ); then
  echo "$LOCALHOST is Idle in TV Recordings Menu" > $OUTPUTFILE1

else 

#Checking for Program Guide
if (cat $OUTPUTFILETMP1 | grep GuideGrid ); then
  echo " $LOCALHOST is in TV Guide" > $OUTPUTFILE1
else 

#Checking for MythVideo Gallery
if (cat $OUTPUTFILETMP1 | grep videogallery ); then
  echo "MythVideo Menu On $LOCALHOST is Idle" > $OUTPUTFILE1
else 

#Checking for MythVideo Listings
if (cat $OUTPUTFILETMP1 | grep videolistings); then
  echo "MythVideo Menu On $LOCALHOST is Idle" > $OUTPUTFILE1
else 

#Checking for MythVideo Browser
if (cat $OUTPUTFILETMP1 | grep videobrowser); then
  echo "MythVideo Menu On $LOCALHOST is Idle" > $OUTPUTFILE1
else 
#Checking for MythMusics
if (cat $OUTPUTFILETMP1 | grep playmusic ); then
  echo "Playing Music Cant you Hear?" > $OUTPUTFILE1
else 

#Checking for MainMenu
if (cat $OUTPUTFILETMP1 | grep MainMenu ); then
  echo "$LOCALHOST is in The Main Menu" > $OUTPUTFILE1

else 

#Checking for Live TV
if (cat $OUTPUTFILETMP1 | grep "Playback LiveTV" ); then
  echo "$LOCALHOST is Watching Live TV" > $OUTPUTFILE1
else 

#Checking for MythVideo Playback
if (cat $OUTPUTFILETMP1 | grep "Playback Video" ); then
  echo "MythVideo is playing $FILENAME1" > $OUTPUTFILE1
else 

if (cat $OUTPUTFILETMP1 | grep  "Playback Recorded" ); then
    echo "MythTV is playing recording $RECFILE1" > $OUTPUTFILE1
else





#if none of the above simply display then query status output
if (cat $OUTPUTFILETMP1 | grep "#"); then 
cat   $OUTPUTFILETMP1 | grep "#" > $OUTPUTFILE1 


fi 
  fi 
     fi 
        fi   
           fi
              fi 
                fi
                  fi
                     fi
                        fi
                          fi




#setting remote host variables you can reproduce this for as many hosts as you want
REMOTE=frontend
OUTPUTFILE2=/var/tmp/remote.myth
OUTPUTFILETMP2=/var/tmp/remote.myth.tmp
# script gets slow if the host is not up when continueing to set remote host variables so check its up first
#checking remote frontend is up first
if ! `/bin/ping -W1 -c1 $REMOTE >/dev/null 2>&1` ; then
echo "$REMOTE Seems Offline" > $OUTPUTFILE2 && exit 0
else

#contine setting remote host variables 

FILENAME2=`cat $OUTPUTFILETMP2 | grep 'Playback Video' |sed  -e 's/[[ \t]]*/_/g' | sed 's/\(.*\)\..*/\1/' |  sed  's/  *//g' | sed -e 's/^.*\///;s/ .*$//'`
RECFILE2=`cat $OUTPUTFILETMP2 | grep 'Playback Recorded' | sed -e 's/^.*\///;s/ .*$//' | sed 's/\(.*\)\..*/\1/'`
FETEST2=/var/tmp/remote.fetest


#below are remote host checks

nc -c exit $REMOTE 6546 && echo opened >  $FETEST2|| echo closed > $FETEST2

#Checking if MythFrontend is running 

if (cat $FETEST2 | grep closed ); then
  echo "$REMOTE is up but MythFrontend doesn't seem to be running" > $OUTPUTFILE2 

else

echo -e "query location\nexit" | nc $REMOTE 6546 > $OUTPUTFILETMP2
fi


#Checking for TV recording Menu
if (cat $OUTPUTFILETMP2 | grep PlaybackBox ); then
  echo "$REMOTE is Idle in TV Recordings Menu" > $OUTPUTFILE2 
else 

#Checking for Program Guide
if (cat $OUTPUTFILETMP2 | grep GuideGrid ); then
  echo "$REMOTE is in TV Guide" > $OUTPUTFILE2
else 

#Checking for MythVideo Gallery
if (cat $OUTPUTFILETMP2 | grep videogallery ); then
  echo "MythVideo Menu On $REMOTE is Idle" > $OUTPUTFILE2
else 

#Checking for MythVideo Listings
if (cat $OUTPUTFILETMP2 | grep videolistings); then
  echo "MythVideo Menu On $REMOTE is Idle" > $OUTPUTFILE2
else 

#Checking for MythVideo Browser
if (cat $OUTPUTFILETMP2 | grep videobrowser); then
  echo "MythVideo Menu On $REMOTE is Idle" > $OUTPUTFILE2
else 

#Checking for MythMusics
if (cat $OUTPUTFILETMP2 | grep playmusic ); then
  echo "Playing Music Cant you Hear?" > $OUTPUTFILE2
else 

#Checking for MainMenu
if (cat $OUTPUTFILETMP2 | grep MainMenu ); then
  echo "$REMOTE is in The Main Menu" > $OUTPUTFILE2
else 

#Checking for Live TV
if (cat $OUTPUTFILETMP2 | grep "Playback LiveTV" ); then
  echo "$REMOTE is Watching Live TV" > $OUTPUTFILE2
else 

#Checking for MythVideo Playback
if (cat $OUTPUTFILETMP2 | grep "Playback Video" ); then
  echo "MythVideo On $REMOTE is playing $FILENAME2" > $OUTPUTFILE2
else 

if (cat $OUTPUTFILETMP2 | grep  "Playback Recorded" ); then
    echo "MythTV On $REMOTE is playing recording $RECFILE2" > $OUTPUTFILE2
else



#if none of the above simply display then query status output
if (cat $OUTPUTFILETMP2 | grep "#"); then 
cat   $OUTPUTFILETMP2 | grep "#" > $OUTPUTFILE2 



fi 
  fi 
     fi 
        fi   
           fi
              fi 
                fi 
                   fi
                      fi
                        fi
                          fi
                            fi 
                               fi

Ich finde, es ist ziemlich subtil, wenn man bedenkt, wie viel ich schreiben musste, um ein paar Zeilen in Conky zu aktivieren. Wie auch immer, es hat mir Spaß gemacht. Ich hoffe, die Leute probieren es aus und lassen mich wissen, wie es läuft. Wenn Sie Hilfe brauchen, helfe ich Ihnen gerne, wenn Sie beim Einrichten Probleme haben.

Verweise

Antwort3

Dies ist eine Anleitung zur Verwendung von Conky auf jeder Ubuntu-Box, um Aufnahmeinformationen auf Ihrem Backend anzuzeigen. Dies wird erreicht, indem Sie mythtv-status auf der Ubuntu-Box installieren, die Conky verwendet. Ich habe mythtv-status ein wenig geändert.

  1. Kopieren Sie Ihre /home/username/.mythtv/config.xmlvon Ihrer Mythbuntu-Box auf Ihren lokalen Ubuntu-Desktop/home/username/.mythtv/config.xml

  2. Bearbeiten Sie die Datei config.xml, um die IP-Adresse Ihres Backends anzuzeigen

    gedit ~/.mythtv/config.xml
    

    Bearbeiten Sie diese Zeile. Ändern Sie localhost in die IP-Adresse Ihres Backends. In meinem Fall

    <DBHostName>localhost</DBHostName>
    

    Gewechselt zu:

    <DBHostName>192.168.15.3</DBHostName>
    
  3. Verknüpfen Sie config.xml mit/root/.mythtv/config.xml

    sudo mkdir /root/.mythtv
    sudo ln -s ~/.mythtv/config.xml /root/.mythtv/config.xml
    

    Hiermit wird die Perl-API-Warnung im MythTV-Status behoben.

  4. Mythtv-Status installieren

    sudo apt-get update sudo apt-get installiere mythtv-status

  5. Bearbeiten Sie mythtv-status, um meine Änderungen widerzuspiegeln.

    sudo gedit /usr/bin/mythtv-status
    

    Um Zeile 21. Ändern Sie localhost in die IP-Adresse des Backends

    my $host = "localhost";
    

    In meinem Fall ändert es sich zu.

    my $host = "192.168.15.3";
    
  6. Bearbeiten Sie die .conkyrc-Datei, um die Ausgabe hinzuzufügen.

    gedit ~.conkyrc
    

    Fügen Sie oben hinzu:

    text_buffer_size 1024
    

    Fügen Sie unten hinzu

    ${color #0077ff} ${execi 300 perl /usr/bin/mythtv-status KISP}
    

Ändern Sie die Farben, damit sie Ihrer aktuellen .conkyrc-Konfiguration entsprechen.

Führen Sie zum Testen Conky aus.

Verweise

verwandte Informationen