UNIX: Unterdrückung von Fehlermeldungen
Turtle
- webserver
0 Fabian St.0 Mike©1 Christian Seiler
Hallo,
ich lasse per CRONJOB die Datei cron.daily ausführen.
Diese verschiebt pdf-Dokumente aus einem in ein anderes Verzeichnis.
Der Inhalt der datei sieht so aus:
mv -f /home/virtual/jubo.de/home/upload/*.pdf /home/virtual/jubo.de/var/www/html/_shop/_downloads
chown admin61.admin61 /home/virtual/jubo.de/var/www/html/_shop/_downloads/*.pdf
Grundsätzlich ist es so, dass Fehlermeldungen bei Ausführen des CRONJOBs per Mail an mich gesendet werden.
Wenn in dem Ausgangsverzeichnis keine pdf-Dokumente vorhanden sind, dann gibt es leider auch eine Fehlermeldung deshalb.
Diese Fehlermeldung möchte ich aber unterdrücken, da ich es nicht als Fehler werte wenn keine pdf-Dokumente vorhanden sind.
Wie schaffe ich das?
Die Fehlermeldung sieht so aus:
mv: cannot stat `/home/virtual/jubo.de/home/upload/*.pdf': No such file or directory
Viele Grüsse und danke im vorraus,
Turtle
Hi!
Wenn in dem Ausgangsverzeichnis keine pdf-Dokumente vorhanden sind, dann gibt es leider auch eine Fehlermeldung deshalb.
Diese Fehlermeldung möchte ich aber unterdrücken, da ich es nicht als Fehler werte wenn keine pdf-Dokumente vorhanden sind.
Wie schaffe ich das?Die Fehlermeldung sieht so aus:
mv: cannot stat `/home/virtual/jubo.de/home/upload/*.pdf': No such file or directory
Das ist generell mit »Output-Redirection« möglich:
mv -f /home/virtual/jubo.de/home/upload/*.pdf /home/virtual/jubo.de/var/www/html/_shop/_downloads > /dev/null 2>&1
Damit werden alle Ausgaben (also stdout und stderr) nach /dev/null umgeleitet und du bekommst auch keine Mail mehr.
Grüße,
Fabian St.
Moin,
mv -f /home/virtual/jubo.de/home/upload/*.pdf /home/virtual/jubo.de/var/www/html/_shop/_downloads
chown admin61.admin61 /home/virtual/jubo.de/var/www/html/_shop/_downloads/*.pdf
schicke die Fehlermeldung nach /dev/null
An das Ende der btreffenden Befehlzeile 2> /dev/null anhängen
Beispiel: rm file.txt 2> /dev/null
regds
Mike©
Hallo Turtle,
Wenn in dem Ausgangsverzeichnis keine pdf-Dokumente vorhanden sind, dann gibt es leider auch eine Fehlermeldung deshalb.
Diese Fehlermeldung möchte ich aber unterdrücken, da ich es nicht als Fehler werte wenn keine pdf-Dokumente vorhanden sind.
Wie schaffe ich das?
Du kannst zwei Dinge machen: 1) kannst Du alle Fehlermeldungen unterdrücken, indem Du an einen Befehl 2>/dev/null anhängst (das leitet die Fehlerausgabe auf /dev/null um, und /dev/null kannst Du mit einem schwarzen Loch vergleichen):
mv -f /home/virtual/jubo.de/home/upload/*.pdf /home/virtual/jubo.de/var/www/html/_shop/_downloads 2>/dev/null
Allerdings unterdrückst Du somit auch Fehlermeldungen, die aus anderen Gründen auftauchen (bspw: aus irgend einem Grund stimmen die Dateirechte nicht mehr und das »mv« schlägt deswegen fehl - dann würdest Du ja informiert werden wollen, oder?). Insofern halte ich es für besser, einfach zu Prüfen, ob das »*« von der Shell expandiert wird (Dateien existieren) oder nicht:
EXPANDIERT=$(echo /home/virtual/jubo.de/home/upload/*.pdf)
if [ "/home/virtual/jubo.de/home/upload/*.pdf" != "${EXPANDIERT}" ] ; then
# Deswegen können die Dateien auch verschoben werden
mv -f /home/virtual/jubo.de/home/upload/*.pdf /home/virtual/jubo.de/var/www/html/_shop/_downloads
fi
Viele Grüße,
Christian