Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Script für log Dateien

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.01.2004
    Ort
    Neuenstein
    Beiträge
    19

    Script für log Dateien

    Hallo Leute ich wollte mir einen Script machen womit ich mal alle logs leeren kann die in /var/log/ sind aber wie muss ich den Script schreiben das auch in den Unterverzeichnissen in /var/log/ die logs geleert werden ?

    for i in `ls /var/log/*`
    do
    echo "" > $i
    done

    Das bringts nur für die Dateien in /var/log

  2. #2
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    1. Kannst du die Dateien nicht einfach löschen?
    2. find /var/log -type f anstatt ls

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.01.2004
    Ort
    Neuenstein
    Beiträge
    19
    Also alle löschen ist schlecht dann meckern doch die Progs die die logs brauchen rum und alle neu anlegen will ich auch nicht.

  4. #4
    Registrierter Benutzer
    Registriert seit
    02.04.2003
    Beiträge
    43
    moin moin

    ich kenne mich mit shellscripting nicht so gut aus, daher ein lösungsvorschlag mittels python

    PHP-Code:
    #! /usr/bin/env python

    import os
    import sys

    def getFileNames
    (path):
        
    filelist = []
        
        for 
    rootdirsfiles in os.walk(path):
            for 
    name in files:
                if 
    name.startswith('.'):
                    continue
                else:
                    
    filelist.append(os.path.join(root,name))   
        return 
    filelist
                
    if __name__ == '__main__':
        if 
    len(sys.argv) != 2:
            print 
    'usage: \n\n'str(sys.argv[0].split('/').pop()) + ' dirname'
        
    else:
            
    logfiles getFileNames(sys.argv[1])
            for 
    each in logfiles:
                print 
    each
                
    #os.popen('echo 0 > ' + each) 
    der teil mit echo 0 ist nicht getestet, hab keine lust mein logs zu leeren .


    Gruß HL

  5. #5
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    Wenn man mich fragt, viel zu viel Aufwand für eine simple Aufgabenstellung. Die Methode von Joghurt liefert doch schon alles
    Code:
     find /var/log -type f -exec  cp /dev/null {} \;
    Das war's, zumindest was die Aufgabenstellung angeht.

    Ich würde es trotzdem nicht machen, denn da gibt es auch die eine oder andere Datei, z. b. wtmp, welche nicht im Textformat vorliegt. Warum nimmst du nicht einfach etwas fertiges wie logrotate? Räumt periodisch auf und entsorgt auch die ganz alten klamotten und man weiß, dass es läuft.

    Hans
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  6. #6
    Registrierter Benutzer
    Registriert seit
    23.01.2004
    Ort
    Neuenstein
    Beiträge
    19
    Ich würde nur gerne mit einem c++ Programm alle datei in /var/log/ leeren also das halt nur mit c++:

    for i in `ls /var/log/*`
    do
    echo "" > $i
    done

    Hat jemand eine Idee wie ich das schreiben kann ?

  7. #7
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Wieso nicht logrotate? Das macht das viel besser und sinnvoller (ältere Logs werden erst gegzippt und dann mal gelöscht und das ganze von selber und periodisch).
    Da hast du dann auch immer etwas logs herumstehen falls du die mal brauchen solltest.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •