Fafhrdius Posté(e) le 10 février 2005 Partager Posté(e) le 10 février 2005 En avant propos je signalerais que je n'ai pas des connaissances monstrureuses en script shell. Le topic"100% question pour un penguin" me fais penser que peut être quelqu'un pourrait m'aider. Le problème: J'ai un problème avec le fichier Data.fs d'une instance de portail Zope: celui ne doit pas dépasser une certaine taille sous peine de faire planter le serveur zope. (la taille max est la taille max que peut gérer le système de fichier en fait) Nous avons planifier un upgrade du serveur pour palier à ce problème, mais nous aimerions vivre tranquillement en attendant. J'aimerais donc surveiller la taille de ce fichier et m'envoyer un mail le cas échéant (i.e. le fichier dépasse une certaine taille.) Mon script est le suivant: #!/bin/sh # permet de verifier si le fichier $1 a une taille inferieur a $2, sinon envoie d'un mail d'alerte if [ $# -lt 2 ]; then echo " Veuillez specifier un fichier en parametre ansi que la taille maximum acceptable pour celui-ci!" else if [ -f $1 ]; then fichier=$1 taille=`du -sk "$fichier"` taille_en_kilo=`echo "$taille" | cut -f1 -d'/'` taille_humaine=`du -h "$fichier"` if [ $taille_en_kilo -lt $2 ]; then echo "fichier suffisament leger" else echo "le fichier devient trop volumineux, on envoie un mail" res=`echo "la taille de data.fs devient trop grande : " "taille_humaine" | mail -s test moi@mondomain.fr` fi else echo " le fichier " $1 " n'existe pas !" fi fi Tout semble OK sauf l'envoie de mail (pas d'erreur mais je ne reçoit jamais de mail). Je teste ce script sur mon poste de travail (mdk 10.1 community). Quelqu'un à une idée ? Je devine qu'il s'agit d'un problème de conf' pour l'envoie de mail via "mail" mais je ne vois pas quoi. Lien vers le commentaire Partager sur d’autres sites More sharing options...
keneda212 Posté(e) le 10 février 2005 Partager Posté(e) le 10 février 2005 pourquoi tu stock ta commande dans res ? mail fonctionne normalement comme tu l'a fait $taille_humaine dans la ligne d'envoie du mail sion t'aura pas la valeur mais le texte Lien vers le commentaire Partager sur d’autres sites More sharing options...
gauret Posté(e) le 10 février 2005 Partager Posté(e) le 10 février 2005 Si y'a un problème avec la commande mail, c'est que ton serveur de mails est mal configuré sur la machine. Cherche de ce côté là. Sinon pour ton Data.fs, c'est classique :) Je te propose de faire un job cron qui va faire un "pack" de la ZODB régulièrement. C'est facile à faire, y'a juste un script Zope à faire et un appel à l'URL correspondante par le script (un simple wget peut le faire). Tu bosses avec Zope ? C'est cool ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 10 février 2005 Partager Posté(e) le 10 février 2005 normalement il faut dire à qui envoyer le mail (sinon ça va chercher les mails...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 10 février 2005 Partager Posté(e) le 10 février 2005 Salut, Ton script foncitonne très bien chez moi. Je reçois les mails sans problèmes. Une petite remarque, j'usage des `command` est déprécié, c'est mieux de mettre $(command) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fafhrdius Posté(e) le 10 février 2005 Auteur Partager Posté(e) le 10 février 2005 @keneda212: pour res, pas de raison particulière, tu as raison ce n'est pas nécessaire pour $taille_humaine ce n'est pas le problème le plus préoccupant @gauret: Ca me confirme dans mes doutes. Je cherche de ce côté là donc. Le Data.fs, je suis totalement d'accord que c'est connu. Le serveur tel que je l'ai récupéré permet un fichier max de 2Go. Or un système "à jour" (surtout le zope et son python) permettrait d'avoir 8Go. (Ce n'est pas le seul problème que je rencontre avec ce serveur d'où la décision de le mettre à jour ... ). Le truc, c'est qu'on s'en est rendu compte un jour ou il a passé les 2Go :8 De ce fait, serveur en rade .. J'ai donc bidouillé un script python, pour lancer le "pack" et ouf, juste passé sous les 2Go.Par la suite on a fait un peu de ménage mais en attendant la remise à niveau programmé du serveur, on aimerait avoir ce genre de procédé de contrôle. Et ouais zope c'est pas mal Je participe juste à la maintenance d'un portail de l'école justement en zope. @tuxx: désolé mais j'ai pas compris ta remarque. @theocrite: merci pour m'avoir confirmer que cela marchait et surtout merci de me dire que `commande`est déprécié (je fais pas du script shell souvent moi ) EDIT: orthographe, même après relecture: "quand y'en a plus, y'en a encore" Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 10 février 2005 Partager Posté(e) le 10 février 2005 @tuxx:désolé mais j'ai pas compris ta remarque. autant pour moi, j'avais pas vu l'email derrière... disons que tu devrais déjà essayer d'envoyer un mail à la main, pour voir si il ne te renvoie pas d'erreur... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fafhrdius Posté(e) le 10 février 2005 Auteur Partager Posté(e) le 10 février 2005 judicieux ;-) En fait la commande passe sans erreur mais le mail n'arrive jamais Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 10 février 2005 Partager Posté(e) le 10 février 2005 essaye avec "mail -v" EDIT : l'option "-v" ne marche pas avec toutes les commandes "mail" ... si tu ne l'as pas, il va falloir trouver autre chose pour savoir ce qui ne va pas... mais déjà il faut savoir quel serveur smtp la commande "mail" utilise... Lien vers le commentaire Partager sur d’autres sites More sharing options...
gauret Posté(e) le 10 février 2005 Partager Posté(e) le 10 février 2005 Normalement "mail" utilise le programme "sendmail" qui est dans ton PATH, donc sendmail ou postfix en général. Il faut que tu configures ton serveur de mail. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.