Firewall Log bei bestimmter Größe zippen und neu anfangen!

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von matthias.conf, 10.07.2007.

  1. #1 matthias.conf, 10.07.2007
    Zuletzt bearbeitet: 10.07.2007
    matthias.conf

    matthias.conf FANATiC

    Dabei seit:
    05.07.2007
    Beiträge:
    41
    Zustimmungen:
    0
    Ort:
    Oelde
    Also folgendes liegt vor:
    Unsere Sonicwall hier loggt ihren gesamten Traffic. Im moment läuft das script so, dass am Ende jeden Monats das Logfile gezippt, in einen Ordner verschoben und ein neues angefangen wird. Nur haben wir leider ein 2 Gigabyte File Maximum und manchmal kommts vor, dass die Log Datei größer als 2 GB wird.

    Also würd ichs gerne so machen, das wenn die Log Datei eine Größe von sagen wir mal 1,8GB überschreitet, dieses auch gezippt wird, in einen Ordner vverschoben wird und ein neues angefangen wird, wie am Monatsanfang eben. Nur hätte man dann nach einem "anstrengenden" Monat :devil: quasi 2 Zip Dateien. Achja, die Namen sollten dann irgendwie XXX_01.gz und XXX_02.gz heissen oder so...kann mir jemand helfen?

    Hier das bisherige script:
    Code:
    #!/bin/bash
    
    # Variablen festlegen
    
    YEAR=`date +%Y`
    DAY=`date +%m%d`
    YESTERDAY=`date -d '-1 days' +"%Y%m%d"`
    WEEKDAY=`date +%A`
    DIRSONICMS=/path/to/
    DIRSONICMSARCHIV=/path/to/archiv/$YEAR
    FILESERVERARCHIV=/mnt/fileserver/
    
    # Stoppen des Syslog Daemon
    
    /sbin/rcsyslog stop
    
    # Ist ein Logfile vorhanden, wird dieses gezippt
    
      for FILE1 in sonicwall
          do
          if [ -e $DIRSONICMS/$FILE1 ]
             then
             if [ ! -d $DIRSONICMSARCHIV/$FILE1 ]
                then
                mkdir -p $DIRSONICMSARCHIV/$FILE1.$DAY
             fi
             mv $DIRSONICMS/$FILE1 $DIRSONICMSARCHIV/$FILE1/$FILE1.$DAY
             /bin/gzip $DIRSONICMSARCHIV/$FILE1/$FILE1.$DAY
          fi
      done
    
    # Logdateibackup auf dem Fileserver
    
    mkdir -p $FILESERVERARCHIV/$YEAR
    cp $DIRSONICMSARCHIV/$FILE1/$FILE1.$DAY.gz /$FILESERVERARCHIV/$YEAR
    
    # Starten des Syslog Daemon
    
    /sbin/rcsyslog start      
    Das "/path/to/" ist keinesfalls der echte Pfad, habs nur etwas anonymer gemacht :P
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Ferchault, 10.07.2007
    Ferchault

    Ferchault Eroberer

    Dabei seit:
    19.06.2007
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    localhost
    Eine Idee, wie du das mit deinem Script lösen kannst, habe ich nicht anzubieten. Aber auf jeden Fall kann logrotate diese Aufgabe übernehmen - mit Größenbeschränkung und Kompression...
     
  4. #3 matthias.conf, 10.07.2007
    Zuletzt bearbeitet: 10.07.2007
    matthias.conf

    matthias.conf FANATiC

    Dabei seit:
    05.07.2007
    Beiträge:
    41
    Zustimmungen:
    0
    Ort:
    Oelde
    Danke für die fixe Antwort! Sollte es per Skript einfach zu umständlich sein oder was auch immer, werd ich bestimmt drauf zurückkommen.

    Vorrangig wäre mir allerdings die Lösung per Skript lieber.
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    ich hab mir das gerade mal mit diesem logrotate angeguckt, im prinzip nicht schlecht, aber für meine zwekce hier denke ich ungeeignet...

    alles schön und gut mit dem monthly, size, compress etc. aber wie kann ich ihm sagen, dass wenn eine file über 1,8gb gross wird, er ne neue anfängt und eine zahll hintendranhängt? und dann trotzdem nächsten monat ne neue anfängt, selbst wenn die alte erst 300MB gross ist, da sehe ich gerade mal das problem...

    oder gibts hier logrotate experten? ;)
     
  5. #4 Ferchault, 10.07.2007
    Ferchault

    Ferchault Eroberer

    Dabei seit:
    19.06.2007
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    localhost
    ungetestet, aber vielleicht funktioniert das ja so:
    Code:
    /pfad/log {
    rotate 5 # durch eine passende Zahl ersetzen
    size 1.8 G # oft genug logrotate aufrufen lassen, damit die 200MB Rest nicht überschritten werden
    monthly # nicht nur nach der Größe gehen, sondern auch am Anfang des Monats auslagern
    compress
    dateext # YYYYMMDD im Dateinamen statt einer fortlaufenden Nummer
    }
    Wahrscheinlich bleiben dann aber tatsächlich zwei Probleme: du hast deine heißgeliebte fortlaufende Nummer nicht und bei schnellem Wachstum des Logs kann das zu Fehlern führen.

    Vielleicht doch eher was für ein Script ;)
     
  6. #5 matthias.conf, 10.07.2007
    matthias.conf

    matthias.conf FANATiC

    Dabei seit:
    05.07.2007
    Beiträge:
    41
    Zustimmungen:
    0
    Ort:
    Oelde
    Na dann, schreib mir doch ein Script :P

    So wie du es sagtest hatte ichs mir auch schon gedacht - natürlich mit den selben Problemen ;)

    Naja mal abwarten bis so ein Scriptgott meinen Thread hier findet :D

    Schönen Feierabend!
     
  7. #6 matthias.conf, 16.07.2007
    matthias.conf

    matthias.conf FANATiC

    Dabei seit:
    05.07.2007
    Beiträge:
    41
    Zustimmungen:
    0
    Ort:
    Oelde
    och kommt schon, keiner ne Idee?
     
  8. #7 Wolfgang, 16.07.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Igendwie scheinst du zu denken, dass hier eine Skriptfabrik ist.
    Sowas motiviert mich immer ungemein.

    Du hast Lösungsvorschläge bekommen. Daraus eine Lösung zu erstellen sollte machbar sein.
    Ein Cronjob der am Monatsbegin läuft und deine Datei mit dem gewünschten Namen versieht ist nun wirklich keine Hexerei.
    Logrotate einrichten auch nicht.
    Wenn gewünscht einen weiteren Cronjob, der nachgrast ob Logrotate zugeschlagen hat und das Produkt dann ebenfalls mit gewünschten Namen versieht ist auch kein Akt.
     
  9. #8 matthias.conf, 16.07.2007
    matthias.conf

    matthias.conf FANATiC

    Dabei seit:
    05.07.2007
    Beiträge:
    41
    Zustimmungen:
    0
    Ort:
    Oelde
    spaß und ironie versteht hier keiner oder?
    wofür habt ihr eigentlich die smileys eingebaut?

    man jungs, war bloß n spass

    falls es noch irgendwen interessiert, hier meine logrotate datei:

    Code:
    /var/log/sonicwall {
    rotate 999
    size 2048M
    monthly
    compress
    prerotate
       /etc/init.d/syslog stop
    endscript
    dateext
    olddir /var/log/archiv/2007/
    postrotate
       /etc/init.d/syslog start
    endscript
    }
    ich glaub das wars, war jetzt ausm kopf
    jetzt hab ich halt nur das problem, dass ich die rotierten logs quasi per hand auf den fileserver schiben darf als backup, oder? weil der erstellt mir ja jetzt ne *.gz datei an nem tag an dem die log 2GB erreicht oder am 1. eines monats. somit hab ich nie genau den filename mit dem ich dann nen cp befehl bauen könnte...oder geht das irgendwie? bin noch nicht ganz so bewandert mit variablen usw.
     
  10. #9 Lord_Pinhead, 16.07.2007
    Lord_Pinhead

    Lord_Pinhead Grünschnabel

    Dabei seit:
    11.07.2007
    Beiträge:
    9
    Zustimmungen:
    0
    Du meinst die Datei zu deinem Zweirechner schicken? Mach das doch beim Postrotate via ncftp wenn du FTP nutzt, oder schreib dafür ein Script. Ich würde allerdings da eher mal ein zentralen Logserver bauen, den Mirror ich mit Rsync und gut ists (alte Dateien nicht überschreiben), ist einfacher.
     
  11. #10 matthias.conf, 17.07.2007
    Zuletzt bearbeitet: 17.07.2007
    matthias.conf

    matthias.conf FANATiC

    Dabei seit:
    05.07.2007
    Beiträge:
    41
    Zustimmungen:
    0
    Ort:
    Oelde
    ja also die mit GZip komprimierte datei kommt eben zum einen in den lokalen archivordner und zum anderen soll sie als backup auf unseren fileserver geschoben werden.

    also kann ich zur datei einfach ein

    ncftp ftp://..blabla

    hinzufügen? so dass er quasi die datei die er grad behandelt sofort rüberschiebt, ohne dass ich den dateinamen nennen/kennen muss? das wäre doch prima ^^

    //edit:
    was ich grad merke, hab das "create" in meiner logrotate conf vergessen ;)
     
  12. #11 Lord_Pinhead, 17.07.2007
    Lord_Pinhead

    Lord_Pinhead Grünschnabel

    Dabei seit:
    11.07.2007
    Beiträge:
    9
    Zustimmungen:
    0
    Naja, du könntest ja ein Bashscript schreiben das alle .tar.gz Dateien in /var/log/last/ an einen Server schickt, mittels find und xargs sollte das zu lösen sein.

    Code:
    #!/bin/bash
    # ncftpput -u <username> -p <passwort> <host> <remote-dir> <files>
    find /var/log/last/ -iname \*.tar.gz | xargs ncftpput -u FOO -p BAR 1.2.3.4 /logs $1
    echo "Logs verschoben am `date +%x` | mail -s Cronjob hans@wurst.de
    
    ungetestet, sollte aber funzen. Die Mail ist optional, aber ich lass mir alles zu mailen :) Ich verwende --exec von find NICHT weil sonst für jede Datei ein eigener Prozess gestartet wird, mit xargs wird nur ein Prozess gestartet. Ist sauberer und Ressourcen fressender.
     
  13. #12 matthias.conf, 18.07.2007
    matthias.conf

    matthias.conf FANATiC

    Dabei seit:
    05.07.2007
    Beiträge:
    41
    Zustimmungen:
    0
    Ort:
    Oelde
    danke, das werd ich mal testen!
     
  14. #13 Schlaubi_fi.de, 18.07.2007
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    und warum machst Du es dann so? *verwirr* :D :D :D
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 matthias.conf, 18.07.2007
    matthias.conf

    matthias.conf FANATiC

    Dabei seit:
    05.07.2007
    Beiträge:
    41
    Zustimmungen:
    0
    Ort:
    Oelde
    hahaha jetzt wo dus sagst ^^ ich denke er meint schonender ;)
     
  17. #15 Lord_Pinhead, 18.07.2007
    Lord_Pinhead

    Lord_Pinhead Grünschnabel

    Dabei seit:
    11.07.2007
    Beiträge:
    9
    Zustimmungen:
    0
    Lol hoppla :D
    Ich meinte das find mit --exec Ressourcen Fressender wäre, hatte das so im Kopf und dann vergessen nochmal durchzulesen ;) Natürlich meinte ich Ressourcen schonender
     
Thema:

Firewall Log bei bestimmter Größe zippen und neu anfangen!

Die Seite wird geladen...

Firewall Log bei bestimmter Größe zippen und neu anfangen! - Ähnliche Themen

  1. Firewall pfSense 2.3 erschienen

    Firewall pfSense 2.3 erschienen: Version 2.3 der auf FreeBSD beruhenden Firewall-Distribution pfSense bringt unter anderem eine noch einmal neu geschriebene Weboberfläche und eine...
  2. DNS, DNS-Crypt und Firewall

    DNS, DNS-Crypt und Firewall: Hallo! Ich bin gerade wieder an meiner Hardware-Firewall dran und drehe ein paar Hähne enger zu. Da kam mir die Frage mit dem DNS auf. Ich habe...
  3. Firewall Smoothwall Express 3.1 veröffentlicht

    Firewall Smoothwall Express 3.1 veröffentlicht: Die Entwickler der Smoothwall-Gemeinschaft haben ihre freie Firewalldistribution Smoothwall Express in der Version 3.1 veröffentlicht. Smoothwall...
  4. Untangle NG Firewall 11 veröffentlicht

    Untangle NG Firewall 11 veröffentlicht: Das US-amerikanische Unternehmen Untangle hat seine Firewall- und Gateway-Distribution Untangle NG Firewall in der Version 11 veröffentlicht....
  5. Opensuse 13.1 yast Firewall.....

    Opensuse 13.1 yast Firewall.....: Hi Guys, ich versuche gerade mal die Firewall einzurichten mit Masquarading das ich den ganzen internet verkehr von meinem Router WANs Port ans...