Archiv verlassen und diese Seite im Standarddesign anzeigen : aktuellste datei per mail versenden
frosch007
04-11-2008, 13:37
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
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`
frosch007
05-11-2008, 07:54
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....
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:
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:
if test -n "$LOG"; then
mail ...
fiJan
meinereinerseiner
13-11-2008, 07:48
hi,
dein find -mtime -1 -print liefert immer 2 ergebnisse zurück.
Jetzt könntest du mit:
find -mtime -1 -print | tail -n 1
oder
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.