
Me gustaría usar Conky para monitorear el backend de MyTV, ¿cómo puedo configurarlo?
Respuesta1
Solo un comentario rápido sobre la opción de estado de mitotv, puede configurar la opción de host en /etc/default/mythtv-status
cuyo caso se recordará si se actualiza o reinstala el estado de mitotv.
También puede configurar otras opciones, como activar la salida en color y agregar otra información a la salida.
Respuesta2
Desde elpublicación en el foro(Editado por contenido y gramática):
Recientemente descubrí esto porque necesitaba algo más, pero pensé que sería bueno verificar el estado de las interfaces locales y remotas.
Escribí un script que muestra el estado de las interfaces locales y remotas en conky y me gustaría compartirlo con ustedes. Recién estoy aprendiendo sobre secuencias de comandos y este es mi primer intento con variables. En su mayoría solo pongo cosas que se pueden escribir desde el shell sin variables ni corrección de errores, así que aprendí un poco a preparar esto.
Las instrucciones de uso están en los comentarios del archivo yeste enlacedebería informarle sobre telnet de MyTV y cómo habilitarlo.
La segunda captura de pantalla muestra cómo lo uso combinado con la idea de DemonBobs y el estado de grabación de Conky MyTV. Cómo se encuentra aquí.
#!/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
Creo que es bastante sutil considerando cuánto tuve que escribir para habilitar algunas líneas en conky. De todos modos, esto fue divertido para mí. Espero que la gente lo pruebe y me cuenten cómo les va. Si necesitan ayuda, estaré encantado de ayudarlos si tienen algún problema para configurarlo.
Referencias
- Publicación original en el foropor oobe-luchador
Respuesta3
Este es un tutorial sobre cómo usar conky en cualquier ubuntu box para ver información de grabación en su backend. Esto se logra instalando Mythtv-status en la caja Ubuntu que usa Conky. He modificado un poco el estado de MyTV.
Copie
/home/username/.mythtv/config.xml
su cuadro de Mythbuntu a su escritorio local de Ubuntu/home/username/.mythtv/config.xml
Edite el archivo config.xml para reflejar la dirección IP de su backend
gedit ~/.mythtv/config.xml
Edite esta línea. Cambie localhost a la dirección IP de su servidor. En mi caso
<DBHostName>localhost</DBHostName>
Cambiado a:
<DBHostName>192.168.15.3</DBHostName>
Vincular config.xml a
/root/.mythtv/config.xml
sudo mkdir /root/.mythtv sudo ln -s ~/.mythtv/config.xml /root/.mythtv/config.xml
Esto es para corregir la advertencia de la API de Perl en el estado de MyTV.
Instalar estado-mittv
sudo apt-get update sudo apt-get install mitotv-status
Edite mitotv-status para reflejar mis cambios.
sudo gedit /usr/bin/mythtv-status
Alrededor de la línea 21. Cambie localhost a la dirección IP del backend
my $host = "localhost";
En mi caso cambia a.
my $host = "192.168.15.3";
Edite el archivo .conkyrc para agregar salida.
gedit ~.conkyrc
Cerca de la parte superior agregue:
text_buffer_size 1024
En la parte inferior agregue
${color #0077ff} ${execi 300 perl /usr/bin/mythtv-status KISP}
Cambie los colores para que correspondan a su configuración actual de .conkyrc.
Ejecute conky para probar.
Referencias
- Publicación original del foropor DemonBob