Bonjour a tous et joyeux noel !
Quelqu'un peut il m'aider?
Je voudrais recuperer la taille d'une partition donnee et envoyer un mail si celle ci depasse 90%, est il possible de le faire en utilisant des batch?
Merci pour votre aide
Bonjour a tous et joyeux noel !
Quelqu'un peut il m'aider?
Je voudrais recuperer la taille d'une partition donnee et envoyer un mail si celle ci depasse 90%, est il possible de le faire en utilisant des batch?
Merci pour votre aide
oui bien sur là je testes avec 70% pour te montrer que ça marche
ça marche donc très bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 francois@belzebot ~ % if [ $(df -h | sed '/rootfs/ !d ;s/.*\ \(.*\)%.*/\1/') -gt 70 ] ; then mail -s "ALERTE" francois << EOT francois@belzebot ~ then heredoc> ddsfsdfk francois@belzebot ~ then heredoc> EOT francois@belzebot ~ then> fi francois@belzebot ~ % francois@belzebot ~ % mail Mail version 8.1.2 01/15/2001. Type ? for help. "/var/mail/francois": 1 message 1 new >N 1 francois@cdebian. Fri Dec 27 18:12 17/573 ALERTE
dans un script ça donnerai :
tu oublies pas de rendre le script executable, et de le planifier par exemple 1* par jour via une crontab....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #entetes variables etc.... #iteration pour surveiller toutes les partitions et pas qu'une seule #dans l'exemple la variable de la partition en cours de surveillance s'appelle $partition if [ $(df -h | sed '/'${partition}'/ !d ;s/.*\ \(.*\)%.*/\1/') -gt 90 ] ; then mail -s "ALERTE partition ${partition}" mail@domaine.truc << EOT Alerte au moins une partition sur la machine belzebot est à plus de 90% EOT fi #fin d'iteration #fin du script
c'est fini
ça suffit largement....
je laisse adapter mais c'est très simple...
tu peux bien sur selectionner les partitions par leurs chemin physiques logique etc...
par exemple au lieu du nom logique rootfs tu peux avoir pour la partition / par exemple le chemin physique /dev/sda1
Merci frp31, j'adapte et je te dis quoi, encore merci pour ton assistance.
Salut frp31,
Voici ce que j'obtien lorsque j'execute la commande sur la partition u1 :
$ ./Check_partition.sh
sed: command garbled: /u1/ !d ;s/.*\ \(.*\)%.*/\1/
df: cannot statvfs /temp_export: No such file or directory
./Check_partition.sh: line 2: [: -gt: unary operator expected
Merci de votre precieuse assistance.
faut adapter à ton shell (bash,sh,ksh)
à ton sed éventuellement et surtout à df qui a peut etre pas le même nombre de colonnes
n'ayant d'ssh vers TA machine.. je vais avoir du mal à le faire moi même
j'imagine que df gueule parce qu'il prend -k au lieu de -h peut être.... (cas courant)
par exemple....
peut être que ta version de sed n'est pas gnu, si tel est le cas au lieu de sed 'commande;commande;commande' il faut faire sed -e "commande" | sed -e "commande" | sed -e "commande" ça aussi ça peut être une solution
Le df de Solaris supporte l'option -h, mais elle est ici inutile puisqu'on ne lit pas les valeurs concernées.
Le problème vient sûrement du script sed que je n'ai pas cherché à débugger. Voici une version adaptée à Solaris:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 msg=$(df -kl | nawk '/\// {gsub("%","",$5);if($5>90) printf("Partition %s occupee a %d%%\n",$6,$5);}') [ "$msg" ] && echo "$msg" | mailx -s "disque plein" charrynsasi@domain.fr
ɹǝsn *sıɹɐlos*
merci jlliagre, ca devrait aider notre participant.
Solaris utilise les version SVR4 des commandes de base. La présence des outils GNU est optionnelle et pas forcément en premier (ou du tout) dans le PATH.
La syntaxe portable avec -e est plus simple:si tel est le cas au lieu de sed 'commande;commande;commande' il faut faire sed -e "commande" | sed -e "commande" | sed -e "commande" ça aussi ça peut être une solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -e "commande1" -e "commande2" -e "commande3"
ɹǝsn *sıɹɐlos*
Bonjours et encore merci pour votre precieuse assistance.
Je suis un peu perdu avec le code de jlliagre :
ma partition se nomme /u1 , ou dois je la placer dans le script?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 msg=$(df -kl | nawk '/\// {gsub("%","",$5);if($5>90) printf("Partition %s occupee a %d%%\n",$6,$5);}') [ "$msg" ] && echo "$msg" | mailx -s "disque plein" charrynsasi@domain.fr
Merci encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 msg=$(df -kl | nawk '/\/u1/ {gsub("%","",$5);if($5>90) printf("Partition %s occupee a %d%%\n",$6,$5);}') [ "$msg" ] && echo "$msg" | mailx -s "disque plein" charrynsasi@domain.fr
ɹǝsn *sıɹɐlos*
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager