Re: Script Bash
<man du>
du - estimate file space usage
</man du>
Le script suivant realise tout ce dont tu as besoin. Tu lui donnes comme
argument d'entree le nom du directory (dirA) dans lequel se trouve les
directory des utilisateurs. Le script parcourt chacun des repertoire de dirA et
si un de ses repertoires fait plus de 10M, il envoit un mail a l'owner.
<exemple>
-rw-r--r-- 1 gregoire users 3333758 Feb 1 23:41 pine4.33.tar.gz
^^^^^^^^
</exemple>
Quelques adaptations sont sans doute a effectuer (notemment le contenu du
mail) mais le principe est la.
<script du2mail.sh>
#!/bin/sh
# test if we have at least one argument
test $# -eq 0 && echo "arg 1 must be a directory" && exit -1
#test if arg 1 is a directory
test -d $1 || (echo "arg 1 must be a directory" && exit -1
# for each entry in the directory
for DIR in `ls $1`
do
# get the size of the directory contents in kylobyte
SIZE=`du -sk $1/$DIR 2>/dev/null | cut -f1 -d' '`
# si SIZE > 10M
if test $SIZE -gt 10240; then
# recupere le owner du directory
OWNER=`ls -ld $1/$DIR | awk '{print $3}' `
# affiche un message adequat sur stdout
echo "sending mail to $OWNER"
# construit le mail.
cat << _EOF_ | mail -s "subject here" $OWNER
le body du message vient ici.
Par exemple:
cher $OWNER,
$DIR est superieur a 10M
veuillez faire le necessaire
salutations
Root of all evils
_EOF_
fi
done
</script du2mail.sh>
<exemple de l'output du mail>
>From root Fri Jul 6 02:10:30 2001
Return-Path: <root>
Received: (from root@localhost)
by hebus.welraeds.be (8.9.3/8.9.3/Debian 8.9.3-21) id CAA01256
for root; Fri, 6 Jul 2001 02:10:29 +0200
Date: Fri, 6 Jul 2001 02:10:29 +0200
From: root <root>
Message-Id: <200107060010.CAA01256@hebus.welraeds.be>
To: root
Subject: subject here
Status: O
le body du message vient ici.
Par exemple:
cher root,
var est superieur a 10M
veuillez faire le necessaire
salutations
Root of all evils
</exemple de l'output du mail>
--
Life is hard but the root password helps.
-- Anonymous
Gregoire Welraeds
<gregoire (at) welraeds (dot) be>
Reply to:
- References:
- Script Bash
- From: Yanick Lefebvre <info@infographix.ca>