+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Registriert seit
    Jan 2007
    Ort
    Ostseeküste, da wo der Strand am weißesten und am breitesten ist
    Beiträge
    632

    Standard Script zum Aufräumen der WIIPS-Backups

    Die tausende von völlig veralteten kleinen WIIPS-Dateien im IPS-backup-Verzeichnis nerven nicht nur, sondern machen auch jedes Kopieren a...langsam.

    Hier Abhilfe:
    PHP-Code:
    <?
    /*
    *******************************
     IP-SYMCON Event Scripting
    *******************************
    File     : delBackupWIIPS.ips.php
    Trigger  : ---
    Interval : tgl.

    WIIPS-Dateien im <IPS>/backup bereinigen, die älter sind als definiert in
      "conf.timeout.delBackupWIIPS"   (Default: 2 Tage = 48*3600 Sekunden)
      
    betrifft alle Dateien der Struktur:
       rrd.*.<zeitstempel>.~
       weather.*.<zeitstempel>.~

    Rel. 1   GW    14.02.2008

    */

    // in der include: mein einheitliches Log-/Debug-/Alarm-Handling,
    // definiert und steuert function "loggen" sowie Variablen "$myself" und "$debug"
    include "_globals.ips.php";

    if (!
    IPS_VariableExists("conf.timeout.delBackupWIIPS")) {
       
    IPS_CreateVariable("conf.timeout.delBackupWIIPS""Integer");
       
    SetValueInteger("conf.timeout.delBackupWIIPS", (48*3600));
    }
    $timeout GetValueInteger("conf.timeout.delBackupWIIPS");

    $jetzt time();  // als Variable für die ggf. notwendige Verwendung perpendikulärer Jetztzeit (siehe Snegow: Ring der Gegenzeit) :-)
    $anzahlD 0;

    $root str_replace'\\','/',IPS_GetKernelDir() );
    $data $root "backup/";
    $dircontent scandir($data);
    foreach(
    $dircontent as $filename) {
       if (
    $filename != '.' && $filename != '..') {
          
    $elemente = array();
          
    $elemente explode("."$filename);   // Dateiname am "." trennen
          
    $anz sizeof($elemente);
          if ((
    $anz 3) and (is_numeric($elemente[2])) and ((strtolower($elemente[0]) == "weather") or (strtolower($elemente[0]) == "rrd"))) {
             
    $timestamp=(int)$elemente[2];
             if (
    $timestamp>0) {
                
    $str $filename;
                
    $datum date("d.m.Y"$timestamp);
                
    $zeit date("H:i:s"$timestamp);
                
    $str .= " (Timestamp: ".$datum." ".$zeit.")\n";
    //            echo $str;
                
    if ($timestamp $timeout $jetzt) {
                   
    unlink ($data.$filename);
                   
    $anzahlD++;
    //               echo "Treffer!\n";
                
    }
             }
          }
       }
    }
    $msg $anzahlD." alte WIIPS-Backup-Dateien gelöscht.";
    loggen ($msg$myself);
    if (
    $anzahlD 0) {
    }

    ?>
    Ich ruf das einfach einmal am Tag auf. Aber aufpassen, das das zu einer Minute passiert, in der WIIPS normalerweise nicht viel Arbeit tut. (bei mir: 7:23 Uhr)
    Geändert von gwanjek (20.02.08 um 21:31 Uhr) Grund: Kommentarfehler bereinigt
    V1 (60%), V2.5(40%), Kopplung per Client-/Server-Socket; MS-SQL; Server-OS: W7/64, XP, ~400 Komponenten (HM, EnOcean, HMS100, FS20, ISDN/GigaSet, Gardena, LevelJet, Wetter), PTZ-IP-CAMs; USV --- Interessen: Synerget. Anwendgn. (passive Klimatisierung, Szenarienerkennung und -steuerung, Look ahead, Datamining...), behindertenspezifische Unterstützungen und Absicherungen

  2. #2
    Registriert seit
    Aug 2005
    Ort
    Fürstenfeldbruck-Aich (Bayern)
    Beiträge
    4,048

    Hallo,

    gute Idee, soetwas hatte ich schon öfters gesucht.

    Für die Anfänger unter uns sollte Du aber Deinen

    PHP-Code:
    // in der include: mein einheitliches Log-/Debug-/Alarm-Handling,
    // definiert und steuert function "loggen" sowie Variablen "$myself" und "$debug"
    include "_globals.ips.php"
    nebst
    PHP-Code:
    loggen ($msg$myself); 
    löschen Das verwirrt den Einen oder Anderen.

    Werde Dein Skript heute Abend gleich mal testen (Natürlich nach einem Vollupdate mit Tonis-Tools.)
    Gruß
    Werner

    Komponenten:: Homematic(CCU) 250DP, EATON-MOELLER, 1-Wire, WMRS200, 15" Touchdisplay
    Software::
    IPS V4.x, iMobile, WebFront, Logitech Media Server 7.8.x, SONOS
    Hardware:: IPS-Server: ESXi 6.x, Windows 10 Ent, 4 Kerne, 8GB RAM

  3. #3
    Registriert seit
    Jan 2007
    Ort
    Ostseeküste, da wo der Strand am weißesten und am breitesten ist
    Beiträge
    632

    Zitat Zitat von wgreipl Beitrag anzeigen
    Für die Anfänger unter uns sollte Du aber Deinen

    PHP-Code:
    // in der include: mein einheitliches Log-/Debug-/Alarm-Handling,
    // definiert und steuert function "loggen" sowie Variablen "$myself" und "$debug"
    include "_globals.ips.php"
    nebst
    PHP-Code:
    loggen ($msg$myself); 
    löschen Das verwirrt den Einen oder Anderen.
    Ich stell da ungern was ungetestetes rein, und ein vergessener Aufruf oder so beim "schnell mal rausnehmen" ist schnell übersehen, das wäre dann m.E. noch fataler, als von selbstlesenden und -denkenden Usern auszugehen.

    Auch habe ich hier bei mir nicht noch eine zweite "Public"-IPS-Installation zum Testen "des bereinigten Auslieferungsstandes" oder so und werde ganz sicher nicht erst nochmal alles auf "ohne sonstige Systemumgebung" umbauen und testen, wozu sonst habe ich die???

    Sicher hast du recht, dass das anzupassen ist. Aber genau deshalb steht da ein Kommentar drüber, der auf die betroffenen Variablen bzw. Funktionsaufrufe verweist. Wer diese bei sich nicht nutzen und anpassen will, kommentiert die betroffene Zeile einfach aus. Andere haben ähnliche Umgebungen und wissen gleich, was sie bei Bedarf anpassen müßten. Das war die Idee dabei.

    Es war lediglich meine Absicht, evtl. Hilfe zur Selbsthilfe zu geben, nicht hier als "Softwarehersteller" aufzutreten und in-a-box-Lösungen "auszuliefern". Wer sich mit Scripts beschäftigt, wird früher oder später selber mitdenken müssen, auch wenn das im Moment in Deutschland nicht so modern sein mag...

    Und sicher kann man ja auch mal fragen, wenn man da absolut nicht mit klarkommt. Ich bin bestimmt der Letzte, der da nicht helfen würde.
    V1 (60%), V2.5(40%), Kopplung per Client-/Server-Socket; MS-SQL; Server-OS: W7/64, XP, ~400 Komponenten (HM, EnOcean, HMS100, FS20, ISDN/GigaSet, Gardena, LevelJet, Wetter), PTZ-IP-CAMs; USV --- Interessen: Synerget. Anwendgn. (passive Klimatisierung, Szenarienerkennung und -steuerung, Look ahead, Datamining...), behindertenspezifische Unterstützungen und Absicherungen

  4. #4
    Registriert seit
    Feb 2007
    Ort
    Zwickau
    Beiträge
    5,490

    $jetzt = time(); // als Variable für die ggf. notwendige Verwendung perpendikulärer Jetztzeit (siehe Snegow: Ring der Gegenzeit) :-)
    .... was es so alles gibt.
    MfG Thomas

    Eaton Xcomfort|FS20|1-Wire|Axis WebCams|WMRS200 Wetterstation|Funksystem-868|Gas und Wasserzähler per S0 1-Wire|E-Zähler per OKK+seriell2LAN Adapter|Amazon Alexa|
    Visu auf: 10"Touchscr.|Apple iPod Touch|Apple iPhone|Apple iPad|IPS V5.x|Dashboard|WebFront|iFront


  5. #5
    Registriert seit
    Sep 2005
    Ort
    Stade
    Beiträge
    6,613

    Zitat Zitat von Ferengi-Master
    .... was es so alles gibt.
    Notfalls hier mal Diagonallesen: Klick


    Zitat Zitat von gwanjek Beitrag anzeigen
    ...auch wenn das im Moment in Deutschland nicht so modern sein mag...
    [OffTopic="ON"] Oh ja... [OffTopic="OFF"]

    Tschuldigung... Aber das musste mal gesagt werden...

    Gruß,

    Ein Leidensgenosse
    Geändert von Tonic1024 (21.02.08 um 13:40 Uhr)

  6. #6
    Registriert seit
    Jan 2007
    Ort
    Ostseeküste, da wo der Strand am weißesten und am breitesten ist
    Beiträge
    632

    Zitat Zitat von Ferengi-Master Beitrag anzeigen
    .... was es so alles gibt.
    ok, also im Ernst: Hab mir das angewöhnt in der Prozessprogrammierung, niemals direkt die aktuelle Zeit mitten im Programm zu ermitteln.

    Hat den Vorteil im Debug auch mal "simulierte Jetztzeit" angeben zu können, also so tun als wenn wir jetzt diese oder jene Zeit hätten. Das hat schon so manche Prozess-Runtime-Wanze erlegt...

    Edit:
    ..naja, und die Idee von Snegow in dem zitierten Buch... Jemand anderes mit spitzen Ohren hätte da sicher zumindest gesagt: "...interessant!"

    Gruß Gerd
    Geändert von gwanjek (21.02.08 um 14:08 Uhr)
    V1 (60%), V2.5(40%), Kopplung per Client-/Server-Socket; MS-SQL; Server-OS: W7/64, XP, ~400 Komponenten (HM, EnOcean, HMS100, FS20, ISDN/GigaSet, Gardena, LevelJet, Wetter), PTZ-IP-CAMs; USV --- Interessen: Synerget. Anwendgn. (passive Klimatisierung, Szenarienerkennung und -steuerung, Look ahead, Datamining...), behindertenspezifische Unterstützungen und Absicherungen

  7. #7
    Registriert seit
    Feb 2007
    Ort
    Zwickau
    Beiträge
    5,490

    Ah da ist jemand SF Fan. OK jetzt hab ich´s. THX.
    MfG Thomas

    Eaton Xcomfort|FS20|1-Wire|Axis WebCams|WMRS200 Wetterstation|Funksystem-868|Gas und Wasserzähler per S0 1-Wire|E-Zähler per OKK+seriell2LAN Adapter|Amazon Alexa|
    Visu auf: 10"Touchscr.|Apple iPod Touch|Apple iPhone|Apple iPad|IPS V5.x|Dashboard|WebFront|iFront


  8. #8
    Registriert seit
    Jan 2007
    Ort
    Ostseeküste, da wo der Strand am weißesten und am breitesten ist
    Beiträge
    632

    Zitat Zitat von Ferengi-Master Beitrag anzeigen
    Ah da ist jemand SF Fan. OK jetzt hab ich´s. THX.
    ...ist schon irgendwie erschreckend, wie nahe man plötzlich z.B. mit dieser wirklich sinnvollen "Jetztzeit-Simulation" einigen jahrzehntealten SF-Ideen kommt. ...aber das wird nun wohl zu OT
    V1 (60%), V2.5(40%), Kopplung per Client-/Server-Socket; MS-SQL; Server-OS: W7/64, XP, ~400 Komponenten (HM, EnOcean, HMS100, FS20, ISDN/GigaSet, Gardena, LevelJet, Wetter), PTZ-IP-CAMs; USV --- Interessen: Synerget. Anwendgn. (passive Klimatisierung, Szenarienerkennung und -steuerung, Look ahead, Datamining...), behindertenspezifische Unterstützungen und Absicherungen

  9. #9
    Registriert seit
    Aug 2005
    Ort
    Fürstenfeldbruck-Aich (Bayern)
    Beiträge
    4,048

    Hallo gwanjek,

    nicht das ich nur verkannt kritesiere....

    .... wie gesagt habe ich solch ein Skript schon länger gesucht, also ran, installiert, die beiden Zeilen auskommentiert und ich muss sagen, super Sache.

    Danke.
    Gruß
    Werner

    Komponenten:: Homematic(CCU) 250DP, EATON-MOELLER, 1-Wire, WMRS200, 15" Touchdisplay
    Software::
    IPS V4.x, iMobile, WebFront, Logitech Media Server 7.8.x, SONOS
    Hardware:: IPS-Server: ESXi 6.x, Windows 10 Ent, 4 Kerne, 8GB RAM

  10. #10
    Registriert seit
    May 2005
    Ort
    Leipzig
    Beiträge
    3,964

    Hallo,

    gerd - danke - ich denke Du weisst das auch.

    Ansonsten bitte an alle: beim Thema bleiben, alles andere gehoert in den Off Topic Bereich. Hier gehts wirklich nur um WIIPS.
    Gruss Uwe

Ähnliche Themen

  1. Script für konstante Graph-Namen und Autoregistrierung
    Von gwanjek im Forum IP-Symcon WIIPS
    Antworten: 5
    Letzter Beitrag: 28.11.07, 19:17
  2. Script einbinden, aber wie? / WIIPS Install
    Von computerpap im Forum IP-Symcon WIIPS für Version 1.0
    Antworten: 15
    Letzter Beitrag: 23.11.06, 23:54
  3. [BUG gefixt 0.91] RRD Datenbank wird nicht angelegt
    Von Stefan im Forum IP-Symcon WIIPS für Version 1.0
    Antworten: 19
    Letzter Beitrag: 19.09.06, 14:54
  4. Software oder Script ?
    Von guyabano im Forum Allgemeine Diskussion
    Antworten: 30
    Letzter Beitrag: 21.12.05, 13:14
  5. Verschiedene Scripte mit else?
    Von hbraun im Forum Allgemeine Diskussion
    Antworten: 7
    Letzter Beitrag: 29.11.05, 22:43