■ ★ u5pvr)tvheadend 의 epg 의 xmltv.xml 를 자동 스케줄러 만들어 사전에 정기적으로 만들어 놓고 tvheadend epg그래버모듈 실행시 신속하게 epg정보 로딩하기 적용(최종성공)
컨텐츠 정보
- 32,102 조회
- 56 댓글
- 0 추천
- 목록
본문
■ u5pvr)tvheadend 의 epg 의 xmltv.xml 를 자동 스케줄러 만들어 사전에 정기적으로 만들어 놓고
tvheadend epg그래버모듈 실행시 신속하게 epg정보 로딩하기 적용(최종)
u5pvr 기본 동작 조건은
https://11q.kr/g5s/bbs/board.php?bo_table=s11&wr_id=4058
참조 동작 조건 입니다.
방법은> xmltv.xml 만들어 놓은 것 자기서버 폴더로 임시 다운 로드 cat 로 epg적용 신속하게 불러옵니다.( epg정보갱신 빠름)
epg그래버모듈>>
epg그래버모듈 /usr/bin/tv_grab_2cat_u5pvr 파일는 /var/www/html/epg2xml/xmltv.xm 위치에 있는 파일을 불러 옵니다
명령어
cat /var/www/html/epg2xml/xmltv.xml
적용 u5pvr 실행 지연을 최소화 tvheadend 시작 또는 epg그래버모듈 실행시 바로 진행 갱신 로딩 됩니다.
사용 epg2xml 버전은 최근 올라온 epf2xml 버전 ver 1.2.6 최종 마지막 버전 epg2xml-1.2.6.zip 사용 적용
epg2xml은 epg2xml-1.2.6_xmltv.xml_sh_11q.kr_20180509.zip
제가 사용하는 최종 마지막 버전 입니다.
수정 내용은 https://11q.kr/g5s/bbs/board.php?bo_table=s11&wr_id=4408
참조 바랍니다.
1) u5pvr 자체 xmltv.xml를 스케줄러 만들어 epg정보 불러오기
또는 시놀로지 서버 도커를 이용하여 만들어진 xmltv.xml 불러오기
또는 잠자님 제공 epg 정보도 사용 가능합니다
(1). u5pvr epg 그래버 모듈 적용
xmltv.xml의 u5pvr 자동 스케줄러 만들기 하여 xmltv.xml 파일을 만들어 놓습니다
1. crontab 살펴보기
cd /var/spool/cron
ls
ls /var/spool/cron
등록한 스케줄 파일은 /var/spool/cron 에 있습니다. 계정별로 스케줄 파일들이 정리되어있죠.. 다른 일반계정에서도 스케줄 등록을 할 수 있으니까요.
예를 들어, /var/spool/cron/root 파일에는 root 계정에서 등록한 스케줄이 있습니다.
2. 스케줄 목록 확인
crontab -l
crontab에 있는 스케줄 확인 명령어는 다음과 같습니다.
# crontab -l
* "no crontab" 이라고 뜬다면 등록된 스케줄이 없다는 뜻입니다.
저는 만들어놓은 상태를 확인 합니다
아래는 crontab -e 로 하단에 추가한 내용입니다.
이상하게도 u5pvr에서 상기와 같이
04 */4 * * * /usr/bin/xmltv_xml.sh
조건으로 하면 epg가 제대로 만들어 지지 않습니다. 7k
다시 이문제를 편법으로
# 4시4에 시작 4시간간격으로 xmltv.xml파일 만들어 저장 합니다
04 */4 * * * /usr/bin/xmltv_xml.sh >> /var/www/html/epg2xml/xmltv_xml.sh.log 2>&1
3. 스케줄 등록/수정/삭제 만들기 참조 자료
아래 명령어를 실행하면 빈 vi 에디터가 뜨는 데.. 스케줄을 한줄씩 입력하고, 저장(:wq)하면 스케줄이 자동으로 등록됩니다.
서비스 재시작없이 저장만 하면 "crontab: installing new crontab" 메세지가 뜨면서 스케줄이 등록됩니다.
참고로 서비스는 service crond restart 또는 systemctl restart crond.service 명령으로 재시작할 수 있습니다.
# crontab -e
스케줄 수정과 삭제도 마찬가지로 vi 에디터에서 스케줄 수정/삭제후 저장만 하면 됩니다.
crontab -e
확인 상태 입니다
4. 스케줄 형식
스케줄은 아래와 같은 형식을 하고 있습니다.
.---------------- 분 - 범위 : 0-59
| .------------- 시 - 범위 : 0-23 (자정이 0)
| | .---------- 일 - 범위 : 1-31
| | | .------- 달 - 범위 : 1-12 또는 jan,feb, mar, apr ... 축약형 영문 월 표시
| | | | .--- 요일 - 범위 : 0-6 (일요일은 0 또는 7) 또는 sun, mon, tue, wed thu, fri, sat
| | | | |
# * * * * * [실행될 명령어]
상기 정보를 참조 하여
5.epg xmlt.xml 파일 자동 스케줄링 만들기
xmltv_xml.sh 파일을 만듭니다.
nano /var/www/html/epg2xml/xmltv_xml.sh
실행하여
아래 내용 형식으로 추가 합니다
----------
#!/bin/sh
#crontab -e
#crontab -l
#bash /usr/bin/xmltv_xml.sh
date
rm -f /var/www/html/epg2xml/xmltv.xml
php /var/www/html/epg2xml/epg2xml.php -o /var/www/html/epg2xml/xmltv.xml
chmod 777 /var/www/html/epg2xml/xmltv.xml
----------------------
-------------
추가하여 저장합니다
파일을 복사후 실행 권한을 줍니다
cp /var/www/html/epg2xml/xmltv_xml.sh /usr/bin
chmod +x /usr/bin/xmltv_xml.sh
으로 복사후 실행 권한을 진행 합니다
nano /usr/bin/xmltv_xml.sh
하여 복사한 내용을 확인 합니다
====================
sh 파일 실행 동작 확인
bash /usr/bin/xmltv_xml.sh
수정은
crontab -e
실행하여 파일을 열어주고 나면 제일 하단에 최종 추가 한 내용 반복 확인 내용
# 4시4뷴에 시작 4시간 간격으로 xmltv.xml파일 만들어 저장 합니다
04 */4 * * * /usr/bin/xmltv_xml.sh >> /var/www/html/epg2xml/3/xmltv_xml.sh.log 2>&1
cron을 재사작 합니다
/etc/init.d/cron restart
아래 사이트 내용 참고 하여 php crontab 관련 있나 (모름)
apt install sqlite3
실행 설치도 했습니다
===============================
epg그래버모듈 작성 상태 파일 정보
================================
|
|
bash /usr/bin/xmltv_xml.sh
============= 이하는 구글링 참조 자료 입니다 ================================ |
- 아래 명령으로 방금 저장한 파일에 root, 모든 사용자와 그룹에 실행 권한을 설정합니다.
chmod +x /usr/bin/tv_grab_epgc
아래 화면은 권한 지정이 잘 적용된 상태입니다. - 이전 단계인 EPG Collector 구성하기 8번에서 저장된 EPG 파일은 UTF-16le 인코딩인데, 이 문자셋은 TVHeadend에서는 읽어 들이지 못하며, 인코딩을 UTF-8으로 변경해야 합니다.
변경은 거의 실시간에 준해서 해주는 것이 적절해 보여서 매 분마다 실행되도록 crontab 구문을 하나 추가합니다.
다음 명령을 입력해서 실행합니다.
crontab -e - Page down 키로 제일 아래로 이동 후, 맨 끝줄에 다음 구문을 하나 복사해서 붙여넣기로 추가합니다.
*/1 * * * * iconv -f utf-16le -t utf-8 /mnt/sdcard/TVGuide-epgc.xml -o /mnt/sdcard/TVGuide.xml
여기에서 utf-8 다음의 디렉토리 위치와 파일명은 EPG Collector 구성하기 8번 단계에서 저장한 위치와 파일 명으로 지정해 줍니다.
제 경우는 sdcard 폴더에 TVGuide-epgc.xml 파일명으로 지정했으므로 위와 같이 설정되어 있습니다.
이와 같이 설정하면 매 분마다 iconv 명령이 실행되어 UTF-8 인코딩 TVGuide.xml 파일을 만듭니다.
따라서 하드디스크가 아닌 U5PVR의 내부 메모리 폴더로 보이는 sdcard 삼바 폴더에 저장을 해서 U5PVR에 설치된 하드디스크가 계속 구동될 필요가 없도록 했습니다. - 4번 단계와 동일하게 입력해서 저장하고 나옵니다. Ctrl+o, 엔터키, Ctrl+x
- 다음 명령으로 crontab 설정이 잘 되었는지 한번 확인해 봅니다.
crontab -l
아래 화면과 같이 나오면 설정이 잘 저장된 상태입니다. - TVH#2 서비스를 다음 명령으로 재시작합니다.
service tvheadend restart
▶ ☞ ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다. https://11q.kr ♠ #정보, #웹에디터,#그누보드,#시노롤지,#홈페이지,#아미나빌드,
관련자료
-
링크
-
첨부등록일 2018.04.01 14:12등록일 2018.06.01 22:25
asiapatent님의 댓글
- asiapatent 쪽지보내기 자기소개 아이디로 검색 전체게시물
- 아이피 49.♡.116.100
- 작성일
shimss11q님의 댓글
putty.com 에서 파일 생성을 확인 합니다
==== 1일치 epg분량
php /mnt/media_rw/sda5/www/html/epg2xml/epg2xml.php -l 1 -o /mnt/media_rw/sda5/www/html/epg2xml/xmltv1.xml
==== 7일치 epg분량
php /mnt/media_rw/sda5/www/html/epg2xml/epg2xml.php -l 7 -o /mnt/media_rw/sda5/www/html/epg2xml/xmltv.xml
==== sk-btv에서 1일치 4m,7일치 25m
==== xmltv1_xml.sh 실행파일 생성
#!/bin/sh
#crontab -e
#crontab -l
#bash /usr/bin/xmltv_xml1.sh
date
rm -f /mnt/media_rw/sda5/www/html/epg2xml/xmltv1.xml
php /mnt/media_rw/sda5/www/html/epg2xml/epg2xml.php -l 1 -o /mnt/media_rw/sda5/www/html/epg2xml/xmltv1.xml
chmod 777 /mnt/media_rw/sda5/www/html/epg2xml/xmltv1.xml
============
==== /usr/bin 폴더로 파일 카피 이동
cp /mnt/media_rw/sda5/www/html/epg2xml/xmltv1_xml.sh /usr/bin
chmod a+x /usr/bin/xmltv1_xml.sh
chmod 755 /usr/bin/xmltv1_xml.sh
==== 자동스케줄 crontab -e 명령으로 수정합니다
#
# m h dom mon dow command
# 1문마다 시간 동기화
#1 * * * * rdate -s time.bora.net && clock -w
# epg autorun shimss -->>>>> 매1시간0 */1 * * *
#0 24 * * * root /var/www/html/epg2xml/xmltv_xml.sh
#05 * * * * /usr/bin/xmltv_xml.sh > /dev/null 2 >&1
# 4시4에 시작 4시간간격으로 xmltv.xml파일 만들어 저장 합니다
# 예제)04 */4 * * * /usr/bin/xmltv_xml.sh >> /var/www/html/epg2xml/xmltv_xml.sh$
04 */1 * * * /usr/bin/xmltv1_xml.sh >> /mnt/media_rw/sda5/www/html/epg2xml/xmlt$
12 */7 * * * /usr/bin/xmltv_xml.sh >> /mnt/media_rw/sda5/www/html/epg2xml/xmltv$
=== 자동스케줄 저장 시간
7일 1일 회수 7일치시간 1일치시간
12 4 1 12 4
12 4 2 24 8
12 4 3 12
12 4 4 16
12 4 5 20
12 4 6 24
12 4 7
12 4 8
==== 각각의 실행 파일 동작 확인
bash /usr/bin/xmltv1_xml.sh
bash /usr/bin/xmltv_xml.sh
========= 20180512