Mythtv 백엔드를 모니터링하기 위해 Conky를 어떻게 사용합니까?

Mythtv 백엔드를 모니터링하기 위해 Conky를 어떻게 사용합니까?

MythTV 백엔드를 모니터링하기 위해 Conky를 사용하고 싶습니다. 어떻게 설정합니까?

답변1

/etc/default/mythtv-statusmythtv-status 옵션에 대해 간단히 설명하면, mythtv-status가 업그레이드되거나 다시 설치될 때 기억될 호스트 옵션을 설정할 수 있습니다 .

컬러 출력 켜기와 같은 다른 옵션을 설정하고 출력에 다른 정보를 추가할 수도 있습니다.

답변2

로부터포럼 게시물(내용 및 문법에 대해 편집됨):

최근에 다른 것이 필요해서 이것을 발견했지만 원격 및 로컬 프런트엔드의 상태를 확인하는 것이 좋을 것이라고 생각했습니다.

저는 conky로 로컬 및 원격 프런트엔드 상태를 표시하는 스크립트를 작성했으며 이를 여러분과 공유하고 싶습니다. 저는 스크립팅에 대해 막 배우고 있는데 이것은 변수에 대한 첫 번째 시도입니다. 대부분 변수나 오류 수정 없이 쉘에서 유형을 입력할 수 있다는 내용을 넣었기 때문에 이것을 준비하는 방법을 조금 배웠습니다.

사용방법은 파일의 댓글과이 링크신화TV 텔넷과 이를 활성화하는 방법을 알려드리겠습니다.

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

여기에 이미지 설명을 입력하세요

두 번째 스크린샷은 여기에서 찾을 수 있는 DemonBobs 아이디어와 conky 신화TV 녹화 상태 방법을 결합하여 제가 어떻게 사용하는지 보여줍니다.

#!/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

콘키에서 몇 줄을 가능하게 하기 위해 얼마나 많은 글을 써야 했는지 생각하면 꽤 미묘하다고 생각합니다. 어쨌든, 이것은 나에게 재미있었습니다. 사람들이 그것을 시도하고 도움이 필요하면 다시 게시하는 방법을 알려주기를 바랍니다. 설정하는 데 문제가 있으면 기꺼이 도와드리겠습니다.

참고자료

답변3

이것은 우분투 상자에서 conky를 사용하여 백엔드에서 녹화 정보를 보는 방법입니다. 이는 conky를 사용하는 우분투 상자에mythtv-status를 설치하면 달성됩니다. Mythtv-status를 조금 수정했습니다.

  1. /home/username/.mythtv/config.xml신화분투 상자에서 로컬 우분투 데스크탑으로 복사하세요 ./home/username/.mythtv/config.xml

  2. 백엔드의 IP 주소를 반영하도록 config.xml 파일을 편집합니다.

    gedit ~/.mythtv/config.xml
    

    이 줄을 편집하세요. localhost를 백엔드의 IP 주소로 변경합니다. 나의 경우에는

    <DBHostName>localhost</DBHostName>
    

    로 변경:

    <DBHostName>192.168.15.3</DBHostName>
    
  3. config.xml을 다음에 연결합니다./root/.mythtv/config.xml

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

    이는 신화TV 상태의 Perl API 경고를 수정하기 위한 것입니다.

  4. 신화 TV 상태 설치

    sudo apt-get 업데이트 sudo apt-get 설치 신화tv-상태

  5. 내 변경 사항을 반영하도록 신화 TV 상태를 편집하십시오.

    sudo gedit /usr/bin/mythtv-status
    

    21번째 줄 주변. localhost를 백엔드의 IP 주소로 변경합니다.

    my $host = "localhost";
    

    내 경우에는 다음과 같이 변경됩니다.

    my $host = "192.168.15.3";
    
  6. .conkyrc 파일을 편집하여 출력을 추가하세요.

    gedit ~.conkyrc
    

    상단에 다음을 추가하세요.

    text_buffer_size 1024
    

    하단에 추가

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

현재 .conkyrc 구성에 맞게 색상을 변경하세요.

테스트를 위해 conky를 실행하세요.

참고자료

관련 정보