Aller au contenu

Notification Par Bip Ou Pop-up Quand Un Fichier Arrive Dans Un R

Featured Replies

Posté(e)

salut, la question n'est pas propre au 107+:

comment faire une notification soit par pop-up, soit par un bip , soit par email lorsque un utilisateur avec les autorisations, copie, déplace efface,etc.... un quelconque fichier ou répertoire sur le serveur.

Par ex: j 'administre le serveur, je passe 5 à 6 heures par jour avec le Syn.Quand un employé envoie le fichier ou le document que j'ai demandé, je voudrais une notification automatique.

L'idéal serait: nom, IP, domaine, groupe de travail, etc....

Y-aurait-il un prog à installer sur le serveur pour cela?

Le problème: si des dizaines de fichiers sont envoyés, cela va être le carillon ou l'invasion de pop-ups.

Qui a une idée?

a+

  • 2 semaines après...
Posté(e)

salut, la question n'est pas propre au 107+:

comment faire une notification soit par pop-up, soit par un bip , soit par email lorsque un utilisateur avec les autorisations, copie, déplace efface,etc.... un quelconque fichier ou répertoire sur le serveur.

Par ex: j 'administre le serveur, je passe 5 à 6 heures par jour avec le Syn.Quand un employé envoie le fichier ou le document que j'ai demandé, je voudrais une notification automatique.

L'idéal serait: nom, IP, domaine, groupe de travail, etc....

Y-aurait-il un prog à installer sur le serveur pour cela?

Le problème: si des dizaines de fichiers sont envoyés, cela va être le carillon ou l'invasion de pop-ups.

Qui a une idée?

a+

Salut,

Il te faudrait un petit soft sur ton pc qui "écoute" un répertoire donné sur le syno par exemple. Quand il détecte une modif il te le notifie par un des moyens que tu évoques.

ça te parait suffisant comme système ?

Posté(e)

salut, la question n'est pas propre au 107+:

comment faire une notification soit par pop-up, soit par un bip , soit par email lorsque un utilisateur avec les autorisations, copie, déplace efface,etc.... un quelconque fichier ou répertoire sur le serveur.

Par ex: j 'administre le serveur, je passe 5 à 6 heures par jour avec le Syn.Quand un employé envoie le fichier ou le document que j'ai demandé, je voudrais une notification automatique.

L'idéal serait: nom, IP, domaine, groupe de travail, etc....

Y-aurait-il un prog à installer sur le serveur pour cela?

Le problème: si des dizaines de fichiers sont envoyés, cela va être le carillon ou l'invasion de pop-ups.

Qui a une idée?

a+

Je pensais justement à me faire un script linux qui fasse un truc dans le genre, beep ou mail. Mais moins riche en informations associées, je suis seul sur le syno ;)

Si tu trouve rien pour ton bonheur, et que je pond mon script assez rapidement, je te fais signe.

Posté(e)
  • Auteur

Salut,

Il te faudrait un petit soft sur ton pc qui "écoute" un répertoire donné sur le syno par exemple. Quand il détecte une modif il te le notifie par un des moyens que tu évoques.

ça te parait suffisant comme système ?

oui cela pourrait marcher mais si je me connecte d'une autre machine ou d'un autre système, il faudra installer le programme sur chaque système: j'utilise à la fois Mac OS, Xp pro et Ubuntu. Il faudrait un soft installé sur le serveur et qui envoie la notification au client.Je suis en train d'installer le Bootstrap (IPKG)et les paquets de programmes. Il y a peut-être quelque chose de ce côté-là.

Tes idées et conseils sont les bienvenus

A+

Posté(e)

Bonsoir,

Tu veux vérifier un ou plusieurs dossiers 'unique', ou toute une arborescence ?

Chaque utilisateur a un compte (login) ?

Beaucoup d'utilisateur ?

Quel intervalle de temps, pour la vérification ?

As-tu activé / installé Telnet - IPKG - ESMTP - mon script moniteur ?

Pas mal de question, je sais, mais c'est juste pour faire avancer ton idée ;)

Et peut être, en faire naître une chez moi ?

Peut-être...

Fred. :hi:

  • 6 mois après...
Posté(e)
  • Auteur

Je pensais justement à me faire un script linux qui fasse un truc dans le genre, beep ou mail. Mais moins riche en informations associées, je suis seul sur le syno ;)

Si tu trouve rien pour ton bonheur, et que je pond mon script assez rapidement, je te fais signe.

Salut, alors, rien de neuf? J'ai toujours pas trouvé la soluce.

Une piste? Un bout de script?

A+

Posté(e)

Bonjour,

La solution existe, il suffit de savoir exactement tes besoins, c'est tout.

Si tu pouvais donc répondre aux questions que j'avais posés a l'époque, un grand pas serait fait :D

A+ :hi:

Fred.

Posté(e)

tu peux le faire avec Syncback, (meme simplement en simulation) tu parametres les notifications par mail, et tu recois les chg dans un fichier html

et par une macro tu peux les incoporer dans un fichier excel ou access

en apparté: les journaux de connections du syno sauvegardé en html s'ouvre tres bien dans excel ou access pour faire des stats

Patrick

Posté(e)

Bonjour,

La solution existe, il suffit de savoir exactement tes besoins, c'est tout.

Si tu pouvais donc répondre aux questions que j'avais posés a l'époque, un grand pas serait fait :D

A+ :hi:

Fred.

Alors personnellement j ai créer ce petit script en php (install de php et de procmail pour l'envoie des mails)

Mon script est lance par cron toute les 10 mn

Pour le moment je ne fait que vérifier que l'upload de donnée et non la suppression de fichier

Dans 1 er temps je note la taille du répertoire a surveiller que je stocke dans un fichier

Dans un 2 eme temps je vérifie la nvlle taille ,si cette derniere est ogmenté je stocke la taille dans un autre fichier

Dans un 3 eme temps je verifie si la taille du repertoire est stabililisé et si c'est le cas je declare donc que l'upload est terminé et j envoie un mail ,sinon le test est recommencer

Pour info si vous ne l'auriez pas compris quand je parle de 1er,2 eme temp etc cela correspond a l'execution du script toute les X mn, dans mon cas 20 mn apres la fin d'un upload de fichier je suis prevenu par mail.

Je pense que mon script peut etre modifié et améliorer (Je pense a toi Fred par ex)

<?php

// ouverture du fichier et recuperation de l'ancienne taille

$oldsizefile = fopen ("/volume1/PASCAL/surveilleftp/oldsize.stt", "r+");

$oldsize = fgets($oldsizefile);

fclose ($oldsizefile); 

// ouverture du fichier et recuperation du statut (idem ou different)

$oldstatutfile = fopen ("/volume1/PASCAL/surveilleftp/oldstatut.stt", "r+");

$oldstatut = fgets($oldstatutfile);

fclose ($oldstatutfile); 

// récupétation de la taille originale

$tailleoriginalefile = fopen ("/volume1/PASCAL/surveilleftp/tailleoriginale.stt", "r+"); 

$tailleoriginale = fgets($tailleoriginalefile);

fclose ($tailleoriginalefile);


//recuperation de la taille du repertoire


$folder = "/volume2/UPLOADFTP";	 //adresse du repertoire

$dossier = opendir($folder);

while ($Fichier = readdir($dossier)) 

{

  if ($Fichier != "." && $Fichier != "..") 

	  {

	$nomFichier = $folder."/".$Fichier;

 $size = filesize($nomFichier);

	   }

}

 $path="/volume2/UPLOADFTP"; //adresse du repertoire

$ar=getDirectorySize($path);

// fin récuperation taille répertoire taille dans $ar['size']



// mise a jour du fichier avec la nvlle taille

$newsize = $ar['size'];

$oldsizefile = fopen ("/volume1/PASCAL/surveilleftp/oldsize.stt", "w+"); 

fputs ($oldsizefile, $newsize);

fclose ($oldsizefile);


//mise a jour status et ecriture

if ($oldsize >= $newsize) //je verifie si les tailles ont changés

	{

	$newstatut = "idem";

	}

	 else 

	{

	$newstatut = "different"; 

	}


$oldstatutfile = fopen ("/volume1/PASCAL/surveilleftp/oldstatut.stt", "w+"); 

fputs ($oldstatutfile, $newstatut);

fclose ($oldstatutfile);



//vérification des differences

if ($newstatut =="different" || $oldstatut =="different") //Je verifie s'il y a transfert ou s'il y a eu transfert

	{ 

	if ($oldsize==$newsize) //les tailles sont identique le transfert est terminé j envoie le mail

		{


//envoie du mail


$mailfile= fopen("/volume1/PASCAL/surveilleftp/mail", "w+");

fputs ($mailfile, "From: \"SYNO Maison\" <postmaster@zimko.org>"."\n");

fputs ($mailfile, "To: <postmater@zimko.org>"."\n");

fputs ($mailfile, "Subject: Modification répertoire FTP"."\n");

fputs ($mailfile, "X-Priority: 1"."\n");

fputs ($mailfile, "Content-Type: text/plain; charset=iso-8859-1"."\n");

fputs ($mailfile, "Content-Transfer-Encoding: 8bit"."\n");

fputs ($mailfile, "MIME-Version: 1.0"."\n");

fputs ($mailfile, "Date: ".date("d/m/Y H:i:s")."\n"."\n");

fputs ($mailfile, sizeFormat($newsize-$tailleoriginale)." on ‚t‚ rajout‚ dans votre repertoire ftp"."\n");


fclose ($mailfile);

exec("esmtp postmaster@xxxx.org < /volume1/PASCAL/surveilleftp/mail");


//et je remet a 0 la taille originale

		$tailleoriginalefile = fopen ("/volume1/PASCAL/surveilleftp/tailleoriginale.stt", "w+"); 

		fputs ($tailleoriginalefile, "0");

		fclose ($tailleoriginalefile);



		}


		else //le transfert est en cours

		{


		//copie de la taille originale des la premiere détection

		if ($tailleoriginale==0)

			{

				$tailleoriginalefile = fopen ("/volume1/PASCAL/surveilleftp/tailleoriginale.stt", "w+"); 

				fputs ($tailleoriginalefile, $oldsize);

				fclose ($tailleoriginalefile);

			}

		}

	}

else //pas de transfert detecté

	{


	}		 



//fonction ......

function getDirectorySize($path)

{

  $totalsize = 0;

  $totalcount = 0;

  $dircount = 0;

  if ($handle = opendir ($path))

  {

	while (false !== ($file = readdir($handle)))

	{

	  $nextpath = $path . '/' . $file;

	  if ($file != '.' && $file != '..' && !is_link ($nextpath))

	  {

		if (is_dir ($nextpath))

		{

		  $dircount++;

		  $result = getDirectorySize($nextpath);

		  $totalsize += $result['size'];

		  $totalcount += $result['count'];

		  $dircount += $result['dircount'];

		}

		elseif (is_file ($nextpath))

		{

		  $totalsize += filesize ($nextpath);

		  $totalcount++;

		}

	  }

	}

  }

  closedir ($handle);

  $total['size'] = $totalsize;

  $total['count'] = $totalcount;

  $total['dircount'] = $dircount;

  return $total;

}


function sizeFormat($size)

{

	if($size<1024)

	{

		return $size." bytes";

	}

	else if($size<(1024*1024))

	{

		$size=round($size/1024,1);

		return $size." KB";

	}

	else if($size<(1024*1024*1024))

	{

		$size=round($size/(1024*1024),1);

		return $size." MB";

	}

	else

	{

		$size=round($size/(1024*1024*1024),1);

		return $size." GB";

	}


} 

?>

Posté(e)

Bonsoir,

Merci Zimko, j'y travaillerais dessus un jour prochain :D

Je ne suis pas encore très a mon aise en PHP, et je suis sûr que ton script m'apprendra pas mal de chose ;)

Merci, encore :hi:

Fred.

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.