Anzeige:
Ergebnis 1 bis 5 von 5

Thema: aktuellste datei per mail versenden

  1. #1
    frosch007
    Gast

    aktuellste datei per mail versenden

    hallo

    ich würde gerne folgende umsetzen:

    ich habe ein programm, dass jeden tag eine logfile mit namen log_JJJJ-MM-TT.log erzeugt
    nun will ich gerne die log datei des tages um 23.59 per mail versenden.

    anbei mal mein script (vereinfacht)

    #!/bin/bash

    LOG='find -mtime -1"
    mail -s Log-Datei ttt@ttt.com < $LOG

    leider bekomme ich immer den fehler: ambiguous redirect

    ich hoffe hier kann mir jemand helfen

    danke im voraus

  2. #2
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    Zitat Zitat von frosch007 Beitrag anzeigen
    hallo

    ich würde gerne folgende umsetzen:

    ich habe ein programm, dass jeden tag eine logfile mit namen log_JJJJ-MM-TT.log erzeugt
    nun will ich gerne die log datei des tages um 23.59 per mail versenden.

    anbei mal mein script (vereinfacht)

    #!/bin/bash

    LOG='find -mtime -1"
    mail -s Log-Datei ttt@ttt.com < $LOG

    leider bekomme ich immer den fehler: ambiguous redirect

    ich hoffe hier kann mir jemand helfen

    danke im voraus
    versuch mal:
    LOG=`find -mtime -1`

  3. #3
    frosch007
    Gast
    hallo

    leider funktioniert das auch nicht ...

    allerdings habe ich gemerkt, dass wenn ich nur LOG=`find -mtime 1` ohne das minuszeichen vor der 1 schreibe es funktioniert

    leider stimmt dann aber die ausgabe des aktuellsten files nicht mehr....

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.05.2007
    Beiträge
    656
    Moin,

    kann es sein, dass es mehrere Dateien im durchsuchten Verzeichnis gibt, die vor weniger als 1 Tag aktualisiert wurden? Dann besteht $LOG aus mehreren Pfaden, das klappt dann natürlich nicht.

    Außerdem: in welchem Pfad suchst Du denn? Und startest Du das Script per cron? Dann weißt Du überhaupt nicht, wo das Script zum Zeitpunkt des Aufrufs überhaupt aktuell gestartet wird. Ich empfehle einen vollständigen find-Aufruf mit absolutem Pfad, dann bist Du auch sicher, dass das Logfile, das Du haben willst, das gewünschte ist:
    Code:
    LOG=`find /pfad/zum/logverzeichnis -mtime -1 -print`
    Wenn dann mehrere Dateien kommen, dann musst Du über andere find-Optionen einschränken. Ach ja, nochwas: Prüfe vorher, ob in $LOG überhaupt was steht - kann ja sein, dass an dem Tag gar nichts geloggt wurde:
    Code:
    if test -n "$LOG"; then
      mail ...
    fi
    Jan

  5. #5
    Registrierter Benutzer
    Registriert seit
    08.01.2001
    Beiträge
    242
    hi,

    dein find -mtime -1 -print liefert immer 2 ergebnisse zurück.
    Jetzt könntest du mit:
    Code:
    find -mtime -1 -print | tail -n 1
    oder
    Code:
    cd /pfad && ls -1t | head -n 1
    dein problem lösen.

    ich würde allerdings direkt auf den dateinamen gehen und garnicht nach der aktuellsten suchen. den namen kennst du ja, warum also so kompliziert?

    tom

Lesezeichen

Berechtigungen

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