Question
Script: notification par mail dans un cas précis
- apprentiPWS
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 7 ans 4 mois #22806
par apprentiPWS
Script: notification par mail dans un cas précis a été créé par apprentiPWS
Dans un premier temps bonjour à tous ceux qui passe sur ce poste.
Nouvellement inscris sur le site, je viens requérir votre assistance.
débutant en powershell et surtout en script, j'ai réussi à glaner quelques info sur le net et, ai je pense, réussi à construire une premier partie.Cependant je suis maintenant bloqué.
Bon qu'on soit d'accord, je n'ai fait que modifier quelques lignes à des morceaux pris à droite et à gauche et je n'ai plus toutes les sources.
donc venons en au fait, que dois faire ce script.
contexte :
A-
mise à disposition d'un espace de stockage à différents utilisateurs. Un dossier par utilisateurs.
B-
Chacun des utilisateurs à droit à un quota précis et différents (100Mo pour l'un 500Mo pour un autre et 2Go pour le dernier par exemple)
C-
je désire recevoir une notification d'alerte par mail, lorsqu'un de ces dossier arrive presque à saturation et une autre notification lorsque le quota autorisé est dépassé (sans blocage).
D-
ce script doit être modulable car de future dossiers utilisateurs pourront être créés dans l'avenir et ainsi être pris en compte.
voilà je pense n'avoir rien oublié.
n'hésitez pas à poser des questions.
jusqu'à maintenant j'ai trouvé de quoi obtenir les infos concernant la taille des dossiers et à m'envoyer une notification par mail.
Mais ça ne fonctionne que lorsque je le fait manuellement et il n'y a pas de condition concernant les différentes tailles. je reçois un résultat global aussi bien des dossiers vides que ceux pleins.
je vous joins ce que j'ai pu obtenir jusqu'à maintenant.
Merci d'avance et désolé du dérangement.
Nouvellement inscris sur le site, je viens requérir votre assistance.
débutant en powershell et surtout en script, j'ai réussi à glaner quelques info sur le net et, ai je pense, réussi à construire une premier partie.Cependant je suis maintenant bloqué.
Bon qu'on soit d'accord, je n'ai fait que modifier quelques lignes à des morceaux pris à droite et à gauche et je n'ai plus toutes les sources.
donc venons en au fait, que dois faire ce script.
contexte :
A-
mise à disposition d'un espace de stockage à différents utilisateurs. Un dossier par utilisateurs.
B-
Chacun des utilisateurs à droit à un quota précis et différents (100Mo pour l'un 500Mo pour un autre et 2Go pour le dernier par exemple)
C-
je désire recevoir une notification d'alerte par mail, lorsqu'un de ces dossier arrive presque à saturation et une autre notification lorsque le quota autorisé est dépassé (sans blocage).
D-
ce script doit être modulable car de future dossiers utilisateurs pourront être créés dans l'avenir et ainsi être pris en compte.
voilà je pense n'avoir rien oublié.
n'hésitez pas à poser des questions.
jusqu'à maintenant j'ai trouvé de quoi obtenir les infos concernant la taille des dossiers et à m'envoyer une notification par mail.
Mais ça ne fonctionne que lorsque je le fait manuellement et il n'y a pas de condition concernant les différentes tailles. je reçois un résultat global aussi bien des dossiers vides que ceux pleins.
je vous joins ce que j'ai pu obtenir jusqu'à maintenant.
Merci d'avance et désolé du dérangement.
La pièce jointe 1er_partie.ps1 est absente ou indisponible
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- crogiez
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 102
- Remerciements reçus 0
il y a 7 ans 4 mois #22812
par crogiez
Réponse de crogiez sur le sujet Re:Script: notification par mail dans un cas précis
bonjour
A-
tu dois faire un script pour cette partie
avec un fichier de config
B-
quota dans config
C-
quota depasse, déjà dans config
taille dossier max deja dans config
D-
on modifiera le config
Mais ça ne fonctionne que lorsque je le fait manuellement
faut le lancer avec le planificateur de taches
je vais regarder ton script
A+
A-
tu dois faire un script pour cette partie
avec un fichier de config
B-
quota dans config
C-
quota depasse, déjà dans config
taille dossier max deja dans config
D-
on modifiera le config
Mais ça ne fonctionne que lorsque je le fait manuellement
faut le lancer avec le planificateur de taches
je vais regarder ton script
A+
Connexion ou Créer un compte pour participer à la conversation.
- crogiez
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 102
- Remerciements reçus 0
il y a 7 ans 4 mois #22813
par crogiez
Réponse de crogiez sur le sujet Re:Script: notification par mail dans un cas précis
a priori tu lance çà en ligne de commande
et on a pas d'exemple
#les commentaires çà sert
#les commentaires çà sert
#les commentaires çà sert
je commence toujours mes script par
[code:1]
# philippe crogiez
# 13/12/2016 creation
# chargement dll
function ecrit_log($llogf){
#rem create log
$llog=get-date -Format \"yyyy-MM-dd-HH-mm-ss\"
$llog=$llog+\";\"+$llogf
$llog
$llog >> $malog
}
#recuperation du dossier courant
\"\"
$monchemin=$MyInvocation.InvocationName
$monchemin
$mondossier=(split-path -Path $monchemin -Parent) + \"\\"
$mondossier
$monscript=split-path -path $monchemin -leaf
$monscript
#$malog=$mondossier+$monscript.Substring(0,$monscript.IndexOf(\".\"«»))+\".log.txt\"
#$malog
$malog=$mondossier+\"WEB-Taux-Dispo.log.txt\"
$malog
$maconf=$mondossier+\"WEB-Taux-Dispo.conf.xml\"
$maconf
[/code:1]
ce qui permet d'avoir un fichier de config XML
et on a pas d'exemple
#les commentaires çà sert
#les commentaires çà sert
#les commentaires çà sert
je commence toujours mes script par
[code:1]
# philippe crogiez
# 13/12/2016 creation
# chargement dll
function ecrit_log($llogf){
#rem create log
$llog=get-date -Format \"yyyy-MM-dd-HH-mm-ss\"
$llog=$llog+\";\"+$llogf
$llog
$llog >> $malog
}
#recuperation du dossier courant
\"\"
$monchemin=$MyInvocation.InvocationName
$monchemin
$mondossier=(split-path -Path $monchemin -Parent) + \"\\"
$mondossier
$monscript=split-path -path $monchemin -leaf
$monscript
#$malog=$mondossier+$monscript.Substring(0,$monscript.IndexOf(\".\"«»))+\".log.txt\"
#$malog
$malog=$mondossier+\"WEB-Taux-Dispo.log.txt\"
$malog
$maconf=$mondossier+\"WEB-Taux-Dispo.conf.xml\"
$maconf
[/code:1]
ce qui permet d'avoir un fichier de config XML
Connexion ou Créer un compte pour participer à la conversation.
- crogiez
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 102
- Remerciements reçus 0
il y a 7 ans 4 mois #22814
par crogiez
Réponse de crogiez sur le sujet Re:Script: notification par mail dans un cas précis
exemple de fichier de config XML
<dossiers>
<dossier>
<chemin>D:\applis\Logs</chemin>
<fichiers>*.*</fichiers>
<recursif>1</recursif>
<retention>365</retention>
</dossier>
<dossier>
<chemin>D:\BackUp</chemin>
<fichiers>*.*</fichiers>
<recursif>1</recursif>
<retention>365</retention>
</dossier>
<dossier>
<chemin>L:\Journaux</chemin>
<fichiers>*.*</fichiers>
<recursif>1</recursif>
<retention>365</retention>
</dossier>
</dossiers>
çà se lit avec çà
[code:1]
$maconf=$mondossier+$monscript.Substring(0,$monscript.IndexOf(\".\"«»))+\".conf.xml\"
$maconf
#xml config lecture
$confxml=[xml](get-content \"$maconf\"«»)
#lectures tableau chemins
foreach ($dossier in $confxml.dossiers.dossier){
$chemin=$dossier.chemin
$files=$dossier.fichiers
$recursif=$dossier.recursif
$retention=$dossier.retention
\"
\"
\"chemin=>\"+$chemin
\"files=>\"+$files
\"recursif=>\"+$recursif
\"retention=>\"+$retention
[/code:1]
<dossiers>
<dossier>
<chemin>D:\applis\Logs</chemin>
<fichiers>*.*</fichiers>
<recursif>1</recursif>
<retention>365</retention>
</dossier>
<dossier>
<chemin>D:\BackUp</chemin>
<fichiers>*.*</fichiers>
<recursif>1</recursif>
<retention>365</retention>
</dossier>
<dossier>
<chemin>L:\Journaux</chemin>
<fichiers>*.*</fichiers>
<recursif>1</recursif>
<retention>365</retention>
</dossier>
</dossiers>
çà se lit avec çà
[code:1]
$maconf=$mondossier+$monscript.Substring(0,$monscript.IndexOf(\".\"«»))+\".conf.xml\"
$maconf
#xml config lecture
$confxml=[xml](get-content \"$maconf\"«»)
#lectures tableau chemins
foreach ($dossier in $confxml.dossiers.dossier){
$chemin=$dossier.chemin
$files=$dossier.fichiers
$recursif=$dossier.recursif
$retention=$dossier.retention
\"
\"
\"chemin=>\"+$chemin
\"files=>\"+$files
\"recursif=>\"+$recursif
\"retention=>\"+$retention
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- crogiez
- Hors Ligne
- Membre premium
Réduire
Plus d'informations
- Messages : 102
- Remerciements reçus 0
il y a 7 ans 4 mois #22815
par crogiez
Réponse de crogiez sur le sujet Re:Script: notification par mail dans un cas précis
ton fichier XML de config
pourrait etre
<dossiers>
<dossier>
<chemin>D:\user1</chemin>
<tailleMo>100</tailleMo>
<quota%>90</quota%>
</dossier>
...
</dossiers>
la taille est exprimée en nombre de Mo
le quota est % de la place occupée
on peut calculer la taille d'une arborescence avec çà
[code:1]
$tabdoss3=Get-ChildItem -Path $racine -Recurse
$tabdoss3
$taille=0
$tabdoss3 |%{
$taillfich=$_.Length
$taille=$taille+$taillfich
}
$taille
[/code:1]
pourrait etre
<dossiers>
<dossier>
<chemin>D:\user1</chemin>
<tailleMo>100</tailleMo>
<quota%>90</quota%>
</dossier>
...
</dossiers>
la taille est exprimée en nombre de Mo
le quota est % de la place occupée
on peut calculer la taille d'une arborescence avec çà
[code:1]
$tabdoss3=Get-ChildItem -Path $racine -Recurse
$tabdoss3
$taille=0
$tabdoss3 |%{
$taillfich=$_.Length
$taille=$taille+$taillfich
}
$taille
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- apprentiPWS
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 7 ans 4 mois #22817
par apprentiPWS
Réponse de apprentiPWS sur le sujet Re:Script: notification par mail dans un cas précis
Merci Crogiez, je regarde ça et reviens vers toi dès que possible. (j'avoue ne pas tout comprendre ce que tu as répondu, il me faut étudiercela )
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.082 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Script: notification par mail dans un cas précis