ubuntuusers.de

vor dem kopieren auf das existieren einer datei prüfen

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

skueneth

Anmeldungsdatum:
8. Juni 2010

Beiträge: 7

Hallo zusammen,

ich möchte vor einem kopiervorgang prüfen, ob eine bestimmte datei existiert, wenn ja dann soll kopiert werden, wenn nein dann soll per mail benachrichtigt werden. z.B. wenn /mnt/mp4_server1/archiv/ok.txt exisitiert, dann soll kopiert werden.

Das mit dem mailen habe ich schon: sendEmail -v -f alert@server1 -s 102.10.1.71:25 -xu Sender -xp Mailer -t stefan@rz-host.de -o -u "Achtung Fehler" -m "Achtung Fehler"

n. Wie lautet die ganze Befehlszeile ? Wie baue ich es ein mit else ??

Danke

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

1
2
3
4
5
6
7
8
#!/bin/bash

if [[ -f /mnt/mp4_server1/archiv/ok.txt ]]
then
	# ... Datei ist da, kopieren ...
else
	# ... nicht da, schicke Mail ...
fi

HTH. ☺

skueneth

(Themenstarter)

Anmeldungsdatum:
8. Juni 2010

Beiträge: 7

ok danke, das funktioniert soweit. wie muß ich es dann schreiben (ganze Zeile), wenn er beim nicht vorhanden sein einfach das skript abbricht und beendet ?

vergrößern #!/bin/bash

if [[ -f /mnt/mp4_server1/archiv/ok.txt ]] then cp /mnt/ ....... else exit ??? fi

so richtig ?

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Man prüft Fehlerbedingungen so weit als möglich nie vorweg. Solche Prüfungen sind unzuverlässig, weil sie mit der folgenden Aktion nur mittelbar zu tun haben. Außerdem kann man unmöglich alle möglichen Fehlerursache vorher testen.

Wenn Du also eine E-Mail erhalten möchtest, wenn die Kopie fehlschlägt, dann formuliere das auch im Skript so:

1
2
3
if ! cp some_file somewhere_else; then
    send_mail "copy failed"
fi

Nur so erhältst Du wirklich immer eine E-Mail, wenn die Kopie aus irgendwelchen Gründen fehlschlägt. Alternativ kann man natürlich auch abbrechen:

1
cp some_file somewhere_else || exit 1

skueneth

(Themenstarter)

Anmeldungsdatum:
8. Juni 2010

Beiträge: 7

danke du hasts echt drauf. also so:

if ! /mnt/mp4_server1/archiv/ /mnt/mp_100_server2/backup/; then sendEmail -v -f alert@kldatagatherer

oder ?

Kannst Du Dir im selben Forumsbereich noch meine anderes Problem kurz ansehen, es geht um das kopieren von dateien und ordern / unterordner mit außschluß von best. Dateitypen. Wäre echt super.

Danke

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

Formatiere Deine Beiträge doch bitte vernünftig. Gerade für Quelltext und Kommandos gibt es ein spezielles Format, dass im Interesse der Lesbarkeit auch benutzt werden sollte.

Im gezeigten Kommando jedenfalls fehlt der cp-Aufruf.

Antworten |