Plugin Shellscript für Aufnahmestatus für WL-HDD
-
- Interessierter
- Beiträge: 27
- Registriert: Donnerstag 19. Februar 2004, 22:42
Plugin Shellscript für Aufnahmestatus für WL-HDD
Hallo,
ich habe mir ein Shellscript für den Aufnahmestatus in Verbindung
mit meiner WL-HDD (sicher auch für andere verwendbar) gechrieben und als Plugin eingebunden.
(dbox2 mit yadi neutrino)
Folgende Anzeige (erlischt nach paar Sekunden wieder) erscheint nach Ausführung über die Fernbedienung: (z.B.)
TS Aufnahme:
Sender: ProSieben
Sendung: TV Total
Status: gestartet
Size: 855 MB
Diskfree: 45640 MB
hier das Shellscript:
***************************
#!/bin/sh
cd /var/plugins
wget -q http://192.168.0.100/control/setmode?status -O zzz
s=`cat zzz | dos2unix`
if [ $s = on ]
then
status=`echo gestartet`
else
text=`echo Keine%20TS%20Aufnahme%20aktiv%20!`
wget -q http://192.168.0.100/control/message?popup=$text -O yyy
rm -f yyy zzz
exit 0
fi
wget -q http://192.168.0.100/control/zapto -O yyy
sender=`cat yyy`
wget -q http://192.168.0.100/control/epg -O zzz
grep $sender zzz > yyy
vi yyy << EOF >/dev/null
:2,\$d
:w
:q
EOF
rm -f sendung
rm -f anstalt
rm -f program
wget -q http://192.168.0.100/control/channellist -O zzz
grep $sender zzz > xxx
vi xxx << EOF >/dev/null
:2,\$d
:w
:q
EOF
z=0
for i in `cat xxx`
do
z=`expr $z + 1`
if [ $z = 1 ]
then
:
else
echo "${i}%20\c" >> anstalt
echo "${i}_\c" >> sendung
fi
z=0
for i in `cat yyy`
do
z=`expr $z + 1`
if [ $z = 1 ] || [ $z = 2 ]
then
:
else
echo "${i}%20\c" >> program
echo "${i}_\c" >> sendung
fi
vi sendung << EOF >/dev/null
:s/-/_/g
:w
:q
EOF
ls -s /mnt/filme/aufnahme/*.ts | grep `cat sendung` >sss
size=0
for i in `cat sss`
do
size=`echo $i`
break
aaa=`cat anstalt`
ppp=`cat program`
size=`expr $size / 2048`
df | grep "/mnt/filme" > ggg
asize=0
z=0
for i in `cat ggg`
do
z=`expr $z + 1`
if [ $z = 4 ]
then
asize=`echo $i`
break
fi
asize=`expr $asize / 1024`
echo $asize
text=`echo TS%20Aufnahme:%0aSender:%20$aaa%0aSendung:%20$ppp%0aStatus:%20$status%0aSize:%20$size%20MB%0aDiskfree:%20$asize%20MB`
wget -q http://192.168.0.100/control/message?popup=$text -O yyy
rm -f yyy xxx zzz program anstalt
rm -f sss sendung ggg
****************************************
Ich hoffe es kann jemmand gebrauchen
Gruß
alux
ich habe mir ein Shellscript für den Aufnahmestatus in Verbindung
mit meiner WL-HDD (sicher auch für andere verwendbar) gechrieben und als Plugin eingebunden.
(dbox2 mit yadi neutrino)
Folgende Anzeige (erlischt nach paar Sekunden wieder) erscheint nach Ausführung über die Fernbedienung: (z.B.)
TS Aufnahme:
Sender: ProSieben
Sendung: TV Total
Status: gestartet
Size: 855 MB
Diskfree: 45640 MB
hier das Shellscript:
***************************
#!/bin/sh
cd /var/plugins
wget -q http://192.168.0.100/control/setmode?status -O zzz
s=`cat zzz | dos2unix`
if [ $s = on ]
then
status=`echo gestartet`
else
text=`echo Keine%20TS%20Aufnahme%20aktiv%20!`
wget -q http://192.168.0.100/control/message?popup=$text -O yyy
rm -f yyy zzz
exit 0
fi
wget -q http://192.168.0.100/control/zapto -O yyy
sender=`cat yyy`
wget -q http://192.168.0.100/control/epg -O zzz
grep $sender zzz > yyy
vi yyy << EOF >/dev/null
:2,\$d
:w
:q
EOF
rm -f sendung
rm -f anstalt
rm -f program
wget -q http://192.168.0.100/control/channellist -O zzz
grep $sender zzz > xxx
vi xxx << EOF >/dev/null
:2,\$d
:w
:q
EOF
z=0
for i in `cat xxx`
do
z=`expr $z + 1`
if [ $z = 1 ]
then
:
else
echo "${i}%20\c" >> anstalt
echo "${i}_\c" >> sendung
fi
z=0
for i in `cat yyy`
do
z=`expr $z + 1`
if [ $z = 1 ] || [ $z = 2 ]
then
:
else
echo "${i}%20\c" >> program
echo "${i}_\c" >> sendung
fi
vi sendung << EOF >/dev/null
:s/-/_/g
:w
:q
EOF
ls -s /mnt/filme/aufnahme/*.ts | grep `cat sendung` >sss
size=0
for i in `cat sss`
do
size=`echo $i`
break
aaa=`cat anstalt`
ppp=`cat program`
size=`expr $size / 2048`
df | grep "/mnt/filme" > ggg
asize=0
z=0
for i in `cat ggg`
do
z=`expr $z + 1`
if [ $z = 4 ]
then
asize=`echo $i`
break
fi
asize=`expr $asize / 1024`
echo $asize
text=`echo TS%20Aufnahme:%0aSender:%20$aaa%0aSendung:%20$ppp%0aStatus:%20$status%0aSize:%20$size%20MB%0aDiskfree:%20$asize%20MB`
wget -q http://192.168.0.100/control/message?popup=$text -O yyy
rm -f yyy xxx zzz program anstalt
rm -f sss sendung ggg
****************************************
Ich hoffe es kann jemmand gebrauchen
Gruß
alux
-
- Tuxboxer
- Beiträge: 5001
- Registriert: Montag 11. November 2002, 15:26
-
- Interessierter
- Beiträge: 27
- Registriert: Donnerstag 19. Februar 2004, 22:42
Hallo,
durch die Anregung von petgun hier noch ein universellers
Shellscript mit folgenden Variablen, die Ihr für eure Belange
anpassen müßt:
z.B.:
IP=192.168.0.100
TSPFAD=/mnt/filme/aufnahme (dort stehen ts Dateien)
MOUNTPFAD=/mnt/filme
hier nun das neue Scipt:
***********************************************
#!/bin/sh
# Bitte hier für Eure Belange anpassen
IP=192.168.0.100
TSPFAD=/mnt/filme/aufnahme
MOUNTPFAD=/mnt/filme
cd /var/plugins
wget -q http://$IP/control/setmode?status -O zzz
s=`cat zzz | dos2unix`
if [ $s = on ]
then
status=`echo gestartet`
else
text=`echo Keine%20TS%20Aufnahme%20aktiv%20!`
wget -q http://$IP/control/message?popup=$text -O yyy
rm -f yyy zzz
exit 0
fi
wget -q http://$IP/control/zapto -O yyy
sender=`cat yyy`
wget -q http://$IP/control/epg -O zzz
grep $sender zzz > yyy
vi yyy << EOF >/dev/null
:2,\$d
:w
:q
EOF
rm -f sendung
rm -f anstalt
rm -f program
wget -q http://$IP/control/channellist -O zzz
grep $sender zzz > xxx
vi xxx << EOF >/dev/null
:2,\$d
:w
:q
EOF
z=0
for i in `cat xxx`
do
z=`expr $z + 1`
if [ $z = 1 ]
then
:
else
echo "${i}%20\c" >> anstalt
echo "${i}_\c" >> sendung
fi
z=0
for i in `cat yyy`
do
z=`expr $z + 1`
if [ $z = 1 ] || [ $z = 2 ]
then
:
else
echo "${i}%20\c" >> program
echo "${i}_\c" >> sendung
fi
vi sendung << EOF >/dev/null
:s/-/_/g
:w
:q
EOF
ls -s $TSPFAD/*.ts | grep `cat sendung` >sss
size=0
for i in `cat sss`
do
size=`echo $i`
break
aaa=`cat anstalt`
ppp=`cat program`
size=`expr $size / 2048`
df | grep $MOUNTPFAD > ggg
asize=0
z=0
for i in `cat ggg`
do
z=`expr $z + 1`
if [ $z = 4 ]
then
asize=`echo $i`
break
fi
asize=`expr $asize / 1024`
echo $asize
text=`echo TS%20Aufnahme:%0aSender:%20$aaa%0aSendung:%20$ppp%0aStatus:%20$status%0aSize:%20$size%20MB%0aSpeicherplatz:%20$asize%20MB`
wget -q http://$IP/control/message?popup=$text -O yyy
rm -f yyy xxx zzz program anstalt
rm -f sss sendung ggg
***********************************************
Kann es jetzt leider nicht testen, aber es sollte so anwendbar sein.
Gruß
alux
durch die Anregung von petgun hier noch ein universellers
Shellscript mit folgenden Variablen, die Ihr für eure Belange
anpassen müßt:
z.B.:
IP=192.168.0.100
TSPFAD=/mnt/filme/aufnahme (dort stehen ts Dateien)
MOUNTPFAD=/mnt/filme
hier nun das neue Scipt:
***********************************************
#!/bin/sh
# Bitte hier für Eure Belange anpassen
IP=192.168.0.100
TSPFAD=/mnt/filme/aufnahme
MOUNTPFAD=/mnt/filme
cd /var/plugins
wget -q http://$IP/control/setmode?status -O zzz
s=`cat zzz | dos2unix`
if [ $s = on ]
then
status=`echo gestartet`
else
text=`echo Keine%20TS%20Aufnahme%20aktiv%20!`
wget -q http://$IP/control/message?popup=$text -O yyy
rm -f yyy zzz
exit 0
fi
wget -q http://$IP/control/zapto -O yyy
sender=`cat yyy`
wget -q http://$IP/control/epg -O zzz
grep $sender zzz > yyy
vi yyy << EOF >/dev/null
:2,\$d
:w
:q
EOF
rm -f sendung
rm -f anstalt
rm -f program
wget -q http://$IP/control/channellist -O zzz
grep $sender zzz > xxx
vi xxx << EOF >/dev/null
:2,\$d
:w
:q
EOF
z=0
for i in `cat xxx`
do
z=`expr $z + 1`
if [ $z = 1 ]
then
:
else
echo "${i}%20\c" >> anstalt
echo "${i}_\c" >> sendung
fi
z=0
for i in `cat yyy`
do
z=`expr $z + 1`
if [ $z = 1 ] || [ $z = 2 ]
then
:
else
echo "${i}%20\c" >> program
echo "${i}_\c" >> sendung
fi
vi sendung << EOF >/dev/null
:s/-/_/g
:w
:q
EOF
ls -s $TSPFAD/*.ts | grep `cat sendung` >sss
size=0
for i in `cat sss`
do
size=`echo $i`
break
aaa=`cat anstalt`
ppp=`cat program`
size=`expr $size / 2048`
df | grep $MOUNTPFAD > ggg
asize=0
z=0
for i in `cat ggg`
do
z=`expr $z + 1`
if [ $z = 4 ]
then
asize=`echo $i`
break
fi
asize=`expr $asize / 1024`
echo $asize
text=`echo TS%20Aufnahme:%0aSender:%20$aaa%0aSendung:%20$ppp%0aStatus:%20$status%0aSize:%20$size%20MB%0aSpeicherplatz:%20$asize%20MB`
wget -q http://$IP/control/message?popup=$text -O yyy
rm -f yyy xxx zzz program anstalt
rm -f sss sendung ggg
***********************************************
Kann es jetzt leider nicht testen, aber es sollte so anwendbar sein.
Gruß
alux
-
- Tuxboxer
- Beiträge: 4332
- Registriert: Dienstag 7. Mai 2002, 17:04
... wie binde ich das nun ein? Einfach skript.sh in /plugins speichern?
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
-
- Tuxboxer
- Beiträge: 4332
- Registriert: Dienstag 7. Mai 2002, 17:04
...habs gefunden http://wiki.tuxbox-cvs.sourceforge.net/Neutrino:Skripte
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
-
- Tuxboxer
- Beiträge: 4332
- Registriert: Dienstag 7. Mai 2002, 17:04
@alux:
http://wiki.tuxbox-cvs.sourceforge.net/ ... ahme_check
Vllt baust Du es hier mit ein?Ich hoffe es kann jemmand gebrauchen
http://wiki.tuxbox-cvs.sourceforge.net/ ... ahme_check
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
-
- Tuxboxer
- Beiträge: 4332
- Registriert: Dienstag 7. Mai 2002, 17:04
@alux:
habe das skript gestern getestet (Version 2 mit Variablen). Das einzige was korrekt funktioniert ist die Anzeige das keine Aufnahme läuft.
Wenn eine Aufnahme läuft sieht es so aus als ob das skript eine ganze Weile (3-5sek) "rödelt" und dann für nicht sichtbare millisekunden etwas versucht einzublenden (kurzes Flackern) Vllt kannst Du die Version mit den Variablen nochmal testen.
Was ist der Unterschied zwischen MOUNTPFAD und TSPFAD. Ich habe auf meinem Eisfair die Freigabe /public/stream die unter /mnt/movie auf der Box gemountet ist. Was trage ich nun in den Variablen ein? Mit oder ohne slash vorn und hinten?
habe das skript gestern getestet (Version 2 mit Variablen). Das einzige was korrekt funktioniert ist die Anzeige das keine Aufnahme läuft.
Wenn eine Aufnahme läuft sieht es so aus als ob das skript eine ganze Weile (3-5sek) "rödelt" und dann für nicht sichtbare millisekunden etwas versucht einzublenden (kurzes Flackern) Vllt kannst Du die Version mit den Variablen nochmal testen.
Was ist der Unterschied zwischen MOUNTPFAD und TSPFAD. Ich habe auf meinem Eisfair die Freigabe /public/stream die unter /mnt/movie auf der Box gemountet ist. Was trage ich nun in den Variablen ein? Mit oder ohne slash vorn und hinten?
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
-
- Interessierter
- Beiträge: 27
- Registriert: Donnerstag 19. Februar 2004, 22:42
Hallo,
ich habe das Tool wahrscheinlich zu schnell reingestellt. Die Umlaut
Problematik habe ich noch in Arbeit. Die aufgenommenen ts Files
sind ohne Umlaute (mit Unterstrich) und deshalb unproblematisch.
Die Sendungsnamen beinhalten aber Umlaute und Sonderzeichen,
welche die Probleme machen. In Abhängigkeit von der Einstellung ISO oder UTF-8 im Neutrino (zumindest bei yadi) muß ich das Program noch austesten. Das Shellskript ist außerdem nicht so fix (etwa 30 Sekunden bis zur Anzeige), ein fertiges C-Programm wäre da schneller.
Wegen der Umlaute und Sonderzeichen verklemmt sich das Skript
in der jetzigen Version oder zeigt falsche Werte an.
(ich vergleiche Aufnahmefilenamen mit Sendungsnamen und muß
den Sendungsnamen erst wie den Aufnahmefilenamen abbilden)
Eine Aufnahme, wo der Sendungsname keine Umlaute oder
Sonderzeichen (. : ....) enthät, sollte aber auch mit der jetzigen
Version schon gehen.
MOUNTPFAD ist der Pfad der gemounteten Ethernet-HD (z.B.: wl-hdd)
auf der dbox.
TSPFAD ist der volle Pfad von der dbox aus, wo die ts Files zu
finden sind. (d.h. wenn du von der dbox aus ein ls auf den TSPFAD
machst muß du die aufgenommenen ts Files sehen)
Sorry,
wenn ich eine Umlaut taugliche stabile Version habe setze ich sie
wieder hier ins Forum. ( die 30 Sekunden bis zur Anzeige werden
aber bleiben, wegen der Shellprogrammierung)
alux
ich habe das Tool wahrscheinlich zu schnell reingestellt. Die Umlaut
Problematik habe ich noch in Arbeit. Die aufgenommenen ts Files
sind ohne Umlaute (mit Unterstrich) und deshalb unproblematisch.
Die Sendungsnamen beinhalten aber Umlaute und Sonderzeichen,
welche die Probleme machen. In Abhängigkeit von der Einstellung ISO oder UTF-8 im Neutrino (zumindest bei yadi) muß ich das Program noch austesten. Das Shellskript ist außerdem nicht so fix (etwa 30 Sekunden bis zur Anzeige), ein fertiges C-Programm wäre da schneller.
Wegen der Umlaute und Sonderzeichen verklemmt sich das Skript
in der jetzigen Version oder zeigt falsche Werte an.
(ich vergleiche Aufnahmefilenamen mit Sendungsnamen und muß
den Sendungsnamen erst wie den Aufnahmefilenamen abbilden)
Eine Aufnahme, wo der Sendungsname keine Umlaute oder
Sonderzeichen (. : ....) enthät, sollte aber auch mit der jetzigen
Version schon gehen.
MOUNTPFAD ist der Pfad der gemounteten Ethernet-HD (z.B.: wl-hdd)
auf der dbox.
TSPFAD ist der volle Pfad von der dbox aus, wo die ts Files zu
finden sind. (d.h. wenn du von der dbox aus ein ls auf den TSPFAD
machst muß du die aufgenommenen ts Files sehen)
Sorry,
wenn ich eine Umlaut taugliche stabile Version habe setze ich sie
wieder hier ins Forum. ( die 30 Sekunden bis zur Anzeige werden
aber bleiben, wegen der Shellprogrammierung)
alux
-
- Tuxboxer
- Beiträge: 4332
- Registriert: Dienstag 7. Mai 2002, 17:04
Das ist doch ein Wort - Der Platz im WIKI ist ja schon reserviert
sag mal in Zeile 8 status=`echo gestartet` muß da nicht "text=" statt status rein?
sag mal in Zeile 8 status=`echo gestartet` muß da nicht "text=" statt status rein?
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
-
- Tuxboxer
- Beiträge: 4332
- Registriert: Dienstag 7. Mai 2002, 17:04
@alux:
ich weis ja nicht ob Du da noch dran bist aber wäre es nicht einfacher statt den Sendungsnamen nachzubauen die Timestamp nachzubauen und aus den TS files die passende Zeitangabe zu picken?
das datum s.o. in der recording.start erzeugen und in der recording.end mit den TS files vergleichen. Schon hast Du das gerade angelegte file. Der Timestamp ist auf jeden Fall immer im Dateinamen enthalten. Ich versuche auf die Art gerade Senderordner zu erstellen und nach der Aufnahme die TS Files dorthin zu verklappen - der Übersicht halber
ich weis ja nicht ob Du da noch dran bist aber wäre es nicht einfacher statt den Sendungsnamen nachzubauen die Timestamp nachzubauen und aus den TS files die passende Zeitangabe zu picken?
Code: Alles auswählen
date +%Y%m%d_%H%M
---------------------------
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
Alle weiteren Infos findest Du im WIKI
Bitte vor dem posten Boardregeln lesen und verstehen!
Wie erstelle ich ein Bootlog? Wo finde ich die FAQ?
-
- Einsteiger
- Beiträge: 249
- Registriert: Samstag 8. Mai 2004, 20:14
Wäre es nicht leichter statt z.B.
folgendes zu schreiben
Man beachte das - hinter dem -O welches wget nach stdout ausgeben lässt.
Code: Alles auswählen
wget -q http://$IP/control/zapto -O yyy
sender=`cat yyy`
Code: Alles auswählen
sender = `wget -q http://$IP/control/zapto -O -`