
Ich habe ein Synology NAS mit DSM. Ich habe ein Bash-Skript erstellt, um zu prüfen, ob eine bestimmte Datei in einem bestimmten Ordner vorhanden ist. Das Skript wird nach einem Zeitplan ausgeführt und sendet mir das Ergebnis per E-Mail zurück.
Das Problem besteht darin, dass ich zu viele E-Mails bekomme, in denen nur steht, dass das Skript ordnungsgemäß ausgeführt wurde.
Der DSM-Taskplaner ermöglicht das Senden der E-Mail nur, wenn das Skript abnormal beendet wird.
Meine Frage ist:wie kann ich eine abnormale Beendigung des Skripts erzwingen?
Dies würde ich tun, um eine E-Mail zu erhalten, wenn die gesuchte Datei nicht existiert.
Antwort1
Sie können exit 1
das Skript mit beenden.
Der Exitcode 0
bedeutet, dass alles problemlos gelaufen ist, alle anderen weisen auf eine Art Fehler hin.
Antwort2
Sie können einen Exit-Code verwenden, wenn die Datei fehlt:
#!/bin/bash
file="/foo/bar"
if [ -e "$file" ]
then
exit 0
else
exit 1
fi
[ -e ]
ist ein Operator, der prüft, ob "$file"
existiert. Er ist gleichwertig mit test -e $file
if-else-fi, aber dafür geeignet.
SieheManntestwenn Sie mehr Operatoren benötigen.
Edit:
Um es noch genauer zu beschreiben, gibt es auchandere Exit-CodesDies können Sie der Einfachheit halber verwenden, vorausgesetzt, Sie erhalten eine andere E-Mail-Warnung für den Fall, dass das Skript „abstürzt“ oder aus irgendeinem Grund nicht ausgeführt wird.