Le 15 juin 2011 à 13:12, Jean-Luc Bailloeul a écrit :
>> De : Patrick Proniewski <patpro@???>
>> Répondre à : La liste francophone des scripts shell
>> <script_shell_fr@???>
>> Date : Wed, 15 Jun 2011 12:23:14 +0200
>> À : La liste francophone des scripts shell <script_shell_fr@???>
>> Objet : Re: [#!/fr] Tailles des dossiers
>>
>> On 15 juin 2011, at 12:05, Jean-Luc Bailloeul wrote:
>>
>>> Bonjour la liste,
>>>
>>> Pour surveiller la taille des dossiers Users sur mes serveurs, j'utilise en
>>> root la commande suivante :
>>>
>>> du -ks * | sort -rn | awk '{printf("%dMB\t%-10s\n", int($1 / 1024 + 0.5),
>>> $2)}'
>>>
>>> Ce qui me donne une jolie liste du type :
>>> 24745MB pme…
>>> 23327MB aze…
>>> 18315MB san…
>>>
>>> Je me dis cependant qu'elle est longue à l'exécution, gourmande en
>>> processeur, et très certainement naze en termes de performance et
>>> d’esthétique.
>>
>> Si tu es sur un système BSD (FreeBSD, Mac OS X) et que tu es prêt à laisser du
>> faire le formatage, tu peux faire simplement ceci :
>>
>> # du -hd1 /Users
> Oui, je vois. Mais effectivement le "top score" m'intéresse en premier lieu.
>>
>> Ensuite, je ne vois pas trop comment faire plus rapide, sans un système de
>> fichiers plus efficace. Sur FreeBSD avec ZFS, j'ai un point de montage par
>> utilisateur, donc j'ai les stats d'usage immédiatement :
>>
>> $ df -h /user/patpro
>> Filesystem Size Used Avail Capacity Mounted on
>> tank/user/patpro 1.0G 9.3M 1.0G 1% /user/patpro
> Ça c'est super intéressant.
> Et pratique.
>>
>> Mais si tu dois parcourir le FS pour compter, c'est mort pour les perf.
> Ok. Merci Patrick.
>>
Bonjour,
j'ai ce script qui se lance toute les nuits (mais c'est pas les perfs que je recherche…) :
#!/bin/csh -f
#
#
#--------------------------------------------------
# le but du script : Collecter les poids des dossiers presents
# a la racine des stockages de production
#--------------------------------------------------
# Les variables du script
#
# Les cartouches...
set WkgVar1=`/usr/bin/basename $0`
set PatLogs="/ecq/logs/${WkgVar1}"
if ( ! -d ${PatLogs} ) then
mkdir -p ${PatLogs}
endif
set WkgVar2=`date '+%Y%m%d'`
set CloLog="${PatLogs}/${WkgVar2}_${WkgVar1}.log"
set CloLogDest="monmail@???"
# la source des donnees
set Psrc="/Volumes/Raid1/Home-LDAP/"
#
# bon ben au boulot
#
foreach WkgVar1 (${Psrc})
#Annoncons ce que nous allons faire
echo "${WkgVar1}">>${CloLog}
# Allons y
cd "${WkgVar1}"
# Prenons les dossiers les uns apres les autres
foreach WkgVar2 (`ls -F|grep "\/"|grep -v ".Spotlight-V100"|grep -v ".TemporaryItems"|grep -v ".Trashes"|grep -v ".fseventsd"|grep -v "test"|sed 's/\///'`)
set WkgVar3=`/usr/bin/du -ks ${WkgVar2}>>${CloLog}`
end
end
#
# la notification
if ( "${CloLogDest}" != "" ) then
set WkgVar1=`/usr/bin/uname -n`
set WkgVar2=`date '+%Y%m%d'`" - Rapport Stockages: ${WkgVar1}"
/usr/bin/mail -s "${WkgVar2}" ${CloLogDest} <${CloLog}
endif
#
# Le menage
# pour conserver un ptit historique de 31 jours... genre 1 mois!
set WkgVar1=`find ${PatLogs} -type f -ctime +31 -exec rm {} \;`
exit 0
Si ca peux aider.
Cordialement
--
Yannick
_______________________________________________
archives :
http://listes.patpro.net/list/sshfr.fr.html
http://listes.patpro.net/mailman/listinfo/script_shell_fr