Log-Crons

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von tarcus, 22.09.2006.

  1. tarcus

    tarcus Jungspund

    Dabei seit:
    11.08.2006
    Beiträge:
    22
    Zustimmungen:
    0
    Hi zusammen, so möchte folgendes realisieren:

    1.) /var/log/messages/ sollte jeden Tag um 0:00 Uhr in einen Unterordner, der erstellt wird nach Name des Monats, kopiert werden noch, besser mit "tar". Die Log sollte dann einfach z.b. 060706.log heissen (Datum)
    2.) weiterhin möchte ich alle 4 Stunden die aktuelle messages.log per Mail zugesandt bekommen.

    Also den Cron-Job bekomm ich hin. Mein Problem ist nur das Shell-Script von dem ich auch gar keine Ahnung habe.
    Den Teil mit der Mail alle 4 Stunden müsste ich doch so hinbekommen oder?
    Code:
    smail -em -i user@your.domain </var/log/messages
    
    Ich hoffe mir kann das jemand verständlich erklären. Ich möchte hier keinem den Versuch aufdrängen, mir eine Komplettlösung zu liefern, allerdings bin ich, angesichts meiner Shell-Künste, dankbar über jede Vereinfachung die mir ermöglicht wird :)
     
  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 Wolfgang, 22.09.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Hast du das schon versucht (per Hand)?
    Allerdings möchtest du sicher noch ein Subject setzen.
    Code:
    mail name@domain.tld -s "mein Betreff" <Datei
    Was für Headerdaten du angeben kannst, hängt von deinem Mailprogramm ab.
    Denk bei cronjobs an die vollen Pfade, sonst geht es eventuell nicht wie erwartet.
    Gruß Wolfgang
     
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Wenn es Dir nur um eine Loesung der Problemes geht, so koenntest Du vielleicht das Programm logrotate installieren und nutzen. Falls es Dir um den Eigenbau geht, hier vielleicht ein paar Tips:
    Code:
    #> month=`date +%B`   # speichert aktuellen Monat in Variable month
    #> test -d $month || mkdir $month # erstellt das Verzeichnis mit Monatsnamen, falls es nocht nicht existiert
    
    Was Du mit tar genau erreichen moechtest, ist mir nicht klar. Den Dateinamen als Datum erreichst Du ebenfalls mit date, z.B. 'date +%Y%m%d' erzeugt heute 20060922. Das kannst Du auch in einer Variablen speichern und dann /var/log/messages in die entsprechende Datei verschieben
    Code:
    #> mv /var/log/messages ${month}/${day}.log
    
    versuch das ganze erstmal in der Konsole. Falls es klappt, schreibst Du sie zeilenweise in eine Datei, die in der ersten Zeile mit
    Code:
    #!/bin/sh
    
    beginnt.

    Die Datei rufst Du dann per cron-Job jeden Tag um Mitternacht auf.

    Hilft das erstmal?
     
Thema:

Log-Crons