Script für automatische Email

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

pottypott

Benutzer
Registriert
12. Sep. 2019
Beiträge
57
Reaktionspunkte
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 :-)
 
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
 
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?
 
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.
 
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
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