1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| #!/usr/bin/perl -w
# Ce script est configure pour etre utilise par la crontab de "adm"
use strict;
use MIME::Lite;
@hostname=(`hostname`);
my @users = `getent passwd `;
open(ATTACH, ">/tmp/attach.txt") || die "$!";
print ATTACH "Attention utilisateur le serveur @hostname\n";
foreach $user (@users) {
chomp($user);
my @split_info_user = split(":",$user);
my $login = $split_info_user[0];
my $uid = $split_info_user[2];
if($uid > 70000){
@rate=split(' ',`du -sk /home/$login`);
if ($rate[0] > 100000000 ) {
$mail=`ldapsearch -h localhost -D cn=proxyuser,ou=pam,dc=exemple,dc=org -w xxxxxx -b ou=People,dc=dc=exemple,dc=org uid=$login | grep mail | sed 's/mail\: //'`;
@output=split(' ',`du -sh /home/$user`);
print ATTACH "\n Votre repertoire depasse les 100Go merci de verifier :\n";
print ATTACH "@output \n\n";
close (ATTACH);
#Envoi de l'alerte
my $msg = new MIME::Lite
From =>'adm@example.org',
To =>'mdubois@example.org',$mail
Subject =>'Avertissement de partion pleine sur @hostname',
Type =>'multipart/mixed';
attach $msg
Type =>'TEXT',
Data =>"Resultat dans le fichier joint";
attach $msg
Type =>'TEXT',
Path =>'/tmp/attach.txt',
Filename =>'/tmp/attach.txt';
$msg-> send;
#On efface le fichier
unlink </tmp/attach.txt>;
}
}
} |
Partager