Logdaten aus Archiv löschen

Hey Leute,
wolte heute widermal nach längeren mein Archiv aufräumen, leider geht mein dafür früher verwendetes Skript nocht mehr, in der Doku finde ich nichts:

 <?
/*****
*
* Archive Handler Cleanen
*
* Dieses Skript hält die Datenbank sauber. Hier werden die Daten in der Datenbank auf
* den jeweiligen Tageszeitraum beschänkt. Sodass die Datenbank nicht zugemüllt wird mit Daten die
* eh nicht lange geloggt werden sollen.
* Es wird bis zu einem Jahr zurückgegangen zum löschen!
*
*
*
*       Bitte diesem Skript ein Ereignis zuweisen. 1 mal am Tag!
*****/

// ID des Archivhandlers eingeben
$archiveID = 43615 ;
$zeitraum = GetValueFloat(33227 );

// $GV=GeloggteVariable; [x][0] = ID der geloggten Variable; [x][1]= Dauer verbleibenden Daten in Tagen
$GV[0][0]= 52801 ; $GV[0][1]= $zeitraum;
$GV[1][0]= 56461 ; $GV[1][1]= $zeitraum;
$GV[2][0]= 15312 ; $GV[2][1]= $zeitraum;
$GV[3][0]= 46621 ; $GV[3][1]= $zeitraum;
$GV[4][0]= 44121 ; $GV[4][1]= $zeitraum;
$GV[5][0]= 29633 ; $GV[5][1]= $zeitraum;
$GV[6][0]= 17913 ; $GV[6][1]= $zeitraum;
$GV[7][0]= 57543 ; $GV[7][1]= $zeitraum;
$GV[8][0]= 58559 ; $GV[8][1]= $zeitraum;
$GV[9][0]= 52466 ; $GV[9][1]= $zeitraum;
$GV[10][0]= 40441 ; $GV[10][1]= $zeitraum;
$GV[11][0]= 55031 ; $GV[11][1]= $zeitraum;
$GV[12][0]= 33115 ; $GV[12][1]= $zeitraum;
$GV[13][0]= 12420 ; $GV[13][1]= $zeitraum;
$GV[14][0]= 59079 ; $GV[14][1]= $zeitraum;
$GV[15][0]= 50643 ; $GV[15][1]= $zeitraum;
$GV[16][0]= 29724 ; $GV[16][1]= $zeitraum;
$GV[17][0]= 12803 ; $GV[17][1]= $zeitraum;
$GV[18][0]= 59876 ; $GV[18][1]= $zeitraum;
$GV[19][0]= 25255 ; $GV[19][1]= $zeitraum;
$GV[20][0]= 22767 ; $GV[20][1]= $zeitraum;
$GV[21][0]= 52802 ; $GV[21][1]= $zeitraum;
$GV[22][0]= 26921 ; $GV[22][1]= $zeitraum;
$GV[23][0]= 41396 ; $GV[23][1]= $zeitraum;
$GV[24][0]= 29174 ; $GV[24][1]= $zeitraum;
$GV[25][0]= 55796 ; $GV[25][1]= $zeitraum;
$GV[26][0]= 23921 ; $GV[26][1]= $zeitraum;
$GV[27][0]= 30825 ; $GV[27][1]= $zeitraum;
$GV[28][0]= 16513 ; $GV[28][1]= $zeitraum;
$GV[29][0]= 41712 ; $GV[29][1]= $zeitraum;
$GV[30][0]= 35560 ; $GV[30][1]= $zeitraum;
// usw...



If (GetValueBoolean(22970 ) == true)
{
    for ($i = 0; $i < count($GV); $i++)
    {
       // Zeitraum ab dem gelöscht wird! Von heute bis zum 1 Jahr zurück an wird gelöscht.
       $starttime_del = time()-(365*24*60*60);

        // Gespeicherte Werte, die älter sind als zur Bewertung relevant (bis 21 Tage zurück) aus DB löschen
       $endtime_del = time()-($GV[$i][1]*24*60*60);

AC_DeleteVariableData($archiveID, $GV[$i][0], $starttime_del, $endtime_del);
        $Datum = GetValueString(41656 );
        $Uhrzeit = GetValueString(58752 );
        SetValueString(33636  , $Datum." ".$Uhrzeit);
    }
}

?>

vielleicht kann mir wer weiterhelfen
Danke im voraus
gruß Stefan

Habe jetzt den Fehler selbst gefunden, waren einfach alte Werte drinnen die nicht mehr aufgezeichnet wurden.

Gruß Stefan

geht das nicht viel einfacher ? ich habe immer nur 2J vorrätig, das reicht mir völlig.
Ich zippe/sichere einen Jahrgang und dann lösche ich das Verzeichnis, danach wird reaggregiert
Später kann ich die Daten bei Bedarf wieder einbinden

einfacher? Behalte die Daten nur 1 Jahr, Sicherungen mach i keine da ich die Daten nicht brauche.
Die alten Daten werden Automatisch jeden Tag gelöscht das ist eigentlich recht einfach ohne das ich was tun müsste.
Grüße Stefan

Gesendet von meinem SM-T825 mit Tapatalk

Hallo,

danke für den Skript. Probiere ich mal morgen gleich auch aus.
Das wäre eigentlich das woran ich letztens als gedacht habe.

Manche Werte reicht es für ne Woche zu haben, noch feiner
wäre es wenn man bei der Variable solche Einstellungen hätte.

Edit: Und schon sind fragen entstanden, bei manchen Variablen weiß ich leider nicht was rein muss.
Oder wozu einzelne Bereiche da sind:

Was muss hier rein? Was ist das für eine Variable:

$zeitraum = GetValueFloat(33227 );

Hier sind auch paar Variablen drin, aber welche kommen darein? Nach einem Jahr automatisch löschen bräuchte ich nicht.


If (GetValueBoolean(22970 ) == true)
{
    for ($i = 0; $i < count($GV); $i++)
    {
       // Zeitraum ab dem gelöscht wird! Von heute bis zum 1 Jahr zurück an wird gelöscht.
       $starttime_del = time()-(365*24*60*60);

        // Gespeicherte Werte, die älter sind als zur Bewertung relevant (bis 21 Tage zurück) aus DB löschen
       $endtime_del = time()-($GV[$i][1]*24*60*60);

AC_DeleteVariableData($archiveID, $GV[$i][0], $starttime_del, $endtime_del);
        $Datum = GetValueString(41656 );
        $Uhrzeit = GetValueString(58752 );
        SetValueString(33636  , $Datum." ".$Uhrzeit);
    }
}

Danke schon mal für die Tipps

Gruß

Hallo hab mal eine Übersichgt gemacht:

Anzahl von Tagen was gelöscht werden soll:

$zeitraum = GetValueFloat(33227 ); 

EIN/AUS Schalter fürs löschen

If (GetValueBoolean(22970 ) == true) 

Datum und Uhrzeit von heute:

$Datum = GetValueString(41656 );
        $Uhrzeit = GetValueString(58752 ); 

Variable wann das letzte mal das Skript ausgeführt wurde:

SetValueString(33636  , $Datum." ".$Uhrzeit); 

bei mir kommen keine Fehlermeldungen mehr aber leider werden die Daten im Archiv nicht gelöscht, funktionirte aber vor längeren mal.

gruß Stefan