Re: [#!/fr] Tailles des dossiers

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Yan
Date:  
À: La liste francophone des scripts shell
Sujet: Re: [#!/fr] Tailles des dossiers

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