Ankündigung

Einklappen
Keine Ankündigung bisher.

ältere Einträge aus SQLite entfernen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Codebeispiel] ältere Einträge aus SQLite entfernen

    Hi Zusammen,
    evtl. kann es ja einer gebrauchen:

    Hatte das Problem das mein SV ganz schön lange braucht Graphen zu generieren…
    habe mich dazu entschieden „ältere“ Einträge (30 Tage) regelmäßig zu löschen:

    Shell Script:
    /usr/scripts/stripSmartHomeSQLite.sh
    Code:
    #!/bin/bash
    #
    
    DELTIME=$(date -d "30 day" +"%s000")
    
    sqlite3 /usr/local/smarthome/var/db/smarthome.db <<EOS
    DELETE FROM history WHERE time > '$DELTIME';
    EOS

    LinuxCron: (crontab -e)
    Code:
    # *    *    *    *    *  command to be executed
    # ┬    ┬    ┬    ┬    ┬
    # │    │    │    │    └───── day of week (0 - 6) (0 is Sunday, or use names)
    # │    │    │    └────────── month (1 - 12)
    # │    │    └─────────────── day of month (1 - 31)
    # │    └──────────────────── hour (0 - 23)
    # └───────────────────────── min (0 - 59)
    ###########################################################################
    
    # strip SmartHomeSQLite
    0 3 * * * /usr/scripts/stripSmartHomeSQLite.sh > /dev/null 2>&1
    Gruß + schönes WE

    #2
    Hallo web27,

    zuerst einmal ein grosses Merci für diesen Hinweis. Ich habe danach schon länger gesucht. Ich habe das Skript auf meinem System eingefügt und es lief bis heute Mittag ohne Störung. Heute Abend fand ich im Log dann diesen Hinweis:

    Code:
    2015-09-07 12:19:46 ERROR    SQLite dump  Method SQLite dump exception: dictionary changed size during iteration
    Traceback (most recent call last):
      File "/usr/local/smarthome/lib/scheduler.py", line 344, in _task
        obj()
      File "/usr/local/smarthome/plugins/sqlite/__init__.py", line 155, in _dump
        for item in self._buffer:
    RuntimeError: dictionary changed size during iteration
    Kommt dieser Fehler von diesem Skript, welches gleichzeitig mit smarthome.py auf die Datenbank zugreifen wollte ?

    Gruss

    Matthias

    Kommentar


      #3
      Hallo Matthias,

      ich denke das ist ein anderer Fehler. Davon abgesehen rate ich davon ab das Skript parallel laufen zu lassen, da es andere Konflikte geben kann.

      Bis bald

      Marcus

      Kommentar


        #4
        Hallo Marcus,

        Danke für den Hinweis. Ich habe inzwischen den entsprechenden Eintrag hier gefunden zu diesem Fehler.

        Gibt es eine saubere Lösung, dass die Datenbank nicht unendlich anwächst ?

        Gruss

        Matthias

        Kommentar


          #5
          Hallo,

          die Datenbank wächst nicht linear an. Ich habe hier ca 1000 Items und die DB pendelt sich nach ein paar Monaten bei ca 300 MB ein.

          Bis bald

          Marcus

          Kommentar

          Lädt...
          X