A
Anonymous
Gast
thapate schrieb:Wenn ich dieses Script ausführe bekomme ich kein Ergebnis..Code:find /public/xy/* | awk -F "/" '(length - length($1) - length($2) - length($3) - length($4) -4) >200' > test.txt && echo "zu lange Dateienamen" if test -s test.txt then mail -s "zu lange Dateienamen" -a test.txt mail@blabla.de fi
na dann wolln mer mal nachschauen warum nicht?
extrahieren wir erstmal nur die Befehle und Verknüpfungen und lassen alles andere weg
Code:
find | awk && echo
Das && echo "zu lange Dateinamen" ist also in dieser Konstellation hier schon mal fehlplaziert.
Code:
fi ; then mail ; fi
Code:
# ls -l /usr/bin/mail
lrwxrwxrwx 1 root root 5 5. Aug 2007 /usr/bin/mail -> mailx
Also will das Kommando so wie es hier steht von der Standardeingabe lesen und von dort mindests ein EOF (End Of File) also ein Schließen des Eingabekanales sehen, um weiterzumachen. In deiner Konstellation passiert das nicht, mail wartet und wartet und wartet und ....Manpage mailx schrieb:Sending mail
To send a message to one or more people, mailx can be invoked with arguments which are the names of people to whom the mail will be sent. The user is then expected to type in his message, followed by an `control-D' at the beginning of a line. The section below Replying to or originating mail, describes some features of mailx available to help when composing letters.
Also sollte hier vor das Kommando mail im aller einfachsten Befehlsaufbau mal ein echo das in Richtung mail piped, besser noch, das was oben in der Zeile vorhin zuviel war. (Oder, die Mitteilung das das eine automatische Mail ist die nicht beantwortet werden soll, oder irgend einen anderen Quatsch.)
Jetzt bauen wir das mit den so gewonnen Erfahrungen wieder zusammen
Code:
find /public/xy/* | awk -F "/" '(length - length($1) - length($2) - length($3) - length($4) -4) >200' > test.txt
if test -s test.txt
then
echo "zu lange Dateienamen" | mail -s "zu lange Dateienamen" -a test.txt mail@blabla.de
fi
robi