PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash: abfrage ob eine datei exisitiert



psych
21.04.07, 13:05
Hallo

Hab ein kleines Backup script und möchte nun, dass das script vorher überprüft ob eine bestimmte datei existiert.
Also so etwa:



if dateix = vorhanden then
... mein script...
else
ende


Kann mir da jemand helfen?

Gruß
Psych

buzz768
21.04.07, 13:13
if [ -e dateix ] ;then
... dein script...
fi

Siehe auch man test.

zyrusthc
21.04.07, 13:15
if test -f "dateix"; then
... mein script...
fi

EDIT: Na dann post ich mal die Lösung für/mit test

Greeez Oli

psych
21.04.07, 14:25
Danke euch beiden :D

Gruß
psych

MiGo
22.04.07, 09:57
EDIT: Na dann post ich mal die Lösung für/mit test
Naja, bei den meisten Shells ist " [ ] " (man beachte die Leerzeichen um die Klammern) eh' ein "Alias" auf Test :)

psych
26.04.07, 16:03
Hab nochmal ne Frage... wie schaffe ich es, dass die Ausgabe des Scripts mir per Email geschickt wird! Haben einen funktionierenden Smtp Server im Netz, allerdings auf einer anderen Maschine.

Danke
Psych

zyrusthc
26.04.07, 16:44
Dein Entfernter SMTP Server erfordert sicherlich ein Authenfikation!
Hab dir da mal was geschrieben .. hab es getestet bei mir funktioniert es :)

Dazu musst du aber netcat installieren!


#!/bin/sh

SMTPSERVER="0.0.0.0"
SMTPUSER="username"
SMTPPASS="passwort"

SOURCE="absender@domain.de"
TARGET="zieladresse@domain.de"
SUBJECT="Betreff"

$DATEI="/pfad/dateix"
MAILTEXT=$DATEN

if [ -e $DATEI ] ;then
DATEN="Deine Datei existiert!"

TMPDATA="/tmp/send.txt"

CRYPT=$(perl -MMIME::Base64 -e 'print encode_base64("'$SMTPUSER'\0'$SMTPUSER'\0'$SMTPPASS'");')

echo HELO localhost > $TMPDATA
echo AUTH PLAIN $CRYPT > $TMPDATA

echo MAIL FROM: $SOURCE >> $TMPDATA
echo RCPT TO: $TARGET >> $TMPDATA
echo DATA >> $TMPDATA
echo SUBJECT: $SUBJECT >> $TMPDATA
echo TO: $TARGET >> $TMPDATA
echo $MAILTEXT >> $TMPDATA
echo . >> $TMPDATA
echo QUIT >> $TMPDATA

cat $TMPDATA | netcat $SMTPSERVER 25

rm -f $TMPDATA

fi

Aber sei gewarnt deine SMTP Logindaten stehen dann im Klartext im diesem Script!
Viel Spass...

Greeez Oli