Script für automatische Email

pottypott

Benutzer
Mitglied seit
12. Sep 2019
Beiträge
57
Punkte für Reaktionen
11
Punkte
8
Hallo zusammen,

ich habe eine etwas ungewöhnliche Anfrage und hoffe, dass mir einer heflen kann :)

Auf den Smartphones von meinen Eltern, meiner Frau und von mir läuft DS Cloud und synchronisiert diverse Ordner. Das klappt sehr zuverlässig, außer wenn das Smartphone neu startet. Dann startet trotz diversen Autostart-Apps die App nicht und ich merke erst viele Tage verspätet, dass kein Sync mehr stattfindet.

Da meine Eltern und leider auch meine Frau da nicht wirklich drauf achten, würde ich gerne einen Autojob laufen lassen, der folgendes prüft:

Prüfe in einem Ordner X, ob die neueste Datei Älter als 2 Tage alt ist. Wenn ja, dann schicke eine Mail. Da eigentlich täglich Dateien kommen, sollten 2 Tage ein Indiz dafür sein, dass DS Cloud auf dem Smartphone nicht läuft.

Mir ist leider überhaupt kein Weg bekannt, wie ich das realisieren könnte. Wäre euch super dankbar, wenn da jemand eine Idee hat :)
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Das sollte mit einem Script möglich sein.

Man prüft mit
Code:
find
ob frische Dateien im Ordner sind. Beispiel:
Code:
find /volume1/gemeinsamerOrdner/handyfrau -mtime -2 -type f
Mittels If-Anweisung prüft man, ob diese Suche mit find eine Ausgabe bringt. Wenn ja, wird nichts getan, wenn nein, wird eine E-Mail versandt.
Code:
SUBJECT="Handy der Frau überprüfen"
CONTENTS="Check"

ssmtp absender@email.tld << EOF
To: empfaenger@email.tld
From: absender@email.tld
Subject: $SUBJECT

$CONTENTS
EOF
Für die E-Mailfunktion muss eine E-Mailadresse (absender@email.tld) für eine Benachrichtigung im DSM hinterlegt sein.

Lesestoff:
https://wiki.ubuntuusers.de/Shell/Bash-Skripting-Guide_für_Anfänger/https://wiki.ubuntuusers.de/find/
Statt E-Mail kann ich empfehlen sich die Nachrichten über den Messenger Telegram direkt auf das Handy schicken zu lassen. Dafür gibt es schon ein Script, welches dies übernimmt:
Script von Fabian Schlenz => https://github.com/fabianonline/telegram.sh
 

pottypott

Benutzer
Mitglied seit
12. Sep 2019
Beiträge
57
Punkte für Reaktionen
11
Punkte
8
Das hört sich schonmal gut an, allerdings scheint das nicht ganz zu funktionieren. Ich habe eben Mal
"find /volume1/homes/Username/Drive/Moments -mtime -2 -type f" zum Test eingegeben und er findet Dateien. Allerdings findet er auch mit +5 sehr viele Dateien, die aber definitiv ein Datum im Dezember haben (Änderungs- und Erstellungsdatum). Habe ich da noch einen Denkfehler?
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Schau dir meinen Link zu "find" an.

Jede Datei hat drei Zeiten (mtime, atime, ctime). Da musst du schauen, was am besten passt. Es wird im Link aber alles genau erklärt.
 

pottypott

Benutzer
Mitglied seit
12. Sep 2019
Beiträge
57
Punkte für Reaktionen
11
Punkte
8
Sooooo, habe es glaube ich hinbekommen. Vielen Dank!!!

Dür die Nachwelt, hier das Ergebnis:

if find /volume1/homes/NK/Drive/Moments -ctime -1 -type f | read
then
NK="true"
NK1="NK: DS Cloud aktiv"
else
NK= "false"
NK1="NK: DS Cloud nicht aktiv"
fi
if find /volume1/homes/SK/Drive/Moments -ctime -1 -type f | read
then
SK="true"
SK1="SK: DS Cloud aktiv"
else
SK="false"
SK1="SK: DS Cloud nicht aktiv"
fi
if ([ "$SK" == "false" ] || [ "$NK" == "false" ])
then
SUBJECT="Handyupload inaktiv"
CONTENTS="DS Cloud ist auf mindestens einem Smartphone nicht mehr aktiv"

ssmtp MAILADRESSE << EOF
To: MAILADRESSE
From: MAILADRESSE
Subject: $SUBJECT

$CONTENTS
$NK1
$SK1
EOF
fi


Sind zum Testen erstmal nur zwei User. NK und SK sind hier eingesetzte Kürzel für die eigentlichen Usernamen :)

Hier das Ergebnis:
1609769941356.png

Ich habe die Mail etwas editiert, damit man keine Details zu meiner Familie erkennt. Oben steht eigentlich der Absender und statt NK und SK die vollen Namen.

Verbesserungsvorschläge???
 
  • Like
Reaktionen: peterhoffmann


 

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