Updates mit Python und DB Eintrag

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,
    ich würde gerne mit einem Update-Skript die Start und Endzeit sowie den Status(also ob das Update erfolgreich war oder nicht) in meine MySQL DB schreiben.
    Leider bekomme ich dies nicht so ganz hin und googlen hat mir auch nicht wirklich geholfen.

    Ich weiss das ich das mit dem Status noch nicht vernüftig hinbekommen habe, aber vielleicht könnt ihr mir ja helfen :helpnew: , warum das eintragen in die DB nicht funktioniert, sowie das mit den Status Meldungen ("Ok" oder "Failed")

    Einmal editiert, zuletzt von StillFire23143 (13. März 2016 um 17:20)

  • Hallo,

    was ist denn der Sinn der Übung? apt loggt nach `/var/log/apt/` in die Dateien `history.log` und `term.log`. Warum willst du selber zusätzlich loggen?

    Außerdem ist das IMHO mit Status nicht ganz trivial - es gibt bei der Paketinstalllation ja mehr als "hat funktioniert" und "hat nicht funktioniert". Könnte ja auch vorkommen, dass ein Teil der neuen Pakete installiert wird und eins nicht.

    Und für den Aufruf externer Programme möchtest du eigentlich das subprocess-Modul benutzen.

    Gruß, noisefloor

  • Naja ich bin gerade dabei eine Home Steuerungseinheit zu erstellen, und der Pi soll nachts immer Updates installieren. Jetzt möchte ich mir auf meiner selbst erstellten Weboberfläche anzeigen, ob das Update geklapt hat oder nicht

  • Hallo,

    anstatt das Rad neu zu erfinden möchtest du vielleicht mal eine Blick auf `unattended upgrades` werfen (https://wiki.debian.org/UnattendedUpgrades oder auch https://wiki.ubuntuusers.de/Aktualisierung…tended-upgrades). Das erledigt das ganze höchstwahrscheinlich zuverlässiger als dein Python-Skript und kümmert sich auch um's Logging. Die generierten Logfiles kannst du dann ja per Python analysieren lassen.

    Und wenn du es doch selber machen willst, dann lies' in der Doku des subprocess-Moduls mal nach, wie man an den exit-Code des ausgeführten Befehls kommt.

    Gruß, noisefloor

  • Gibts einen Grund wieso du nach 2 Stunden einen Neuen Thread zum selben Anliegen erstellt hast? => https://www.forum-raspberrypi.de/Thread-python-…-mit-db-eintrag
    Bist du ungeduldig oder willst du so deinem Anliegen eine gewisse Dringlichkeit zuordnen und zu Antworten drängen?

    Man sollte von "Unattended Upgrades" Abstand nehmen - das verursacht oft mehr Probleme als tatsächlich davor zu sitzen und interagieren zu können.

    Ich empfehle https://wiki.ubuntuusers.de/apticron/


    Aber zu deinem Anliegen:

    cur.close() ... ist überflüssig.

    cur.execute("INSERT INTO update(starttime,endtime,status) VALUES("%s", "%s",'Ok'")") % (start,end) .... du musst das innerhalb des cur.execute( Aufrufs einfügen, nicht erst dahinter:
    cur.execute("INSERT INTO update(starttime,endtime,status) VALUES("%s", "%s",'Ok'")" % (start,end))

  • Nein, wollte es in ein anderes Forum packen wo die Auskenner es vielleicht eher entdecken...

    Aber habe mir jetzt etwas anderes überlegt. Müsst euch nicht mehr bemühen.

    Aber trotzdem danke

  • Hallo,

    Zitat

    Man sollte von "Unattended Upgrades" Abstand nehmen - das verursacht oft mehr Probleme als tatsächlich davor zu sitzen und interagieren zu können.


    +1 - ich bevorzuge auch zu sehen, was passiert. Aber falls man automatisieren muss (oder will), dann ist es schon ok.

    Zitat

    Nein, wollte es in ein anderes Forum packen wo die Auskenner es vielleicht eher entdecken...


    Na ja, wenn du "Auskenner" so definierst, dass einer deine Frage exakt beantwortet und dich damit sehenden Auges in die falsche Richtung rennen lässt... Ja, dann hat hier im Thread in der Tat noch kein "Auskenner" geantwortet.

    Gruß, noisefloor

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!