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
    1. 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.

  • 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
    1. if [ "$(date +%H)" == 3 ] && "$(date +%M)" == "15" ]; then
    2. find /opt/pdadmin/tmp/top/ -type f -ctime +10 -exec rm {} \;
    3. fi


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


    Code
    1. 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
    1. 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.

  • Hallo,


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

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


    das ist deutlich schneller wie

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


    hier ein kleiner Vergleich

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


    Die Ausgabe ist folgende:


    mfg
    Twilo

  • 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
    1. if [ "$(date +%H)" == 3 ] && "$(date +%M)" == "15" ]; then
    2. find /opt/pdadmin/tmp/top/ -type f -ctime +10 -exec rm {} \;
    3. fi


    durch folgende zu ersetzen?

    Code
    1. if [ $(date +%H) -eq 3 -a $(date +%M) -eq 15 ]; then
    2. find /opt/pdadmin/tmp/top/ -type f -ctime +10 -print0 |xargs -0r rm
    3. fi
  • 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:

    Shell-Script
    1. #!/bin/bash
    2. export TERM=dumb
    3. mkdir -p /opt/pdadmin/tmp/top/
    4. if [[ "$(date +%H)" == "3" ]] && [[ "$(date +%M)" == "15" ]]; then
    5. find /opt/pdadmin/tmp/top/ -type f -ctime +10 -exec rm {} \;
    6. fi
    7. 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

    Shell-Script
    1. 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:

    Shell-Script
    1. if [[ "$(date +%H)" == "03" ]] && [[ "$(date +%M)" == "15" ]]; then
  • Hatte ich mich nur sehr drüber gewundert, da ich wie MiKo bei den neuen Servern, wo ich direkt 4.58 installiert habe, danach nicht mehr geschaut habe, da es für mich ja behoben zu sein schien und es mir jetzt aufgefallen ist, als ich mal wieder da rein geschaut habe.