300.000 Dateien unter /opt/pdadmin/tmp/top

  • Installierte pd-admin-Version: v4.24
    Installierte Version d. Serverumgebung: 3-0.263


    Hallo zusammen,


    bei mir liegen unter /opt/pdadmin/tmp/top ca. 300.000 Dateien. Die ältesten von Juni 2015. Problematisch ist dass vor allem weil bei mir die Inodes knapp werden.


    Die Dateien werden minütlich per cronjob durch /opt/pdadmin/bin/top.sh erzeugt.


    Soll das so sein? Wie viele sollten aufgehoben werden? Welche Instanz löscht diese automatisch?


    Danke und Grüße - claus

  • Danke für den Hinweis, ist mir noch nicht aufgefallen das Verzeichnis.


    Ich hebe jetzt erstmal nur 72 Stunden der Logs auf, ich habe in die Crontab erstmal einen neuen Job geschrieben ähnelt den für die access.log Löschungen


    Code
    00  0  * * *   nice -n 19 find /opt/pdadmin/tmp/top/ -name '*.log' -amin +4320 -exec rm {} \;
  • Mahlzeit,


    oh das habe ich auch gerappelt voll. Beginnt am 22. Juni 2015 bis heute und hat 1,2 GB nur logfiles... Mein System ist auch um einiges älter.
    Da hat sich offenbar in einem Update was geändert. Aber was und warum? Ein offizielles Statement wäre hier denke ich ganz gut.

    • Offizieller Beitrag

    Hallo Leute,


    bei mir ist das log-Verzeichnis auch vollgelaufen. Übertäter ist wohl wirklich die /opt/pdadmin/bin/top.sh.
    Darin befindet sich (bei mir) zwar eine Routine, um täglich um 3:15 alte Files (10 Tage und älter?) zu löschen. Das funktioniert aber nicht:


    Code
    if [ "$(date +%H)" == 3 ] && "$(date +%M)" == "15" ]; then
    find /opt/pdadmin/tmp/top/ -type f -ctime +10 -exec rm {} \;
    fi


    Man beachte das if statement - das ist 'verknödelt'. Mir scheint, damit sollte es klappen:


    Code
    if [[ "$(date +%H)" -eq 3 ]] && [[ "$(date +%M)" -eq 15 ]]; then


    Hat beim Test hier funktioniert. Aber bitte nochmal verifizieren - bin nicht so wirklich der 'bash-Gott'. :P


    Verschiebe das hier mal zu den Bugs...


    Schönen Gruss
    miko

  • Ich sehe gerade der Fehler scheint woanders zu liegen
    Und zwar fehlt im Ursprungsscript eine eckige Klammer nach dem && und das nach == bei beiden "date" abfragen bei einem die Gänsefüßchen fehlen, aber ob die da stehen oder nicht ist egal, in meinem Testscript habe ich mal mit mal ohne Gänsefüßchen nach dem == die Zahlen eingegeben.
    Beide Versuche haben funktioniert.


    Ursprungsscript


    Geändertes Script


    Danach wird um 03:15 Uhr die Zeile

    Code
    find /opt/pdadmin/tmp/top/ -type f -ctime +10 -exec rm {} \;

    ausgeführt und alles was älter als 10 Tage ist gelöscht.


    Vielleicht liest das hier Herr Bradler und ändert es im nächsten PD-Admin Update, da wir sonst immer wieder nach PD-Admin Update dieses Script anpassen müssen.

    • Offizieller Beitrag

    Hallo,


    pd-admin sollte die Dateien eher wie folgt löschen

    Code
    find /opt/pdadmin/tmp/top/ -type f -ctime +10 -print0 |xargs -0r rm


    das ist deutlich schneller wie

    Code
    find /opt/pdadmin/tmp/top/ -type f -ctime +10 -exec rm {} \;


    hier ein kleiner Vergleich

    Code
    du -hcs /opt/pdadmin/tmp/top
    cp -a /opt/pdadmin/tmp/top{,2}
    cp -a /opt/pdadmin/tmp/top{,3}
    time find /opt/pdadmin/tmp/top2/ -type f -mtime +10 -print0 |xargs -0r rm
    time find /opt/pdadmin/tmp/top3/ -type f -mtime +10 -exec rm {} \;


    Die Ausgabe ist folgende:


    mfg
    Twilo

  • Hallo,


    der Fehler ist in 4.26 weiter vorhanden und musste wieder händisch gepatcht werden.



    Update:


    Auch bei der 4.27 wurde der Fehler nicht behoben.

  • warum der Fehler in der Version 4.57 immer noch drin ist, ist mir völlig unverständlich 8o


    ist es so schwer die Zeilen

    Code
    if [ "$(date +%H)" == 3 ] && "$(date +%M)" == "15" ]; then
    find /opt/pdadmin/tmp/top/ -type f -ctime +10 -exec rm {} \;
    fi


    durch folgende zu ersetzen?

    Code
    if [ $(date +%H) -eq 3 -a $(date +%M) -eq 15 ]; then
    find /opt/pdadmin/tmp/top/ -type f -ctime +10 -print0 |xargs -0r rm
    fi
    • Offizieller Beitrag

    Haha, das Ding ist irgendwie nicht tot zu kriegen :huh:


    Hier eine Bestandsaufnahme des Forum-Servers, der wurde ja Ende Mai neu aufgesetzt.


    - pd-admin version v4.58

    - Files in /opt/pdadmin/tmp/top/ : 46775

    - File-Dates: May 29 - Jul 1

    - Crontab enthält: * * * * * /opt/pdadmin/bin/top.sh


    Inhalt der /opt/pdadmin/bin/top.sh:

    Bash
    #!/bin/bash
    export TERM=dumb
    mkdir -p /opt/pdadmin/tmp/top/
    
    if [[ "$(date +%H)" == "3" ]] && [[ "$(date +%M)" == "15" ]]; then
    find /opt/pdadmin/tmp/top/ -type f -ctime +10 -exec rm {} \;
    fi
    
    top -d 3 -bi -n2 > /opt/pdadmin/tmp/top/$(date +%s).log


    Also, gelöscht wurde da bisher wohl eher nichts...

  • Ist bei mir ebenfalls so. Lässt sich aber leicht beheben, indem man bei

    Bash
    if [[ "$(date +%H)" == "3" ]] && [[ "$(date +%M)" == "15" ]]; then

    einfach eine 0 vor die 3 packt. Denn %H gibt die Stunden mit zwei Stellen an. Sprich 3 Uhr ist 03:

    Bash
    if [[ "$(date +%H)" == "03" ]] && [[ "$(date +%M)" == "15" ]]; then