Forums Neueste Beiträge
 

Shell Script - Mail

11/12/2012 - 09:04 von Frank Kirschner | Report spam
Hallo zusammen,

wollte mir ein Script basteln um mir per Email eine Liste von Dateien zu
mailen, die kleiner sind als 600 kB:


#!/bin/bash

FOUND=$(find /srv/files/mysqldump -type f -size -600k -print)
if [[ -n $FOUND ]]; then
mail -s "Dump too small" user@domain.de < $FOUND
fi

exit 0



Nur leider werden mir die gefundenen Dateien ausgegeben und der
Mailaufruf schlàgt fehl mit einem Fehler in der mail Zeile.
Ich denke mal, dass der Mailtext aus der variable $FOUND syntaktisch
falsch verarbeitet wird. Wie geht's richtig?

lg
Frank
 

Lesen sie die antworten

#1 Frank Kirschner
11/12/2012 - 10:31 | Warnen spam
Am 11.12.2012 10:18, schrieb Juergen Ilse:
Hallo,

Frank Kirschner wrote:
wollte mir ein Script basteln um mir per Email eine Liste von Dateien zu
mailen, die kleiner sind als 600 kB:

#!/bin/bash

FOUND=$(find /srv/files/mysqldump -type f -size -600k -print)
if [[ -n $FOUND ]]; then
mail -s "Dump too small" < $FOUND
fi

exit 0

Nur leider werden mir die gefundenen Dateien ausgegeben und der
Mailaufruf schlàgt fehl mit einem Fehler in der mail Zeile.
Ich denke mal, dass der Mailtext aus der variable $FOUND syntaktisch
falsch verarbeitet wird. Wie geht's richtig?



Du willst nicht die Eingabe aus einer Datei lesen, deren Name "$FOUND" ist
(wenn du das wolltest, waere es eine gute Idee gewesen, $FOUND mit Double
Qoutes zu quoten), sondern du willste den Inhalt von $FOUND als Eingabe
fuer das Kommando Mail verwenden. Das bekommst du z.B. mit folgendem hin:

echo $FOUND | mail -s "Dump too small"

Wobei das allerdings so nicht funktioniert, wenn du Dateien dabei hast,
deren Namen whitespace enthalten (aber dann haettest du ohnehin ein Problem,
da du die Namen in $FOUND nicht wieder sicher so getrennt bekommen wuerdest,
wie sie im Original einmal waren).



$FOUND | mail -s "Dump too small"

hatte ich auch schon probiert - im Nachgang logisch dass da ein 'echo'
davor muss. Das Script funktiniert nun wie gewünscht.

Vielen Dank für Deine Hilfe.

lg
Frank

Ähnliche fragen