Skip to content
  • Kategorien
  • Aktuell
  • Tags
  • Beliebt
  • Benutzer
  • Gruppen
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
MediathekView Logo

MediathekView-Forum

  1. Übersicht
  2. [Offizieller Client] Kodi Add-On
  3. MySQL DB mit cronjob updaten

MySQL DB mit cronjob updaten

Geplant Angeheftet Gesperrt Verschoben [Offizieller Client] Kodi Add-On
6 Beiträge 3 Kommentatoren 1.3k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • arcasysA Offline
    arcasysA Offline
    arcasys
    schrieb am zuletzt editiert von
    #1

    Ich habe das MediathekView Plugin in LibreElec laufen. Es benutzt eine MySQL DB (8.0) auf einem Ubuntu-Server.
    Das funktioniert eigentlich gut, aber die Performance beim Update der DB (und beim Download von Filmen) könnte besser sein, vornehm gesagt.
    Der Grund dafür ist wohl mein Setup:

    • Die mediathekview DB liegt auf dem Server, der über Ethernet verbunden ist.
    • LibreElec läuft auf einem Pi3+ der über Wlan verbunden ist.
    • Die Medienverzeichnisse, auch das für die Mediathek-Downloads, liegen auch auf dem Server. Dafür hat der Server eine eigene Partition, die auf dem Pi über nbd (network block device eingehängt ist. Das funktioniert gut.

    Die Download-Performance ist eigentlich erträglich. Der Flaschenhals ist der Update der DB: Kodi verbindet sich mit dem Mediathekview-Server (Wlan), holt die Daten und schreibt sie in die DB (wieder Wlan).
    Ich sehe zwei Lösungen des Problems;

    1. Die Updates auf dem Pi kann man deaktivieren. Dann soll der Server die DB-Updates regelmäßig machen, über einen cronjob aktiviert. Geht das, und wenn ja, wie? Der Server ist headless und soll es auch bleiben.
    2. Ich besorge mir einen Switch und spendiere so dem Pi eine Eth-Verbindung statt des Wlans - ist wahrscheinlich einfacher und stabiler, kostet aber nochmal Strom für den Switch.

    Was meint ihr?

    styrollS 1 Antwort Letzte Antwort
    • codingPFC Offline
      codingPFC Offline
      codingPF
      schrieb am zuletzt editiert von
      #2

      Schau mal in das README unter “Standalone Datenbank”. Dort findest du den Aufruf des Scripts (./mvupdate mysql -H … -P … -u … -p …) welches dann als Cron eingebunden werden kann. Im Client (Pi3) dann natürlich das Update abschalten.
      Im Readme gibt es auch noch Erklärungen für Docker, wenn das für dich besser passt.

      arcasysA 1 Antwort Letzte Antwort
      • arcasysA Offline
        arcasysA Offline
        arcasys
        antwortete auf codingPF am zuletzt editiert von
        #3

        @codingPF
        Vielen Dank, das war sehr hilfreich!

        Ich hatte die README schon gelesen, aber wohl nicht genau genug. Den Part, dass man das ganze Plugin-Verzeichnis auf den Server kopieren muss und dann ja mit installiertem Python die Update-Prozedur ausführen kann, habe ich glatt missverstanden und übergangen (das sah so nach Kodi-Plugin aus).

        Merkwürdig: ein voller Update hat super funktioniert, nun bekomme ich bei jedem Aufruf die Meldung

        2024-02-13 16:39:11.974334 ERROR [mvupdate3-0.0]: Unable to find version information: ParseError not well-formed (invalid token): line 1, column 1
        

        Der Updater scheint aber zu tun, was er soll.

        Folgendes ist mir noch aufgefallen:
        Gibt man den Parameter -H localhost an, gibt es eine Exception. Ohne -H funktioniert es für localhost.

        Für Nachahmer:
        mvupdate3 muss ja im Pluginverzeichnis aufgerufen werden, sonst geht’s nicht. Also schiebe ich den ganzen Inhalt des Pluginverzeichnissses nach ~/.mvupdate und mache folgende Prozedur:

        #!/bin/bash
        
        cd /home/mylogin/.mvupdate
        ./mvupdate3 mysql $1 -u myuser -p mypass 2> /home/mylogin/.mvupdate/upd.log
        

        Die crontab schaut dann so aus:

        0 4 * * * /home/mylogin/.mvupdate/mvupdate -F
        */30 9-23 * * * /home/mylogin/.mvupdate/mvupdate -f
        

        Also wird alle 30 Minuten zwischen 8:00 und 24:00 ein kleiner Update und um 04:00 ein voller Update gemacht.
        So läuft das erst mal perfekt und ich spare mir weiter den Switch.

        codingPFC 1 Antwort Letzte Antwort
        • codingPFC Offline
          codingPFC Offline
          codingPF
          antwortete auf arcasys am zuletzt editiert von
          #4

          Deine Probleme schau ich mir mal an - ich benutze das Feature selbst nicht. Wenn du weitere findest, dann mach bitte ein GIT Issue auf - dort ist es besser aufgehoben.
          Zu deinem Setup:
          Die Filmliste wird nur ein Mal pro Stunde erstellt. Ein 30 min Intervall somit nicht nötig/sinnvoll.
          Du musst/solltest auch nicht mit -f -F arbeiten. Wenn du die Parameter weg nimmst, sollte er jede Stunde Updates ziehen und morgens um 5 ein komplettes Update machen. Prüfen/Aufrufen kannst du dann auch in kürzeren Intervallen. Also einfach mal Parameter (-f / -F) löschen und schauen was passiert. Mit -v (-v -v -v) gibs auch logs…

          1 Antwort Letzte Antwort
          • arcasysA Offline
            arcasysA Offline
            arcasys
            schrieb am zuletzt editiert von
            #5

            UPDATE

            Prozedur mvupdate

            #!/bin/bash
            
            cd $HOME/.mvupdate
            ./mvupdate3 mysql  [-v -v] -u myuser -p mypass [>>upd.log 2>&1]
            

            Die Debug-Ausgabe und das Schreiben einer Logdatei kann man sich sparen, wenn alles läuft.
            Die Prozedur muss ausfphrbar sein.
            Die crontab schaut so aus:

            0 4 * * * $HOME/.mvupdate/mvupdate 
            0 9-23 * * * $HOME/.mvupdate/mvupdate 
            

            Also wird jede zwischen 9:00 und 23:00 ein kleiner Update und um 04:00 ein voller Update gemacht.
            Falls die Updates um eine Stunde nach vorn verschoben sind, dann hat cron UTC als Zeitzone. Das kann man wie folgt ändern:
            Trage in die Datei /etc/default/cron folgende Zeile ein:

            TZ="Europe/Berlin"
            

            und starte cron neu.

            1 Antwort Letzte Antwort
            • styrollS Offline
              styrollS Offline
              styroll
              antwortete auf arcasys am zuletzt editiert von styroll
              #6

              Kodi verbindet sich […]

              Jetzt müsste einfach noch ein Verantwortlicher den Thread in die entsprechende Kategorie des Forums verschieben.
              Auch dieser Thread müsste noch in die richtige Kategorie verschoben werden…

              1 Antwort Letzte Antwort
              • iks-jottI iks-jott verschob dieses Thema von Fragen, Hilfe, Kritik am

              32

              Online

              6.7k

              Benutzer

              6.2k

              Themen

              39.1k

              Beiträge
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Kategorien
              • Aktuell
              • Tags
              • Beliebt
              • Benutzer
              • Gruppen