Benachrichtigung bei XXGB verfügbarer HDD Kapazität, wie im Skin integrieren?
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
Ich versuche es, Danke. Aber ich bekomme den Skin nicht mit einem Skinner geöffnet, geht das nicht mehr?
-
Ich finde es leider nicht, die neuen Skins sind (meiner Meinung) oder einfach nur der Fluid Skin, anders aufgebaut als ich es kenne bzw. die alten. Ich bin auch wenn überhaupt nur das Bearbeiten von Skins mit Skinnern gewohnt.
Es sollte doch hier zu finden sein, oder?:
Quellcode
- <screen backgroundColor="black" flags="wfNoBorder" name="InfoBar" position="0,0" size="1920,1080" title="InfoBar" transparent="0" Animation="disable_onhide">
- <constant-widget name="infobarbg" />
- <widget render="FluidInfoBar" source="session.CurrentService" zPosition="0" backgroundColor="button_yellow" />
- <!-- Topbar -->
- <widget backgroundColor="button_yellow" font="Bold; 22" foregroundColor="white" zPosition="10" halign="right" position="1760,0" render="Label" size="90,50" source="global.CurrentTime" transparent="0" valign="center">
- <convert type="ClockToText">Default</convert>
- </widget>
- <widget backgroundColor="button_yellow" font="Bold;18" foregroundColor="white" noWrap="1" position="67,0" render="Label" size="420,50" source="session.CurrentService" transparent="0" valign="center" zPosition="110">
- <convert type="ServiceName">Name</convert>
- </widget>
- <widget source="session.CurrentService" render="Label" position="0,0" size="67,50" halign="center" valign="center" noWrap="1" backgroundColor="button_yellow" font="Bold;18" foregroundColor="white" transparent="0" zPosition="110">
- <convert type="ExtendedServiceInfo">ServiceNumber</convert>
- </widget>
- <widget alphatest="blend" pixmap="Fluid/images/infobar/rec.png" position="1870,12" render="Pixmap" size="32,32" source="session.RecordState" zPosition="2">
- <convert type="ConditionalShowHide">Blink</convert>
- </widget>
- <widget backgroundColor="un626262" position="700,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">0</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="700,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">1</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="700,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">0,0</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un626262" position="730,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">1</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="730,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">2</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="730,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">1,1</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un626262" position="760,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">2</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="760,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">4</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="760,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">2,2</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un626262" position="790,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">3</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="790,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">8</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="790,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">3,3</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un626262" position="820,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">4</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="820,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">16</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="820,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">4,4</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un626262" position="850,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">5</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="850,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">32</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="850,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">5,5</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un626262" position="880,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">6</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="880,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">64</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="880,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">6,6</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un626262" position="910,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">7</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="910,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">128</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="910,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">7,7</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un626262" position="940,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">8</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="940,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">256</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="940,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">8,8</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un626262" position="970,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
- <convert type="FluidBaseTunerInfo">9</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="un828282" position="970,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
- <convert type="TunerInfo">TunerUseMask</convert>
- <convert type="ValueBitTest">512</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget backgroundColor="accent" position="970,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
- <convert type="FrontendInfo">NUMBER</convert>
- <convert type="ValueRange">9,9</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <!-- Bottombar -->
- <widget backgroundColor="un232227" font="Regular; 18" foregroundColor="foreground" halign="left" position="378,880" render="Label" size="300,35" source="session.Event_Now" transparent="1" valign="top" zPosition="3" noWrap="1">
- <convert type="FluidEventTime">StartAndEndTime</convert>
- <convert type="FluidClockToText">%H:%M</convert>
- </widget>
- <widget backgroundColor="un232227" font="Bold; 28" foregroundColor="foreground" halign="left" position="378,930" render="FluidLabel" size="920,50" source="session.extEvent_Now" transparent="1" valign="center" zPosition="4" noWrap="1">
- <convert type="FluidExtEventName">Name</convert>
- </widget>
- <widget backgroundColor="un232227" font="Regular; 22" foregroundColor="foreground" halign="left" position="378,980" render="FluidLabel" size="920,40" source="session.extEvent_Now" transparent="1" valign="center" zPosition="4" noWrap="1">
- <convert type="FluidExtEventName">EventExtraData</convert>
- <convert type="FluidExtraEventData">SERIESINFO SUBTITLE GENRE YEAR COUNTRY</convert>
- </widget>
- <constant-widget name="infobarprogress" />
- <widget backgroundColor="background" font="Regular; 18" foregroundColor="foreground" halign="right" position="898,880" render="Label" size="400,35" source="session.Event_Now" transparent="1" valign="top" zPosition="1" noWrap="1">
- <convert type="EventTime">Remaining</convert>
- <convert type="FluidRemainingToText" />
- </widget>
- <widget backgroundColor="un232227" font="Regular; 17" foregroundColor="unc3c3c3" halign="right" position="1632,880" render="Label" size="220,38" source="session.Event_Next" transparent="1" valign="top" zPosition="3">
- <convert type="FluidEventTime">StartAndEndTime</convert>
- <convert type="FluidClockToText">%H:%M</convert>
- </widget>
- <widget backgroundColor="un232227" font="Bold; 22" foregroundColor="unc3c3c3" halign="left" position="1340,930" render="FluidLabel" size="520,50" source="session.extEvent_Next" transparent="1" valign="center" zPosition="4" noWrap="1">
- <convert type="FluidExtEventName">Name</convert>
- </widget>
- <widget backgroundColor="un232227" font="Regular; 20" foregroundColor="unc3c3c3" halign="left" position="1340,980" render="FluidLabel" size="520,40" source="session.extEvent_Next" transparent="1" valign="center" zPosition="4" noWrap="1">
- <convert type="FluidExtEventName">EventExtraData</convert>
- <convert type="FluidExtraEventData">SERIESINFO SUBTITLE GENRE YEAR COUNTRY</convert>
- </widget>
- <widget backgroundColor="button_yellow" font="Regular; 18" foregroundColor="white" halign="right" noWrap="1" position="470,0" render="Label" size="110,50" source="session.CurrentService" transparent="0" valign="center" zPosition="10">
- <convert type="FluidWeather">currentWeatherTemp</convert>
- <convert type="FluidTextAddAfter">°C</convert>
- </widget>
- <widget backgroundColor="button_yellow" font="Wetter; 26" foregroundColor="white" halign="left" noWrap="1" position="595,0" render="Label" size="70,50" source="session.CurrentService" transparent="0" valign="center" zPosition="9">
- <convert type="FluidWeather">currentWeatherCode</convert>
- </widget>
- <widget alphatest="blend" position="52,895" render="Picon" size="300,130" source="session.CurrentService" transparent="1" zPosition="10">
- <convert type="ServiceName">Reference</convert>
- </widget>
- <widget source="session.extEvent_Now" render="FluidInfobarCover" position="35,450" size="298,393" zPosition="-100" alphatest="on" disableAnimation="1" />
- </screen>
-
In der MuteSpectator Skin wird es, in die MovieList Anzeige, mit folgende Code angezeigt:
<widget name="freeDiskSpace" position="60,600" size="1160,22" font="Regular;22" halign="center" foregroundColor="grey" backgroundColor="background_left"/>
Position, Size, Font und Farben müssen an den jeweiligen Skin angepasst werden.
Ob dies in einer der neueren FHD Skins funktioniert ist mir unbekannt.Weniger ist manchmal mehr!
Mein Setup: aktuelles VTi Image mit MuteSpectator-MOD Skin. OScam-Update. Plugins: OpenWebIF, GraphMultiEPG, EPGRefresh, EPGImport, EPGSearch, TMDb. Interne HDD 1TB. LAN an Fritz!Box 7580. HD+02. EPG.dat, Picons, Image Backup, und BackUpSuite Daten im Flash. Dur-Line UK-124 Unicable LNB für Astra 19.2E (8 Tuner), Dur-Line UK-124 Unicable LNB für Astra 28,2E (4 Tuner), Inverto IDLB-QUDL42-UNI2L-1PP für Hot Bird 13E (4 Tuner), Dual DVB-C/T2 Tuner. FCC=Off.Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von atreyou ()
-
Auch in MetrixFHD funktioniert diese Zeile von @atreyouSkin: MetrixFHD Mod by Koloss - Picons: MetrixFHD Pro XHDPicons
Wem meine Sachen gefallen der kann mich gerne Unterstützen: SPENDENDieser Beitrag wurde bereits 1 mal editiert, zuletzt von Koloss ()
-
Ja, das funktioniert aber nur in der MovieList bzw. MovieSelection, weil dieser Screen den freien Speicher ermittelt; das Widget hat weder eine Source noch einen Converter, kann daher nur den Wert darstellen, der im Screen für dieses Widget mit diesem Namen bereitgestellt wird. Und das hat alles nicht mehr viel mit "Benachrichtigung" zu tun, wonach der TE ja gefragt hat.Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
-
rdamas schrieb:
... Und das hat alles nicht mehr viel mit "Benachrichtigung" zu tun, wonach der TE ja gefragt hat.
Da es aber auch nicht schaden kann, wenn die Kapazität permanent im Skin (Infobar) eingeblendet wird, habe ich aus diesem Grund auch ein neues Thema im Workshop eröffnet, da es meiner Meinung nach 2 komplett verschiedene Varianten sind. Die eigentliche Frage hier, hat ja nicht wirklich etwas mit einem Skin zutun.
Da ich es mit dem Skin aber auch noch nicht hinbekommen habe, ist die Frage auch noch offen und hoffe dafür auf Hilfe.
Vielen Dank. -
Es gibt dafür Anzeigen in
- Menü/Information/Über
- VTi Panel/Systeminformationen/Speicherplatzauslastung anzeigen
- VTi Systeminfopanel
und natürlich in der Movieliste in jedem Skin.
Zusätzlich gibt es den AutoShredder der ab einem Minimum an Speicherplatz auf der HD alte Aufnahmen entfernt.Carpe diem!
Skin: CerX FHD | Plugins: TMDb, BacksNcovers, FritzDect, AutoShredder, PluginMover | EPG: GraphMultiEPG | ... [Alle anzeigen]
Vu+ Wiki -
Hast Du schon daran gedacht, dass zum Ermitteln des freien Plattenplatzes die Platte laufen muss?
Wenn Du deine Platte nach X Minuten Deaktivität schlafen legst und dann dein Skin anzeigen soll, wie viel Platz aktuell noch frei ist, müsste die Platte erst wieder hochfahren, damit das df-Kommando ausgeführt werden kann.
Das führt dann dazu, dass es gegebenenfalls einige Sekunden dauert, bis die Platte oben ist und der Wert zur Verfügung steht (wenn es lange genug dauert, darfst Du dir den Loading-Spinner ansehen). Außerdem läuft die Platte dann immer wieder...
Das ganze geht so eigentlich nur, wenn Du die Platte nie schlafen legst und sie immer direkt antworten kann, weil sie dauernd läuft. -
-
Ergänzung: lange gelbe taste drücken, damit kommt man in die Systeminfo.Skin: MetrixFHD Mod by Koloss - Picons: MetrixFHD Pro XHDPicons
Wem meine Sachen gefallen der kann mich gerne Unterstützen: SPENDEN -
LevelOne2k schrieb:
Kilroy schrieb:
"Man" könnte ein kleines Programm (Shell Skript, python, wwi.) schreiben und es per cronjob regelmäßig aufrufen, so dass es ggf. eine Bildschirmnachricht einblendet. Ich selbst bin mit dem System noch zu wenig vertraut.
Das Shell-Skript ist nun fertig:
Shell-Script: check_free_space.sh
- #!/bin/bash
- #
- # Diese Datei: check_free_space.sh z.B. mit FileZilla auf die VU+ Box kopieren (/home/root)
- # FileZilla Menü: Übertragung -> Übertragungstyp -> Binär
- # Dateiattribute (Berechtigungen) auf der Box für die Datei setzen: -rwxr-xr-x (755)
- #
- # Cronjob einrichten: Blau -> Gelb -> Cronjob-Verwaltung -> Grün
- # Auszuführender Befehl: /home/root/check_free_space.sh
- # Zusätzliche Befehlsparameter: 10 (dieses ist der minimale freie Speicher in GByte)
- # Minute ... eingeben: */10 (Aufruf alle 10 Minuten)
- # Stunde --- eingeben: * (jede Stunde)
- # Tag ... eingeben: * (jeden Tag)
- # Monat ... eingeben: * (jeden Monat)
- # Wochentag ... eingeben: * (jeden Wochentag)
- # Cronjob speichern: Grün
- #
- #
- # Das Skript erwartet eine Zahl als Parameter (s.o.) für den minimalen freien Speicher
- # in GByte auf der Festplatte, z.B. 10 für 10 GByte minimalen freien Speicher.
- #
- if [ "$#" = "0" ]; then
- MINSIZE_GB=10
- else
- MINSIZE_GB=$1
- fi
- #
- # Pfad der Festplatte
- #
- HDD_PATH=/media/hdd
- #
- # aktuelle Größe des Verzeichnisses $HDD_PATH
- #
- SIZE=$(df | grep "$HDD_PATH"$ | tr -s [:blank:] " " | cut -f 4 -d " ")
- SIZE_GB=$(($SIZE/(1024*1024)))
- #
- # Text der Meldung, die bei Unterschreitung des Limits ($MINSIZE_GB) angezeigt wird
- # Leerzeichen durch + ersetzen
- #
- MESSAGE="Festplatte+fast+voll+-+noch+$SIZE_GB+GByte+frei"
- #
- # Zeit in Sekunden, bis die Meldung ausgeblendet wird
- #
- TIMEOUT=10
- if [ $SIZE_GB -lt $MINSIZE_GB ]; then
- wget -q -O - "http://localhost/web/message?type=3&timeout=$TIMEOUT&text=$MESSAGE" >/dev/null 2>&1
- fi
Die Anleitung steht im Skript. Hier die Kurzfassung:
check_free_space.sh.zip herunterladen und entpacken.
Datei check_free_space.sh auf die VU+ Box kopieren (/home/root) und Dateirechte anpassen (755).
Dateiattribute.jpg
Cronjob auf der Box einrichten: Blau -> Gelb -> Cronjob-Verwaltung -> Grün
Cronjob_hinzufügen.jpg
Zum Speichern: Grün
Das Skript kann mal an der Konsole (OpenWebif: Terminal) testen:
Es sollte jetzt auf dem TV eine Meldung angezeigt werden, sofern derjenige nicht 42 TByte auf der Festplatte frei hat.
Bitte beachten:
Das Skript ist einfach gehalten und fängt mögliche Fehler nur bedingt ab. Das lässt sich mit etwas Zeit und Lust aber noch verfeinern. Auch könnte man die Parameterübergabe erweitern.
Die Benutzung erfolgt auf eigene Gefahr, gerade auch wegen der root-Rechte.Vu+ Ultimo 4K - VTi 14.0.3 (2019-04-25-vti-master (549b05f11)) - VDR R.I.P. - 6502 ExperteDieser Beitrag wurde bereits 1 mal editiert, zuletzt von Kilroy ()
-
Super, vielen Dank! Habe es gerade direkt getestet und es funktioniert einwandfrei.
Um eine Verfeinerung habe ich natürlich nichts gegen
Gesendet von iPhone mit Tapatalk Pro
Kurze Frage noch: Bei zusätzlicher Parameter, wenn dort eine 10 steht wird die Meldung erst ausgegeben wenn nur noch 10GB frei sind? Muss dann 250 dort stehen wenn man eine Meldung bei 250GB haben möchte?
Gesendet von iPhone mit Tapatalk Pro -
LevelOne2k schrieb:
Um eine Verfeinerung habe ich natürlich nichts gegen
- Meldung ab xx% freier HDD Platz
- Eingabe weiterer Speichermedien per Parameter (oder Skript)
- freie Wahl der auszugebenden Nachricht
- oder was Euch noch so einfällt
LevelOne2k schrieb:
Kurze Frage noch: Bei zusätzlicher Parameter, wenn dort eine 10 steht wird die Meldung erst ausgegeben wenn nur noch 10GB frei sind? Muss dann 250 dort stehen wenn man eine Meldung bei 250GB haben möchte?
Vu+ Ultimo 4K - VTi 14.0.3 (2019-04-25-vti-master (549b05f11)) - VDR R.I.P. - 6502 Experte - Meldung ab xx% freier HDD Platz
-
Danke. Die Ideen sind für. Mir fällt jetzt spontan erst mal nichts ein.
Evtl. kann man sich eine Push oder Pushover aufs Handy kommen lassen? Dann bekommt man von unterwegs mit wenn der Speicherplatz knapp wird und kann dann für freien Sorgen damit weitere Aufnahmen ordentlich durch laufen.
Gesendet von iPhone mit Tapatalk Pro
So kann man zB eine Nachricht über Pushover verschicken:
curl -s -d token=XXXX -d user=XXXX -d message='"#nachricht#"' -d priority=1 messages.json");
Gesendet von iPhone mit Tapatalk Pro -
Ich habe das Skript etwas erweitert. Es zeigt nun auch eine Warnmeldung an, wenn der Flash-Speicher der Box unter ein prozentuales Limit fällt, standardmäßig 20%.
Shell-Script: check_free_space.sh
- #!/bin/bash
- #
- # Diese Datei: check_free_space.sh z.B. mit FileZilla auf die VU+ Box kopieren (/home/root)
- # FileZilla Menü: Übertragung -> Übertragungstyp -> Binär
- # Dateiattribute (Berechtigungen) auf der Box für die Datei setzen: -rwxr-xr-x (755)
- #
- # Cronjob einrichten: Blau -> Gelb -> Cronjob-Verwaltung -> Grün
- # Auszuführender Befehl: /home/root/check_free_space.sh
- # Zusätzliche Befehlsparameter: 10 20
- # (Der erste Wert ist der minimale freie Speicher auf der Festplatte in GByte.
- # Der zweite Wert ist der minimale freie Flash-Speicher der Box in Prozent.)
- # Minute ... eingeben: */10 (Aufruf alle 10 Minuten)
- # Stunde --- eingeben: * (jede Stunde)
- # Tag ... eingeben: * (jeden Tag)
- # Monat ... eingeben: * (jeden Monat)
- # Wochentag ... eingeben: * (jeden Wochentag)
- #
- #
- # Das Skript erwartet zwei Zahlen als Parameter (s.o.) für den minimalen freien Speicher
- # in GByte auf der Festplatte, z.B. 10 für 10 GByte minimalen freien Speicher bzw. den
- # minimalen freien Flash-Speicher der Box in Prozent, z.B. 20 für 20% minimalen freien Flash-Speicher.
- #
- if [ "$#" != "2" ]; then
- MINSIZE_HDD_GB=10
- MINSIZE_FLASH_PERCENT=20
- else
- MINSIZE_HDD_GB=$1
- MINSIZE_FLASH_PERCENT=$2
- fi
- #
- # Pfad der Festplatte
- #
- HDD_PATH=/media/hdd
- #
- # wie lange solle die Nachricht eingeblendet werden (in Sekunden)
- #
- MESSAGE_TIMEOUT=10
- MESSAGE=""
- #
- # aktuelle Größe des Verzeichnisses $HDD_PATH
- #
- SIZE_HDD=$(df | grep "$HDD_PATH"$ | tr -s [:blank:] " " | cut -f 4 -d " ")
- SIZE_HDD_GB=$(($SIZE_HDD/(1024*1024)))
- #
- # aktuelle Größe des Flash-Speichers
- #
- SIZE_FLASH=$(df | grep "/"$ | tr -s [:blank:] " " | cut -f 5 -d " " | tr -d "%")
- SIZE_FLASH_PERCENT=$((100-$SIZE_FLASH))
- if [ $SIZE_HDD_GB -lt $MINSIZE_HDD_GB ] && [ $SIZE_FLASH_PERCENT -lt $MINSIZE_FLASH_PERCENT ]; then
- #
- # Text der Meldung, die bei Unterschreitung des Limits ($MINSIZE_HDD_GB) angezeigt wird
- # Leerzeichen durch + ersetzen
- #
- MESSAGE="Festplatte+fast+voll+-+noch+$SIZE_HDD_GB+GByte+frei+#+Flash-Speicher+fast+voll+-+noch+$SIZE_FLASH_PERCENT+%+frei"
- elif [ $SIZE_HDD_GB -lt $MINSIZE_HDD_GB ]; then
- #
- # Text der Meldung, die bei Unterschreitung des Limits ($MINSIZE_HDD_GB) angezeigt wird
- # Leerzeichen durch + ersetzen
- #
- MESSAGE="Festplatte+fast+voll+-+noch+$SIZE_HDD_GB+GByte+frei"
- elif [ $SIZE_FLASH_PERCENT -lt $MINSIZE_FLASH_PERCENT ]; then
- #
- # Text der Meldung, die bei Unterschreitung des Limits ($MINSIZE_HDD_GB) angezeigt wird
- # Leerzeichen durch + ersetzen
- #
- MESSAGE="Flash-Speicher+fast+voll+-+noch+$SIZE_FLASH_PERCENT+%+frei"
- fi
- if [ $MESSAGE ]; then
- #
- # Warnmeldung einblenden
- #
- wget -q -O - "http://localhost/web/message?type=3&timeout=$TIMEOUT&text=$MESSAGE" >/dev/null 2>&1
- fi
check_free_space.sh.zip
Bitte beachten:
Das Skript ist einfach gehalten und fängt mögliche Fehler nur bedingt ab.
Die Benutzung erfolgt auf eigene Gefahr, gerade auch wegen der root-Rechte.Vu+ Ultimo 4K - VTi 14.0.3 (2019-04-25-vti-master (549b05f11)) - VDR R.I.P. - 6502 Experte -
Hallo, wenn ich das Script auf meinem Receiver mit VTi 13 ausführe, dann hängt sich der Receiver auf und der Spinner läuft nur noch durch. Liegt es evtl. an VTi 13?
-
Das script ist in Ordnung bis auf die Variable MESSAGE_TIMEOUT die beim wget nur noch TIMEOUT heißt.
Script lässt sich über die Console einwandfrei starten und Ausgabe erscheint auch.
Dennoch habe ich bei VTi 13 nach dem cornjob anlegen über das Menü ein GUI Absturz beim ausführen über das Menü.
Einfach nicht ausführen, der cronjob wird zur der eingestellten Zeit ohne Probleme gestartet.