NAS SYNO DS218J : notification à l'arrivée d'un fichier dans un répertoire

  • Vague de SPAM

    Suite à une vague de spam sur le forum, les inscriptions sont temporairement limitées.

    Après votre inscription, un membre de l'équipe devra valider votre compte avant qu'il ne soit activé. Nous sommes désolés pour la gêne occasionnée et vous remercions de votre patience.

GARUDASEB

Nouveau membre
3 Avril 2019
6
0
16
Bonjour le Forum,
je suis nouveau ici, merci de m’accueillir.
Je possède un serveur nas Synology D218J.
Je cherche à paramétrer, pour un dossier que je dois surveiller, une notification (mail ou autre) à l'arrivée d'un fichier dans ce dossier.

Comment procéder ?

Merci à vous
Bonne journée

Sébastien
 
Hello,

je t'ai trouve un script qui pourrait t'aider. A essayer...

https://forum.synology.com/enu/viewtopic.php?t=99504

Code:
#!/usr/bin/perl

use strict;
use warnings;
use File::Basename;
use File::stat;
use Cwd 'abs_path';

my $dirname = '/volume1/homes/reporter'; # folder to monitor
my $scriptdir = dirname(abs_path($0));
my $reportFile = $scriptdir.'/report.txt';
my $reportSent = $scriptdir.'/sent.txt';
my $Current = $scriptdir.'/current.txt';
my $Prev = $scriptdir.'/prev.txt';
my $reportEmail = 'TO_EMAIL@SERVER.NET'; # recipient of reports
my $freq = 12*60; # maximum frequency of emails

system ("ls $dirname -R -1 > $Current");

unless (-e $Prev) {
system ("cp $Current $Prev");
print "Running for the 1st time\nObtaining file list\n";
}

system ("diff $Prev $Current > $reportFile");
my $filesize = -s "$reportFile";
if ($filesize > 0) {
my $modif = 0;
if (-e $reportSent) { $modif=stat($reportSent)->mtime;}
else {
print "Sending first email\n";
}

my $delay = (time - $modif) / 60 ;
if ($delay < $freq) {
print "only $delay minutes passed since last email. Waiting for $freq minutes after last sent email\n";
}
else {
system ('perl '.$scriptdir.'/sendEmail -f FROM_EMAIL@SERVER.NET -t '.$reportEmail.' -u "Reporter folder updates" -xu USERNAME -xp PASSWORD -o message-charset=UTF-8 -o message-file='.$reportFile);
system ("mv -f $reportFile $reportSent");
system ("mv -f $Current $Prev");
}
}
 
Hello
Merci cela semble parfaitement correspondre...
C'est un peu compliqué pour moi, mais je vais étudier cela ce soir.
Merci à toi
bonne journée
 
Bonjour
oula la je suis pas sur d'avoir compris :shock:

Voila ce que j'ai compris :

- copier les fichiers "SendEmail dans le dossier concerné
http://caspian.dotconf.net/menu/Software/SendEmail/

- Créer une tache dans le planificateur de taches en y insérant le code en script modifié avec le detinataire mail et le chemin du dossier à surveiller.

C'est bien cela ?

Merci de ton aide

Bonne journée
Sébastien