Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 15 utilisateurs en ligne, consultez le détail
Auteur Message
Maillon
#0 Message posté le : 12-06-2007 à 13:52:21


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 06-02-2007
Nombre de messages : 12
Voilà,

bon le perl je connais pas pas des masse non plus donc bon ^^

J'aimerai faire un script perl qui interroge à distance un serveur et qui remonte des informations comme l'espace disque utilisé sur chaque partition (df -h).

Après le script ce chargerai d'envoyé un mail si la valeur retournée est supérieur à telle valeur par exemple.

Voilà ce que j'ai pour le moment dans mon script info.pl :
--------------------------------------------
#!/usr/bin/perl -w
use strict;
use Net::SSH::Perl;

my $host = "cerbere";
my $username = "mon_login";
my $password = "mon_pass";

my $ssh = Net::SSH::Perl->new($host);
$ssh->login($username, $password);

$ssh->cmd('sh /home/mon_login/message.sh');
--------------------------------------------

Et dans le message.sh :
--------------------------------------------
#!/bin/sh

email="maillon@trustonme.net"
message=/home/mon_login/script/recap.$$
limit="80"

df -h | tr "%" " " | awk '{ if ( $5 > $limit ) print $6" est utilisé a "$5"%. Il reste "$4" sur "$2" disponibles pour "$1"\n" } ' > $message

serveur=/bin/hostname

if [ $5 > $limit ]
then
mail -s "Alerte sur le serveur "$serveur" sur la partition "$6"." $email

fi
-------------------------------------------------

Sachant que j'ai bien copié le script message.sh sur toute les machines.


Alors pour l'instant j'ai deux souci : le premier c'est que le mail n'est pas envoyé. Pourtant je peux envoyer des mails par telnet et via la commande mail dans une console.



Le deuxième souci majeur varie en fonction des serveurs sur lequel le script message.sh est exécuté, je m'explique.

Quand je lance la commande df -h j'obtiens ça :
---------------------------------------------------
SysFichier Tail. Util.Disp. Uti% Monté sur
/dev/sda8 2.0G 394M 1.5G 21% /
/dev/sda3 190M 11M 170M 6% /boot
none 1004M 0 1004M 0% /dev/shm
/dev/sda7 1012M 33M 928M 4% /tmp
/dev/sda5 9.7G 2.5G 6.7G 28% /usr
/dev/sda9 9.7G 546M 8.6G 6% /var
/dev/sda10 40G 49M 38G 1% /data
/dev/sda2 3.2G 37M 3.0G 2% /home
----------------------------------------------------

Sur le serveur cerbere (red hat 3) le script message.sh me génère un fichier dans lequel il y a :
--------------------------------------------------
/ est utilisé a 21%. Il reste 1.5G sur 2.0G disponibles pour /dev/sda8

/boot est utilisé a 6%. Il reste 170M sur 190M disponibles pour /dev/sda3

/tmp est utilisé a 4%. Il reste 928M sur 1012M disponibles pour /dev/sda7

/usr est utilisé a 28%. Il reste 6.7G sur 9.7G disponibles pour /dev/sda5

/var est utilisé a 6%. Il reste 8.6G sur 9.7G disponibles pour /dev/sda9

/data est utilisé a 1%. Il reste 38G sur 40G disponibles pour /dev/sda10

/home est utilisé a 2%. Il reste 3.0G sur 3.2G disponibles pour /dev/sda2
---------------------------------------------------

Donc ça marche là ^^

Par contre sur l'autre serveur zeus (red hat 4), le df -h me génère ça :
----------------------------------------------------
Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur
/dev/mapper/VolGroup_ID_21242-LogVol1
1008M 506M 452M 53% /
/dev/sda3 99M 17M 78M 18% /boot
none 972M 0 972M 0% /dev/shm
/dev/mapper/VolGroup_ID_21242-LogVol2
496M 11M 460M 3% /tmp
/dev/mapper/VolGroup_ID_21242-LogVol5
9,9G 3,0G 6,6G 32% /usr
/dev/mapper/VolGroup_ID_21242-LogVol4
3,1G 195M 2,7G 7% /var
/dev/mapper/VolGroup_ID_21242-LogVolHome
131G 3,4G 121G 3% /home
------------------------------------------------------

Et le script message.sh me génère ça :
--------------------------------------------------------
est utilisé a /%. Il reste 53 sur 506M disponibles pour 1008M

/boot est utilisé a 18%. Il reste 78M sur 99M disponibles pour /dev/sda3

est utilisé a /tmp%. Il reste 3 sur 11M disponibles pour 496M

est utilisé a /usr%. Il reste 32 sur 3,0G disponibles pour 9,9G

est utilisé a /var%. Il reste 7 sur 195M disponibles pour 3,1G

est utilisé a /home%. Il reste 3 sur 3,4G disponibles pour 131G
----------------------------------------------------------

Il y a un léger petit souci là ...

Je continue de chercher mais si vous avez des idées ou solutions n'hésitez pas ^^

Par contre c'est vrai que c'est pas du tout pratique d'avoir un script en bash et l'autre en perl mais c'est la seule manière que je sais faire donc si vous trouvez une autre suis prenneur ^^ :-)

Merci de votre aide ;-)
Maillon
#1 Message posté le : 13-06-2007 à 16:58:36


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 06-02-2007
Nombre de messages : 12
Alors j'ai trouvé une solution finalement en shell ^^ Certes il n'y a pas de connection ssh mais bon je lance le script via crontab et c'est pareil ^^

#!/bin/bash

email="maillon@domaine.net"
message="/home/maillon/script/recap.$$"
limit="20"

df -h |\
sed -e '/^\/dev\/mapper/ s/$/#/' -e :a -e '/#$/N ;s/#\n/ /; ta' -e '1d' |\
tr "%" " " | awk -v limit=$limit '{ if ( $5 > limit ) print $6" est utilise a "$5"%. Il reste "$4" sur "$2" disponibles pour "$1"\n" } ' > $message

serveur=$(/bin/hostname)

if [ -s "$message" ]
then
cat "$message" | mail "$email" -s "Alerte disque $serveur. Partition(s) plus de 20% d'utilisation"
fi
rm recap.*


Voilà ça ça marche c'est sûr ! lol :-)

Je vais essayer de faire l'équivalent en perl mais pour moi pour savoir ^^
sputnick
#2 Message posté le : 13-06-2007 à 23:33:21


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 27-07-2005
Nombre de messages : 138
salut,

dans le genre, j'ai pondu ça:
http://stardust.3.free.fr/guest/NoPartitionFulld-0.2.02.tar.gz

-------------------------------------
BlogLinux
http://sputnick1.wordpress.com
Maillon
#3 Message posté le : 14-06-2007 à 14:02:44


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 06-02-2007
Nombre de messages : 12
sputnick a écrit :


salut,

dans le genre, j'ai pondu ça:
http://stardust.3.free.fr/guest/NoPartitionFulld-0.2.02.tar.gz


Euh j'ai pas tout compris ce que ça faisait ce que tu as "pondu" ^^ xD
sputnick
#4 Message posté le : 16-06-2007 à 22:33:18


Scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 27-07-2005
Nombre de messages : 138
ça affiche des popups affichant le pourcentage d'occupation d'une partition (root) quand le seuil dépasse le seuil qui se regle au premier lancement.
ça envoie aussi un mail.

-------------------------------------
BlogLinux
http://sputnick1.wordpress.com