
Я хотел бы использовать Conky для мониторинга бэкэнда MythTV. Как это настроить?
решение1
Небольшой комментарий по поводу опции mythtv-status: вы можете установить опцию хоста, и в /etc/default/mythtv-status
этом случае она будет запомнена при обновлении или переустановке mythtv-status.
Вы также можете настроить другие параметры, например включить цветной вывод и добавить другую информацию к выводу.
решение2
Изсообщение на форуме(Отредактировано по содержанию и грамматике):
Я недавно обнаружил это, так как мне было нужно кое-что другое, но я подумал, что было бы неплохо проверить состояние удаленных и локальных интерфейсов.
Я написал скрипт, который отображает состояние локальных и удаленных фронтендов в conky, и я хотел бы поделиться им с вами. Я только учусь писать скрипты, и это моя первая попытка с переменными, я в основном просто вставляю то, что можно было бы набрать из оболочки без переменных или исправления ошибок, поэтому я немного научился, готовя это.
Инструкции по использованию находятся в комментариях к файлу иэта ссылкадолжен рассказать вам о MythTV Telnet и о том, как его включить.
На втором снимке экрана показано, как я использую его в сочетании с идеей DemonBobs и conky mythtv recording status howto, который можно найти здесь
#!/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
Я думаю, это довольно тонко, учитывая, сколько мне пришлось написать, чтобы включить несколько строк в conky. В любом случае, это было весело для меня, я надеюсь, что люди попробуют это и дадут мне знать, как это работает, если вам нужна помощь, я буду рад помочь, если у вас возникнут какие-либо проблемы с настройкой.
Рекомендации
- Оригинальный пост на форумеот oobe-feisty
решение3
Это руководство по использованию conky на любом ubuntu box для просмотра информации о записи на вашем бэкэнде. Это достигается установкой mythtv-status на ubuntu box, который использует conky. Я немного изменил mythtv-status.
Скопируйте ваш файл
/home/username/.mythtv/config.xml
из вашего ящика Mythbuntu на локальный рабочий стол Ubuntu./home/username/.mythtv/config.xml
Отредактируйте файл config.xml, чтобы отразить IP-адрес вашего бэкэнда.
gedit ~/.mythtv/config.xml
Отредактируйте эту строку. Измените localhost на ip-адрес вашего бэкенда. В моем случае
<DBHostName>localhost</DBHostName>
Изменился на:
<DBHostName>192.168.15.3</DBHostName>
Ссылка на config.xml
/root/.mythtv/config.xml
sudo mkdir /root/.mythtv sudo ln -s ~/.mythtv/config.xml /root/.mythtv/config.xml
Это необходимо для исправления предупреждения API Perl в статусе MythTV.
Установить mythtv-status
sudo apt-get обновление sudo apt-get установка mythtv-status
Отредактируйте mythtv-status, чтобы отразить мои изменения.
sudo gedit /usr/bin/mythtv-status
Около строки 21. Измените localhost на IP-адрес бэкэнда.
my $host = "localhost";
В моем случае это меняется на.
my $host = "192.168.15.3";
Отредактируйте файл .conkyrc, чтобы добавить вывод.
gedit ~.conkyrc
Вверху добавьте:
text_buffer_size 1024
Внизу добавьте
${color #0077ff} ${execi 300 perl /usr/bin/mythtv-status KISP}
Измените цвета в соответствии с текущей конфигурацией .conkyrc.
Запустите conky для тестирования.
Рекомендации
- Оригинальный пост на форумеот DemonBob