OSCAM - sh script
Moderátoři: EnoSat, peter54, 9000peter
-
- Mírně pokročilý
- Příspěvky: 27
- Registrován: 13 bře 2023 19:18
- Dal poděkování: 7 poděkování
- Dostal poděkování: 2 poděkování
OSCAM - sh script
velmi sa tesim ze sa tu debata takto fajn rozbieha. Vdak nej uz viem nove veci.
Zacal som sa zaoberat myslienkou zistovania stavu necinosti stavu citacky:
vyskusal som :
Vypise cas necinosti vsetkych citaciek
wget -q -O - "http://192.168.1.187:8888/oscamapi.html?part=status"
Vypise cas necinosti jednotlivej citacky s menom sklink_private
wget -q -O - "http://192.168.1.187:8888/oscamapi.html?part=status" | sed -rn '/name="sklink_private"/,/times/ {s/.*idle="([0-9]+)".*/\1/p}'
vysledkom je cislo, ktore reprezentuje cas, ktory je citacka v necinosti.
Nepoznate niekto prikaz pomocou, ktoreho by sa dalo zistit aky prave bezi program na danom prijimaci ? je to v nejakej premenej ?
chcel by som skusit rozsirit skript o nasledovne:
1. skontrolujem ci je primac Online teda ci prave prijima nejaky program alebo nie
2. skontroloval by som ako je dlho citacka v necinosti. / nastavil by som nejake referencne cislo napr 7200s
3. ak nie je online a cas necinosti by bol vacsi ako referencny zapol by so AU na 1 a pustil tie 2 streamy aby aby na kartu prislo emm. ak by bol cas necinosti mensi nerobilo by nic.
4. ak by bol online a cas necinosti by bol vacsi ako referencny zapol by som len AU na 1 a nech sa emm dopisu z prave beziaceho programu. ak by bol cas mensi neurobi nic
Aky ja Vas nazor? ma to nejaku logiku ? Ma to zmysel takto riesit?
Zacal som sa zaoberat myslienkou zistovania stavu necinosti stavu citacky:
vyskusal som :
Vypise cas necinosti vsetkych citaciek
wget -q -O - "http://192.168.1.187:8888/oscamapi.html?part=status"
Vypise cas necinosti jednotlivej citacky s menom sklink_private
wget -q -O - "http://192.168.1.187:8888/oscamapi.html?part=status" | sed -rn '/name="sklink_private"/,/times/ {s/.*idle="([0-9]+)".*/\1/p}'
vysledkom je cislo, ktore reprezentuje cas, ktory je citacka v necinosti.
Nepoznate niekto prikaz pomocou, ktoreho by sa dalo zistit aky prave bezi program na danom prijimaci ? je to v nejakej premenej ?
chcel by som skusit rozsirit skript o nasledovne:
1. skontrolujem ci je primac Online teda ci prave prijima nejaky program alebo nie
2. skontroloval by som ako je dlho citacka v necinosti. / nastavil by som nejake referencne cislo napr 7200s
3. ak nie je online a cas necinosti by bol vacsi ako referencny zapol by so AU na 1 a pustil tie 2 streamy aby aby na kartu prislo emm. ak by bol cas necinosti mensi nerobilo by nic.
4. ak by bol online a cas necinosti by bol vacsi ako referencny zapol by som len AU na 1 a nech sa emm dopisu z prave beziaceho programu. ak by bol cas mensi neurobi nic
Aky ja Vas nazor? ma to nejaku logiku ? Ma to zmysel takto riesit?
- peter54
- Moderátor
- Příspěvky: 609
- Registrován: 19 úno 2022 19:01
- Dal poděkování: 91 poděkování
- Dostal poděkování: 205 poděkování
Re: OSCAM - sh script
Všetky príkazy enigmy nájdeš na githube https://github.com/E2OpenPlugins/e2open ... pi-methods
Napríklad Potom stačí z toho vyťahať čo práve potrebuješ.
Ako príklad uvediem skriptík použitý na získanie informácie o mojom domácom prostredí.
Skripty monitor.sh a stav1.sh
A tu je výsledok
Napríklad Potom stačí z toho vyťahať čo práve potrebuješ.
Ako príklad uvediem skriptík použitý na získanie informácie o mojom domácom prostredí.
Skripty monitor.sh a stav1.sh
Kód: Vybrat vše
root@odroid:/var/www/html# cat monitor.sh
#!/bin/bash
to_sat () {
par1=$1
sat=" "
if ( echo $par1|grep '16E:A00000'>/dev/null ); then sat=16.0E ;fi
if ( echo $par1|grep '3:EB0000' >/dev/null ); then sat=23.5E ;fi
if ( echo $par1|grep '2:11A0000' >/dev/null ); then sat=28.2E ;fi
if ( echo $par1|grep '1:C00000' >/dev/null ); then sat=19.2E ;fi
echo $sat
}
curl="curl -m 3 -s http://"
params="/index?mode=fullpage target=_blank><b>"
tr_href="<tr> <td><a href=http://"
tr_hrefs="<tr> <td><a href=https://"
ip_octa=192.168.0.118
time_obyvacka=$(echo `${curl}192.168.0.114/web/currenttime`)
time_spalna=$(echo `${curl}192.168.0.113/web/currenttime`)
#time_klub=$(echo `${curl}192.168.0.131/web/currenttime`)
time_katka=$(echo `${curl}192.168.0.116/web/currenttime`)
time_octagon=$(echo `${curl}${ip_octa}/web/currenttime`)
[ -z "$time_octagon" ] && ip_octa=192.168.0.120 && time_octagon=$(echo `${curl}${ip_octa}/web/currenttime`)
[ ! -z "$time_obyvacka" ] && event_obyvacka=$(echo `${curl}192.168.0.114/web/getcurrent|egrep '(<e2eventname>)'|head -1|sed 's!N\/A!!;s!</*e2eventname>!!g'|cut -c1-30 `)
[ ! -z "$time_spalna" ] && event_spalna=$(echo `${curl}192.168.0.113/web/getcurrent|egrep '(<e2eventname>)'|head -1|sed 's!N\/A!!;s!</*e2eventname>!!g'|cut -c1-30 `)
[ ! -z "$time_klub" ] && event_klub=$(echo `${curl}192.168.0.131/web/getcurrent|egrep '(<e2eventname>)'|head -1|sed 's!N\/A!!;s!</*e2eventname>!!g'|cut -c1-30 `)
[ ! -z "$time_katka" ] && event_katka=$(echo `${curl}192.168.0.116/web/getcurrent|egrep '(<e2eventname>)'|head -1|sed 's!N\/A!!;s!</*e2eventname>!!g'|cut -c1-30`)
[ ! -z "$time_octagon" ] && event_octagon=$(echo `${curl}${ip_octa}/web/getcurrent|egrep '(<e2eventname>)'|head -1|sed 's!N\/A!!;s!</*e2eventname>!!g'|cut -c1-30`)
[ ! -z "$time_obyvacka" ] && stat_obyvacka=$(echo `${curl}192.168.0.114/web/about|egrep '(<e2servicename>)|(<e2servicevideosize>)'`)
[ ! -z "$time_spalna" ] && stat_spalna=$(echo `${curl}192.168.0.113/web/about|egrep '(<e2servicename>)|(<e2servicevideosize>)'`)
[ ! -z "$time_klub" ] && stat_klub=$(echo `${curl}192.168.0.131/web/about|egrep '(<e2servicename>)|(<e2servicevideosize>)'`)
[ ! -z "$time_katka" ] && stat_katka=$(echo `${curl}192.168.0.116/web/about|egrep '(<e2servicename>)|(<e2servicevideosize>)'`)
[ ! -z "$time_octagon" ] && stat_octagon=$(echo `${curl}${ip_octa}/web/about|egrep '(<e2servicename>)|(<e2servicevideosize>)'`)
[ ! -z "$time_octagon" ] && distro_octagon=$(echo `${curl}${ip_octa}/web/about|egrep '(<e2distroversion>)'|sed 's!N\/A!!;s!</*e2eventname>!!g'`)
[ ! -z "$time_obyvacka" ] && satx=$(echo `${curl}192.168.0.114/web/subservices|egrep '(<e2servicereference>)'`) && sat_obyvacka=$(to_sat "$satx")
[ ! -z "$time_spalna" ] && satx=$(echo `${curl}192.168.0.113/web/subservices|egrep '(<e2servicereference>)'`) && sat_spalna=$(to_sat "$satx")
[ ! -z "$time_klub" ] && satx=$(echo `${curl}192.168.0.131/web/subservices|egrep '(<e2servicereference>)'`) && sat_klub=$(to_sat "$satx")
[ ! -z "$time_katka" ] && satx=$(echo `${curl}192.168.0.116/web/subservices|egrep '(<e2servicereference>)'`) && sat_katka=$(to_sat "$satx")
[ ! -z "$time_octagon" ] && satx=$(echo `${curl}${ip_octa}/web/subservices|egrep '(<e2servicereference>)'`) && sat_octagon=$(to_sat "$satx")
[ ! -z "$time_obyvacka" ] && line_obyvacka=$(echo "${tr_href}192.168.0.114${params}obyvacka</b></a> <td>$time_obyvacka<td> $stat_obyvacka <td> $event_obyvacka <td> $sat_obyvacka </tr>")
[ ! -z "$time_spalna" ] && line_spalna=$(echo "${tr_href}192.168.0.113${params}spalna</b></a> <td>$time_spalna<td> $stat_spalna <td> $event_spalna <td> $sat_spalna </tr>")
[ ! -z "$time_klub" ] && line_klub=$(echo "${tr_href}192.168.0.131${params}klub</b></a> <td>$time_klub<td> $stat_klub <td> $event_klub <td> $sat_klub </tr>")
[ ! -z "$time_katka" ] && line_katka=$(echo "${tr_href}192.168.0.116${params}katka</b></a> <td>$time_katka<td> $stat_katka <td> $event_katka <td> $sat_katka </tr>")
[ ! -z "$time_octagon" ] && line_octagon=$(echo "${tr_hrefs}${ip_octa}${params}o-$distro_octagon</b></a>
<td>$time_octagon<td> $stat_octagon <td> $event_octagon <td> $sat_octagon </tr>")
cat <<END
Content-type: text/html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=UTF-8></meta>
<title>Monitor PI</title>
<style>
table, th, td { border: 1px solid black; border-collapse: collapse; }
th, td { padding: 0px; }
</style>
</head>
<body style="font-family: sans-serif;font-size:9pt" onload="zapisy.scrollTop = 99999;">
<b>Monitor PI</b> $(date +"%d.%m.%Y %T")
<br>$(uname -a)
<pre>
<table>
<tr><th rowspan=2>Server<th rowspan=2>Time<th colspan=2>Uptime<th rowspan=2>Load<th rowspan=2>Temp<th rowspan=2>Eth0</th></tr>
<tr><th>Linux<th>Oscam</th></tr>
$(echo $(${curl}192.168.0.91/cgi-bin/stav1.sh)|sed 's/:8888/\/index.sh/g')
$(echo $(${curl}192.168.0.111/cgi-bin/stav1.sh)|sed 's/:8888/\/index.sh/g')
$(echo $(${curl}192.168.0.110/cgi-bin/stav1.sh)|sed 's/:8888/\/index.sh/g')
$(echo $(${curl}192.168.0.107/cgi-bin/stav1.sh)|sed 's/:8888/\/index.sh/g')
</table>
<table>
<tr><th>STB<th>Time<th colspan=2 >Program<th>Sat</th></tr>
$line_obyvacka
$line_spalna
$line_klub
$line_katka
$line_octagon
</table>
<br><b>Raspberry monitor: </b> \
<a href="http://192.168.0.91:8889" target="_blank"><b>zero</b></a> \
<a href="http://192.168.0.110:8889" target="_blank"><b>zero2</b></a> \
<a href="http://192.168.0.111:8889" target="_blank"><b>odroid</b></a> \
<a href="http://192.168.0.107:8889" target="_blank"><b>rpi2</b></a>
<b>Oscam zero: </b> \
<a href="http://192.168.0.91:8888" target="_blank"><b>zero</b></a> \
<a href="http://192.168.0.91:28888" target="_blank"><b>zero_2</b></a> \
<a href="http://192.168.0.91:38888" target="_blank"><b>zero_3</b></a>
<b>Oscam zero2: </b> \
<a href="http://192.168.0.110:8888" target="_blank"><b>zero2</b></a> \
<a href="http://192.168.0.110:28888" target="_blank"><b>zero2_2</b></a> \
<a href="http://192.168.0.110:38888" target="_blank"><b>zero2_3</b></a>
<b>Oscam STB: </b> \
<a href="http://192.168.0.114:8888" target="_blank"><b>Obyacka</b></a> \
<a href="http://192.168.0.113:8888" target="_blank"><b>Spalna</b></a> \
<a href="http://192.168.0.114:8888" target="_blank"><b>Katka</b></a> \
<a href="http://${ip_octa}:8888" target="_blank"><b>Octagon</b></a>
<b>Zapisy na zere</b>
<textarea id="zapisy" rows="14" cols="66" readonly style="font-size:9pt;nowrap;font-family: sans-serif">
$(${curl}192.168.0.91/cgi-bin/zapisy.sh |tail -n +2|tac|perl -nle 'print if !/<.*pre>/')
</textarea>
</pre>
</body>
</html>
END
root@odroid:/var/www/html#
Kód: Vybrat vše
root@odroid:/var/www/html# cat ../cgi-bin/stav1.sh
#!/bin/bash -x
echo -e "Content-type: text/html\n\n"
casik=$(curl -s http://localhost:8888|grep 'OSCam Run Time:'|perl -pe 's/.*id="runtime"> //;s/<.*>//;s/:\d\d$//')
teplota=$(echo `cat /sys/devices/virtual/thermal/thermal_zone0/temp`)
if [ `hostname` == zero2 ]; then teplota=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp|xargs echo 30000 +|bc);fi
if [ $teplota -gt 1000 ];then teplota=`echo $teplota/1000|bc`;fi
siet=$(ethtool eth0|awk '/Speed/ {print $2}')
ip=$(ifconfig|grep -v '127\.0\.0\.1'|awk '/inet / {print $2;exit 0}'|sed 's/addr://')
part1=$(echo '<td><a href="http://'$ip':8888" target="_blank"><b>'`hostname`:8888'</b></a> ')
IFS=,;set `uptime`;
#part2=$(echo "<td>$1 $2 <td> $casik <td>$4$5$6"|sed 's/ load average://;s/ up/ <td>/;s/ days /d/;s/ day /d/')
part2=$(echo "<td>$1 $2 <td> $casik <td>$4$5 "|sed 's/ load average://;s/ up/ <td>/;s/ days /d/;s/ day /d/')
part3=$(echo $(printf "<td> %.1f, " $teplota) "<td> $siet ")
part4=$(echo '</tr>')
#echo $ip - $(uptime) $(printf " teplota: %.1f\n" $teplota) $siet
echo "<tr>$part1$part2$part3$part4"
root@odroid:/var/www/html#
Nemáte oprávnění prohlížet přiložené soubory.
f4t, sf8008, skylink, antiksat, 13, 16, 19, 23, 28, orange pi, rpi2b, odroid c4
- peter54
- Moderátor
- Příspěvky: 609
- Registrován: 19 úno 2022 19:01
- Dal poděkování: 91 poděkování
- Dostal poděkování: 205 poděkování
Re: OSCAM - sh script
Ďalší príklad, nie najlepšia technika programovania, bola to rýchlovka, ale snáď to niekomu pomôže.
Kód: Vybrat vše
root@zero:~#
root@zero:~# cat /var/www/html/index.sh
#!/bin/bash
curl="curl -m 1 -s http://"
params="/index?mode=fullpage target=_blank><b>"
tr_href="<tr> <td><a href=http://"
ipcka=$(ifconfig|grep -v '127\.0\.0\.1'|awk '/inet / {gsub("addr:","");print $2;exit 0}')
hostname=$(hostname)
cat <<END
Content-type: text/html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=UTF-8></meta>
<title>Index $(hostname)</title>
<style>
table, th, td { border: 1px solid black; border-collapse: collapse; }
th, td { padding: 0px; }
</style>
</head>
<body style="font-family: sans-serif;font-size:9pt" onload="zapisy.scrollTop = 99999;">
<b>Monitor PI</b> $(date +"%d.%m.%Y %T")
<br>$(uname -a)
<pre>
<table>
<tr><th rowspan=2>Server<th rowspan=2>Time<th colspan=2>Uptime<th rowspan=2>Load<th rowspan=2>Temp<th rowspan=2>Eth0</th></tr>
<tr><th>Linux<th>Oscam</th></tr>
$(${curl}localhost/cgi-bin/stav1.sh)
$(${curl}localhost/cgi-bin/stav2.sh)
$(${curl}localhost/cgi-bin/stav3.sh)
</table>
<br><b>Raspberry monitor $hostname: </b> \
<a href="http://$ipcka:8889" target="_blank"><b>rpi monitor</b></a>
<b>Oscam $hostname: </b> \
<a href="http://$ipcka:8888" target="_blank"><b>oscam</b></a> \
<a href="http://$ipcka:28888" target="_blank"><b>oscam_2</b></a> \
<a href="http://$ipcka:38888" target="_blank"><b>oscam_3</b></a>
</pre>
</body>
</html>
END
root@zero:~# cat /var/www/html/stav1.sh
cat: /var/www/html/stav1.sh: No such file or directory
root@zero:~# cat /var/www/cgi-bin/stav1.sh
#!/bin/bash -x
echo -e "Content-type: text/html\n\n"
casik=$(curl -s http://localhost:8888|grep 'OSCam Run Time:'|perl -pe 's/.*id="runtime"> //;s/<.*>//;s/:\d\d$//')
teplota=$(echo `cat /sys/devices/virtual/thermal/thermal_zone0/temp`)
if [ `hostname` == zero2 ]; then teplota=$(cat /sys/devices/virtual/thermal/thermal_zone0/temp|xargs echo 30000 +|bc);fi
if [ $teplota -gt 1000 ];then teplota=`echo $teplota/1000|bc`;fi
siet=$(ethtool eth0|awk '/Speed/ {print $2}')
ip=$(ifconfig|grep -v '127\.0\.0\.1'|awk '/inet / {print $2;exit 0}'|sed 's/addr://')
part1=$(echo '<td><a href="http://'$ip':8888" target="_blank"><b>'`hostname`:8888'</b></a> ')
IFS=,;set `uptime`;
#part2=$(echo "<td>$1 $2 <td> $casik <td>$4$5$6"|sed 's/ load average://;s/ up/ <td>/;s/ days /d/;s/ day /d/')
part2=$(echo "<td>$1 $2 <td> $casik <td>$4$5 "|sed 's/ load average://;s/ up/ <td>/;s/ days /d/;s/ day /d/')
part3=$(echo $(printf "<td> %.1f, " $teplota) "<td> $siet ")
part4=$(echo '</tr>')
#echo $ip - $(uptime) $(printf " teplota: %.1f\n" $teplota) $siet
echo "<tr>$part1$part2$part3$part4"
root@zero:~# cat /var/www/cgi-bin/stav2.sh
#!/bin/bash -x
echo -e "Content-type: text/html\n\n"
casik=$(curl -s http://localhost:28888|grep 'OSCam Run Time:'|perl -pe 's/.*id="runtime"> //;s/<.*>//;s/:\d\d$//')
teplota=
siet=$(ethtool eth0|grep Speed|awk '{print $2}')
ip=$(ifconfig|grep -v '127\.0\.0\.1'|awk '/inet / {print $2;exit 0}'|sed 's/addr://')
part1=$(echo '<td><a href="http://'$ip':28888" target="_blank"><b>'`hostname`\:28888'</b></a> ')
IFS=,;set `uptime`;
part2=$(echo "<td>$1 $2 <td> $casik <td>$4$5 "|sed 's/ load average://;s/ up/ <td>/;s/ days /d/;s/ day /d/')
part2=$(echo "<td><td> <td> $casik <td> "|sed 's/ load average://;s/ up/ <td>/;s/ days /d/;s/ day /d/')
part3=$(echo $(printf "<td> %s, " $teplota) "<td> ")
part4=$(echo '</tr>')
#echo $ip - $(uptime) $(printf " teplota: %.1f\n" $teplota) $siet
echo "<tr>$part1$part2$part3$part4"
root@zero:~# cat /var/www/cgi-bin/stav3.sh
#!/bin/bash -x
echo -e "Content-type: text/html\n\n"
casik=$(curl -s http://localhost:38888|grep 'OSCam Run Time:'|perl -pe 's/.*id="runtime"> //;s/<.*>//;s/:\d\d$//')
teplota=
siet=$(ethtool eth0|grep Speed|awk '{print $2}')
ip=$(ifconfig|grep -v '127\.0\.0\.1'|awk '/inet / {print $2;exit 0}'|sed 's/addr://')
part1=$(echo '<td><a href="http://'$ip':38888" target="_blank"><b>'`hostname`:38888'</b></a> ')
IFS=,;set `uptime`;
part2=$(echo "<td>$1 $2 <td> $casik <td>$4$5 "|sed 's/ load average://;s/ up/ <td>/;s/ days /d/;s/ day /d/')
part2=$(echo "<td><td> <td> $casik <td> "|sed 's/ load average://;s/ up/ <td>/;s/ days /d/;s/ day /d/')
part3=$(echo $(printf "<td> %s, " $teplota) "<td> ")
part4=$(echo '</tr>')
#echo $ip - $(uptime) $(printf " teplota: %.1f\n" $teplota) $siet
echo "<tr>$part1$part2$part3$part4"
root@zero:~#
Nemáte oprávnění prohlížet přiložené soubory.
f4t, sf8008, skylink, antiksat, 13, 16, 19, 23, 28, orange pi, rpi2b, odroid c4
- EnoSat
- Moderátor
- Příspěvky: 404
- Registrován: 07 zář 2022 21:51
- Dal poděkování: 29 poděkování
- Dostal poděkování: 79 poděkování
- Kontaktovat uživatele:
Re: OSCAM - sh script
ROVER TAB900+ , Televes H30 FLEX
Gibertini OP100LN /85E-53W/
WaveFrontier T90 /51E-39E-36E-33E-28E-26E-23E-19E-16E-13E-9E-7E-5E-2E-1W-4W/
Edision MIO+ 4K, Octagon SF8008, Mutant HD51, QVIART Lunix, Ustym 4K S2 OTT, VU Solo4K, Dreambox 900UHD/7020HD/500HD, TBS-5925/5530/5220
Gibertini OP100LN /85E-53W/
WaveFrontier T90 /51E-39E-36E-33E-28E-26E-23E-19E-16E-13E-9E-7E-5E-2E-1W-4W/
Edision MIO+ 4K, Octagon SF8008, Mutant HD51, QVIART Lunix, Ustym 4K S2 OTT, VU Solo4K, Dreambox 900UHD/7020HD/500HD, TBS-5925/5530/5220
- peter54
- Moderátor
- Příspěvky: 609
- Registrován: 19 úno 2022 19:01
- Dal poděkování: 91 poděkování
- Dostal poděkování: 205 poděkování
Re: OSCAM - sh script
EnoSat kto to nepochopil, nepochopí nič. Keď už, tak Enigma 2 OpenWebif API methods.
f4t, sf8008, skylink, antiksat, 13, 16, 19, 23, 28, orange pi, rpi2b, odroid c4
- EnoSat
- Moderátor
- Příspěvky: 404
- Registrován: 07 zář 2022 21:51
- Dal poděkování: 29 poděkování
- Dostal poděkování: 79 poděkování
- Kontaktovat uživatele:
Re: OSCAM - sh script
Mozno by sa dal vyuzit nejaky prikaz z pluginu QuickChannelInfo
Nemáte oprávnění prohlížet přiložené soubory.
ROVER TAB900+ , Televes H30 FLEX
Gibertini OP100LN /85E-53W/
WaveFrontier T90 /51E-39E-36E-33E-28E-26E-23E-19E-16E-13E-9E-7E-5E-2E-1W-4W/
Edision MIO+ 4K, Octagon SF8008, Mutant HD51, QVIART Lunix, Ustym 4K S2 OTT, VU Solo4K, Dreambox 900UHD/7020HD/500HD, TBS-5925/5530/5220
Gibertini OP100LN /85E-53W/
WaveFrontier T90 /51E-39E-36E-33E-28E-26E-23E-19E-16E-13E-9E-7E-5E-2E-1W-4W/
Edision MIO+ 4K, Octagon SF8008, Mutant HD51, QVIART Lunix, Ustym 4K S2 OTT, VU Solo4K, Dreambox 900UHD/7020HD/500HD, TBS-5925/5530/5220
-
- Mírně pokročilý
- Příspěvky: 27
- Registrován: 13 bře 2023 19:18
- Dal poděkování: 7 poděkování
- Dostal poděkování: 2 poděkování
Re: OSCAM - sh script
Zatim dik, dali ste mi spustu info mam co robit aby som sa to naucil. priklady aj ten github su super.
- peter54
- Moderátor
- Příspěvky: 609
- Registrován: 19 úno 2022 19:01
- Dal poděkování: 91 poděkování
- Dostal poděkování: 205 poděkování
Re: OSCAM - sh script
Na žiadosť od @bdpeter skriptík zápisy.sh. Z môjho pohľadu stará vec aj zbytočne zložitá a niepríliš potrebná. Dnes by som to spravil oveľa jednoduchšie. Kódy staníc už nie sú aktuálne, tak okrem logov to asi nespraví nič užitočné.
Skript card_refresh_CZ.pl je rovnaký ako card_refresh_SK.pl, len všade je zámena SK za CZ. Preto je v /tmp, vždy sa pri boote vytvorí cronom nanovo.
Kód: Vybrat vše
root@zero:~/scripts# cat zapisy.sh
#!/bin/bash
if [ "$1" != "" ]; then
grep $1 /root/scripts/card_refresh.log | tail -n 96
/root/scripts/card_refresh_CZ.pl 2000
/tmp/card_refresh_SK.pl 2000
else
tail -n 96 /root/scripts/card_refresh.log
/root/scripts/card_refresh_CZ.pl 2000
/tmp/card_refresh_SK.pl 2000
#tail -4 /tmp/0624_CZ_global_emm.log |perl -nale 'print "$F[0] $F[1] $F[4] to 0624_CZ"'
fi
root@zero:~/scripts# ./zapisy.sh
2024-12-25 08:08:01 0624_CZ = 931 emmg 120 minut
2024-12-25 08:38:01 0624_SK = 656 emmg 150 minut
2024-12-25 09:08:01 0624_CZ = 931 emmg 180 minut
2024-12-25 09:38:01 0624_SK = 656 emmg 210 minut
2024-12-25 10:08:01 0624_CZ = 931 emmg 240 minut
2024-12-25 10:38:02 0624_SK = 656 emmg 270 minut
2024-12-25 11:08:01 0624_CZ = 931 emmg 300 minut
2024-12-25 11:38:01 0624_SK = 656 emmg 330 minut
2024-12-25 12:08:01 0624_CZ = 1174 emmg 0 minut
2024-12-25 12:38:01 0624_SK = 896 emmg 30 minut
2024-12-25 13:08:01 0624_CZ = 1174 emmg 60 minut
2024-12-25 13:38:01 0624_SK = 896 emmg 90 minut
2024-12-25 14:08:01 0624_CZ = 1174 emmg 120 minut
2024-12-25 14:38:01 0624_SK = 896 emmg 150 minut
2024-12-25 15:08:01 0624_CZ = 1174 emmg 180 minut
2024-12-25 15:38:01 0624_SK = 896 emmg 210 minut
2024-12-25 16:08:01 0624_CZ = 1174 emmg 240 minut
2024-12-25 16:38:01 0624_SK = 896 emmg 270 minut
2024-12-25 17:08:01 0624_CZ = 1174 emmg 300 minut
2024-12-25 17:38:01 0624_SK = 896 emmg 330 minut
2024-12-25 18:08:02 0624_CZ = 1327 emmg 0 minut
2024-12-25 18:38:01 0624_SK = 1044 emmg 31 minut
2024-12-25 19:08:01 0624_CZ = 1327 emmg 60 minut
2024-12-25 19:38:01 0624_SK = 1044 emmg 91 minut
2024-12-25 20:08:01 0624_CZ = 1327 emmg 120 minut
2024-12-25 20:38:02 0624_SK = 1044 emmg 151 minut
2024-12-25 21:08:01 0624_CZ = 1327 emmg 180 minut
2024-12-25 21:38:02 0624_SK = 1044 emmg 211 minut
2024-12-25 22:08:01 0624_CZ = 1327 emmg 240 minut
2024-12-25 22:38:01 0624_SK = 1044 emmg 271 minut
2024-12-25 23:08:01 0624_CZ = 1327 emmg 300 minut
2024-12-25 23:38:01 0624_SK = 1044 emmg 331 minut
2024-12-26 00:08:01 0624_CZ = 1478 emmg 0 minut
2024-12-26 00:38:01 0624_SK = 1200 emmg 30 minut
2024-12-26 01:08:01 0624_CZ = 1656 emmg 0 minut
2024-12-26 01:38:01 0624_SK = 2143 emmg 0 minut
2024-12-26 02:08:02 0624_CZ = 3171 emmg 0 minut
2024-12-26 02:38:01 0624_SK = 3688 emmg 0 minut
2024-12-26 03:08:01 0624_CZ = 4214 emmg 19 minut
2024-12-26 03:38:01 0624_SK = 3952 emmg 49 minut
2024-12-26 04:08:01 0624_CZ = 4214 emmg 79 minut
2024-12-26 04:38:01 0624_SK = 3952 emmg 109 minut
2024-12-26 05:08:01 0624_CZ = 4214 emmg 139 minut
2024-12-26 05:38:01 0624_SK = 3952 emmg 169 minut
2024-12-26 06:08:01 0624_CZ = 4360 emmg 0 minut
2024-12-26 06:38:02 0624_SK = 4111 emmg 30 minut
2024-12-26 07:08:01 0624_CZ = 4360 emmg 60 minut
2024-12-26 07:38:02 0624_SK = 4111 emmg 90 minut
2024-12-26 08:08:01 0624_CZ = 4360 emmg 120 minut
2024-12-26 08:38:01 0624_SK = 4111 emmg 150 minut
2024-12-26 09:08:01 0624_CZ = 4360 emmg 180 minut
2024-12-26 09:38:01 0624_SK = 4111 emmg 210 minut
2024-12-26 10:08:01 0624_CZ = 4360 emmg 240 minut
2024-12-26 10:38:01 0624_SK = 4111 emmg 270 minut
2024-12-26 11:08:01 0624_CZ = 4360 emmg 300 minut
2024-12-26 11:38:01 0624_SK = 4111 emmg 330 minut
2024-12-26 12:08:01 0624_CZ = 4574 emmg 0 minut
2024-12-26 12:38:01 0624_SK = 4321 emmg 30 minut
2024-12-26 13:08:01 0624_CZ = 4574 emmg 60 minut
2024-12-26 13:38:01 0624_SK = 4321 emmg 90 minut
2024-12-26 14:08:01 0624_CZ = 4574 emmg 120 minut
2024-12-26 14:38:01 0624_SK = 4321 emmg 150 minut
2024-12-26 15:08:01 0624_CZ = 4574 emmg 180 minut
2024-12-26 15:38:01 0624_SK = 4321 emmg 210 minut
2024-12-26 16:08:01 0624_CZ = 4574 emmg 240 minut
2024-12-26 16:38:01 0624_SK = 4321 emmg 270 minut
2024-12-26 17:08:01 0624_CZ = 4574 emmg 300 minut
2024-12-26 17:38:01 0624_SK = 4321 emmg 330 minut
2024-12-26 18:08:01 0624_CZ = 4725 emmg 0 minut
2024-12-26 18:38:01 0624_SK = 4477 emmg 30 minut
2024-12-26 19:08:01 0624_CZ = 4725 emmg 60 minut
2024-12-26 19:38:01 0624_SK = 4477 emmg 90 minut
2024-12-26 20:08:01 0624_CZ = 4725 emmg 120 minut
2024-12-26 20:38:01 0624_SK = 4477 emmg 150 minut
2024-12-26 21:08:02 0624_CZ = 4725 emmg 180 minut
2024-12-26 21:38:01 0624_SK = 4477 emmg 210 minut
2024-12-26 22:08:01 0624_CZ = 4725 emmg 240 minut
2024-12-26 22:38:01 0624_SK = 4477 emmg 270 minut
2024-12-26 23:08:01 0624_CZ = 4725 emmg 300 minut
2024-12-26 23:38:01 0624_SK = 4477 emmg 330 minut
2024-12-27 00:08:01 0624_CZ = 4876 emmg 1 minut
2024-12-27 00:38:02 0624_SK = 4632 emmg 31 minut
2024-12-27 01:08:01 0624_CZ = 4876 emmg 61 minut
2024-12-27 01:38:01 0624_SK = 4632 emmg 91 minut
2024-12-27 02:08:01 0624_CZ = 4876 emmg 121 minut
2024-12-27 02:38:01 0624_SK = 4632 emmg 151 minut
2024-12-27 03:08:02 0624_CZ = 4876 emmg 181 minut
2024-12-27 03:38:01 0624_SK = 4632 emmg 211 minut
2024-12-27 04:08:01 0624_CZ = 4876 emmg 241 minut
2024-12-27 04:38:01 0624_SK = 4632 emmg 271 minut
2024-12-27 05:08:02 0624_CZ = 4876 emmg 301 minut
2024-12-27 05:38:01 0624_SK = 4632 emmg 331 minut
2024-12-27 06:08:01 0624_CZ = 5027 emmg 0 minut
2024-12-27 06:38:01 0624_SK = 4786 emmg 31 minut
2024-12-27 07:08:01 0624_CZ = 5027 emmg 60 minut
2024-12-27 07:38:01 0624_SK = 4786 emmg 91 minut
2024-12-27 08:02:18 0624_CZ = 5027 emmg 115 minut
2024-12-27 08:02:18 0624_SK = 4786 emmg 115 minut
root@zero:~/scripts#
Kód: Vybrat vše
root@zero:~/scripts# cat card_refresh_CZ.pl
#!/usr/bin/perl
use List::Util qw[min max];
# optional parameter - number of minutes without emm, value > 0; if 0 or not used, default will be used
# progmam checks date of emm log file for given reader and switches services if emm-s are needed
# crontab entry example
# 08 * * * * touch /root/scripts/card_refresh.log;/root/scripts/card_refresh.pl >>/root/scripts/card_refresh.log 2>&1
# values to be filled in at setup according to actual configuration
$minutes= shift;
$rlabel= shift;
$oscamip=("localhost");
# card reader to be watched
$rlabel="0624_CZ";
$rlabel1="CZ_2";
# emm log file location - must be set
$EmmFile="/tmp/${rlabel}_global_emm.log";
# Fill in ip addresses of boxes with au enabled; first available in standby will be used
# turn boxes off if not used and disable hdmi-cec
@boxips=("192.168.0.131","192.168.0.116","192.168.0.114","192.168.0.131");
@boxips=("192.168.0.131","192.168.0.114","192.168.0.113");
@boxips=("192.168.0.118","192.168.0.114");
if ($minutes == 0) {$minutes = 780};
$cz_global=0;
$datum=`date \'+\%Y-\%m-\%d \%H:\%M:\%S\'`; $datum=~s/\n//g;
$LastEmmTime = int((time()-(stat ($EmmFile))[9])/60);
printf( "%s %s = %7i emmg %6i minut\n",$datum,$rlabel,ReaderStat(),$LastEmmTime);
if ($LastEmmTime > $minutes){
@au_on=`wget -q -O - http://192.168.0.114:8888/user_edit.html?user=dvbapiau&au=1&action=Save`;
@au_on=`wget -q -O - http://192.168.0.118:8888/user_edit.html?user=dvbapiau&au=1&action=Save`;
for $boxip (@boxips){
$datum=`date \'+\%Y-\%m-\%d \%H:\%M:\%S\'`; $datum=~s/\n//g;
$instandby=`wget -q -O - http://$boxip/web/powerstate|grep instandby| egrep '(false)|(true)'`;
($instandby, $x) = split(/\s/,$instandby);
printf( "%s $boxip",$datum);
# disable the next line (oscam restart) if boxes use local cards
# restart oscam via ssh or wget - ssh is faster - each causes short picture disturbance on affected STB
#@restart_oscam=`wget -q -O - \'http://$boxip:8888/shutdown.html?action=Restart\'`;
# this works for openpli, openhdf - check and adjust for different enignmas
@restart_oscam=`ssh -o StrictHostKeyChecking=no root\@$boxip /etc/init.d/softcam restart `;
if ($instandby eq "true"){
print " C";
@ct1hd = `wget -q -O - http://$boxip/web/zap?sRef=1:0:1:1F41:CA1:3:EB0000:0:0:0:`; #CT1 HD
sleep 5;
print "S";
#@stv1hd = `wget -q -O - http://$boxip/web/zap?sRef=1:0:1:1329:CA2:3:EB0000:0:0:0:`; #STV1 HD
@ta3hd = `wget -q -O - http://$boxip/web/zap?sRef=1:0:1:1328:CA2:3:EB0000:0:0:0:`; #TA3 HD
sleep 120;
print "C ";
@ct1hd = `wget -q -O - http://$boxip/web/zap?sRef=1:0:1:1F41:CA1:3:EB0000:0:0:0:`; #CT1 HD
sleep 120;
@turnon = `wget -q -O - http://$boxip/web/powerstate?newstate=4`;
sleep 3;
@turnoff= `wget -q -O - http://$boxip/web/powerstate?newstate=5`;
$LastEmmTime = int((time()-(stat ($EmmFile))[9])/60);
if ($LastEmmTime < $minutes){
last;
}
}
@au_on=`wget -q -O - http://192.168.0.114:8888/user_edit.html?user=dvbapiau&au=&action=Save`;
@au_on=`wget -q -O - http://192.168.0.118:8888/user_edit.html?user=dvbapiau&au=&action=Save`;
}
WriteReaderStat();
$LastEmmTime = int((time()-(stat ($EmmFile))[9])/60);
#print "LastEmmTime = $LastEmmTime minutes ago\n";
}else{
#print "No refresh necessary\n";
}
# main end
sub ReaderStat {
$cz_global=`wget -q -O - \'http://$oscamip:8888/oscamapi.html?part=readerstats&label=$rlabel1\'|grep global|grep written`;
$cz_global=~s!<emm type="global" result="written">!!;
$cz_global=~s!</emm>!!;
$cz_global=~s!\s!!g;
$cz_global;
} #end ReaderStat
sub WriteReaderStat {
my $cz_global= ReaderStat();
#$now = int (time());
print "$rlabel = $cz_global\n";
} #end WriteReaderStat
#===========================================================================================
#<a href="#" onclick="zapChannel('1:0:1:1328:CA2:3:EB0000:0:0:0:', 'TA3 HD'); return false" title="Přepínám na TA3 HD">TA3 HD</a>
#@markiza=`wget -q -O - http://$boxip/web/zap?sRef=1:0:1:13B4:C95:3:EB0000:0:0:0:`; #Markiza HD
#@novahd =`wget -q -O - http://$boxip/web/zap?sRef=1:0:1:3391:C89:3:EB0000:0:0:0:`; #Nova HD
root@zero:~/scripts#
f4t, sf8008, skylink, antiksat, 13, 16, 19, 23, 28, orange pi, rpi2b, odroid c4
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 0 hostů