1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Shoutcast: Logrotate

Dieses Thema im Forum "Internetradio- und Heimstudio-Software" wurde erstellt von mratix, 26. Juli 2011.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. mratix

    mratix Benutzer

    Hallo zusammen,

    es geht um die Logfile-Rotation von mehreren Shoutcast Servern.

    Die Init-scripte liegen in:
    /etc/init.d/shoutcast-1234
    /etc/init.d/shoutcast-3456
    /etc/init.d/shoutcast-5678
    usw.

    Logfiles werden geschrieben nach:
    /var/log/shoutcast/1234.log
    /var/log/shoutcast/3456.log
    usw.

    und die generierten PID's der Init's liegen unter:
    /var/run/shoutcast-1234.pid
    /var/run/shoutcast-3456.pid
    usw.

    derzeite /etc/logrotate.d/shoutcast sieht so aus:
    Code:
    /var/log/shoutcast/[B]*.log[/B]
    {
    # prerotate
    # endscript
    weekly
    size 3M
    rotate 6
    compress
    delaycompress # nimm die naechste
    notifempty
    missingok
    create 660 radio radio # recreate new
    # postrotate
    #  /usr/bin/kill -HUP [B]<PID>[/B] 2> /dev/null || : # flush logs, close and reopen
    # endscript
    }
    OK, jetzt brauche ich euere Hilfe :)
    - Wie muss der Aufruf hinsichtlich
    Code:
    /usr/bin/kill -HUP <PID> 2> /dev/null || :
    erfolgen, um alle Server abzuarbeiten?
    - Wie lese ich die PID's aus den Files und übergebe sie an Variable <PID>?
    - Das ganze HUP-Signal bzw. die Sequenz gehört ins postrotate? oder gibt's einen Grund für's prerotate?

    Wäre echt super ... wenn ihr ein paar Ideen teilen könntet ;) Danke
     
  2. Dude

    Dude Benutzer

    AW: Shoutcast: Logrotate

    Code:
    postrotate
       /usr/bin/kill -HUP $(cat /var/run/shoutcast-*.pid) 2> /dev/null || :
    endscript
    
    Vorausgesetzt, Shoutcast braucht das und reagiert korrekt auf ein SIGHUP.
     
  3. mratix

    mratix Benutzer

    AW: Shoutcast: Logrotate

    Merci Dude, werde es gleich mal testen :)

    Ja, denke schon :confused:
    Jedenfalls ohne einen flush log (HUP) schreibt Shoutcast weiter in das rotierte Logfile.

    sprich /var/log/shoutcast/1234.log.1 statt ins neue /var/log/shoutcast/1234.log
     
  4. mratix

    mratix Benutzer

    AW: Shoutcast: Logrotate

    kleiner und großer Wurm ist noch drinnen

    Code:
    sudo logrotate -v /etc/logrotate.d/shoutcast
    Die Zuordnung ist so nicht gegeben: Anzahl Logs = 1 <> Anzahl PID's

    Oiii! Und dann führt er postrotate auch noch pro gefundene Log (.8000.log, .8000.log.1, 8000.log.2 ... 8000.log.n) aus.

    mit dem Syntax kommt er von Haus aus nicht klar :wall:

    Werde die SIGHUP-Schleife komplett in ein .sh auslagern, und schauen dass diese erst nach Abschluß der eigentlichen Rotation durchläuft.
     
  5. mratix

    mratix Benutzer

    gelöst AW: Shoutcast: Logrotate

    Problem gelöst, funktioniert hervorragend!

    Hier die finale Version meiner /etc/logrotate.d/shoutcast
    Code:
    /var/log/shoutcast/8000.log
    /var/log/shoutcast/9000.log
    # hier weitere dateien aufführen
    {
    # fehlermeldungen senden an
    errors mratix
    weekly
    size 1M
    rotate 8
    compress
    delaycompress
    notifempty
    missingok
    create 664 radio radio
    postrotate
    # flush logs, close and reopen
    /bin/kill -HUP $(cat /var/run/shoutcast-*.pid) 2> /dev/null
    endscript
    }
    
    Hinweis: Platzhalter * sollte man möglichst vermeiden, alle Logdateien einzeln aufführen.

    Code:
    /var/log/shoutcast/8000.log
    {
    # hier alle optionen einsetzen
    }
    
    /var/log/shoutcast/9000.log
    {
    # hier alle optionen einsetzen
    }
    diese Variante ist ebenfalls möglich
     

Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen