Skript für Benachrichtigung von Dateien mit Skip von bestimmten Unterordnern

Status
Für weitere Antworten geschlossen.

TurboKanne

Benutzer
Mitglied seit
24. Feb 2015
Beiträge
86
Punkte für Reaktionen
8
Punkte
8
Hallo zusammen,

um per E-Mail benachrichtigt zu werden, wenn eine neue Datei in ein definiertes Verzeichnis abgelegt wird, habe ich folgendes Skript erstellt. Das funktioniert nun soweit auch ganz gut.
Allerdings würde ich gerne einen versteckten Ordner ausklammern, da bei Drive-Verzeichnissen gerne mal der Systemordern @eaDir angelegt wird. Das Skript soll dabei aber nicht ausgelöst werden, bzw, es soll keine Nachricht gesendet werden. Wie kann ich das Skript nun ändern, damit für Ordner mit dem Namen "@eaDir" keine Prüfung stattfindet?

Rich (BBCode):
#!/bin/sh

# Definition der Variablen
EMPFAENGER=meine@email.de
ABSENDER='From: Absender <absender@email.de>'
BETREFF='Datei Übersicht Team 3'

PFAD='/volume1/collab/team_drei/scan/'
DATEI='*.*' 

ABSPFAD=$PFAD$DATEI
LIST="$(find $PFAD -type f)"

# innerhalb des Pfads kommt @eaDir vor und soll keine Auswirkung haben

if ls $ABSPFAD > /dev/null 2>&1;
then 
/usr/bin/php -r "mail('$EMPFAENGER', '$BETREFF', '$LIST', '$ABSENDER');"
#else
# nichts machen
fi

Wäre über Hilfestellung sehr danke glücklich

Grüße
TurboKanne
 

TurboKanne

Benutzer
Mitglied seit
24. Feb 2015
Beiträge
86
Punkte für Reaktionen
8
Punkte
8
Hallo, habe es versucht mit:

Rich (BBCode):
#!/bin/sh

# Definition der Variablen
EMPFAENGER=meine@email.de
ABSENDER='From: Absender <absender@email.de>'
BETREFF='Datei Übersicht Team 3'

PFAD='/volume1/collab/team_drei/scan/'
DATEI='*.*' 

ABSPFAD=$PFAD$DATEI
LIST="$(find $PFAD ! -path "\@eaDir" -type f)"

# innerhalb des Pfads kommt @eaDir vor und soll keine Auswirkung haben

if ls $ABSPFAD > /dev/null 2>&1;
then 
/usr/bin/php -r "mail('$EMPFAENGER', '$BETREFF', '$LIST', '$ABSENDER');"
#else
# nichts machen
fi

Leider kommen die Benachrichtigungen weiterhin mit dem ungewünschten Unterordner an. Habe alternative Schreibweisen verwendet:

find $PFAD ! -path "\@eaDir" -type f
find $PFAD ! -path "\@eaDir\" -type f
find $PFAD ! -path "/@eaDir" -type f
find $PFAD ! -path "/@eaDir/" -type f
find $PFAD ! -path "@eaDir" -type f

Nichts von dem war erfolgreich.
 
Zuletzt bearbeitet:

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.247
Punkte für Reaktionen
2.845
Punkte
423
Probier mal
Code:
find "$PFAD" ! -path "*/@eaDir/*" -type f
 

TurboKanne

Benutzer
Mitglied seit
24. Feb 2015
Beiträge
86
Punkte für Reaktionen
8
Punkte
8
Probier mal
Code:
find "$PFAD" ! -path "*/@eaDir/*" -type f

Hallo,

Danke, Dein Vorschlag zeigt jedoch genau nur den Inhalt des unerwünschten Ordners.

Zwischenzeitlich habe ich eine für mich funktionierende Lösung mit -not -regex gefunden:

Rich (BBCode):
#!/bin/sh

# Definition der Variablen
EMPFAENGER=meine@email.de
ABSENDER='From: Absender <absender@email.de>'
BETREFF='Datei Übersicht Team 3'

PFAD='/volume1/collab/team_drei/scan/'
DATEI='*.*' 

ABSPFAD=$PFAD$DATEI
LIST="$(find $PFAD -not -regex '.*eaDir.*')"

# innerhalb des Pfads kommt @eaDir vor und soll keine Auswirkung haben

if ls $ABSPFAD > /dev/null 2>&1;
then 
/usr/bin/php -r "mail('$EMPFAENGER', '$BETREFF', '$LIST', '$ABSENDER');"
#else
# nichts machen
fi

Thema erledigt. Danke!
Grüße
TurboKanne
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
12.247
Punkte für Reaktionen
2.845
Punkte
423
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat