Forum Programmation.shell Trier la taille de fichiers du répertoire perso

Posté par  .
Étiquettes : aucune
0
2
août
2007
Bonjour à tous,

J'ai beau chercher mais je n'y arrive pas. De manière à contrôler l'espace disque, j'ai créé un petit script pour recevoir un mail donnant la taille des mails et celle des sauvegardes de chaque utilisateur.

#!/bin/sh

cd /tmp
echo "From: \"Administrateur systeme\"" > mail.txt
echo "To: \"Manu\"" >> mail.txt
echo "Subject: \"Info systeme serveurGL\"" >> mail.txt

echo "Voici les informations:" >> mail.txt
cut -f1 -d: /etc/passwd > utilisateurs.txt

while read ligne
do nom=`echo $ligne`

mail=/home/$nom/Mail

if [ -d $mail ]; then
echo "Taille du repertoire mail" >> mail.txt
du -sh $mail >> mail.txt
fi

if [ -f /home/$nom/*.zip ]; then
echo " Taille des sauvegardes " >> mail.txt
du -sh /home/$nom/*.zip >> mail.txt
fi

if [ -f /home/$nom/*.rar ]; then
echo " Taille des sauvegardes " >> mail.txt
du -sh /home/$nom/*.rar >> mail.txt
fi

echo "" >> mail.txt
echo "-------------------------------------------" >> mail.txt
done < "utilisateurs.txt"

#envoi du mail
cat mail.txt | /usr/sbin/sendmail -t manu

----------------------------------------------------------------------------------------
cela me renvoi une liste de valeur mais pas très lisible.
En fait je cherche à trier par valeur décroissante la liste de ces fichiers
Je pensais à une commande de ce genre:

du -sk /home/*/mail | sort -rn
du -sk /home/*/*.[zip;rar]
mais cela ne marche pas et en plus, j'aurais le résultat des autres dossiers alors que je ne veux que ceux des utilisateurs.

Si quelqu'un avait une idée....

Merci d'avance
  • # max-depth

    Posté par  . Évalué à 1.

    du -h --max-depth=1 /home/

    devrait te renvoyer les tailles des dossiers contenu dans /home en n'affichant que le premier niveau

    /home/titi
    /home/toto

    meme si toto contient mail, rar, video, desktop...
    • [^] # Re: max-depth

      Posté par  . Évalué à 1.

      dans ton cas cela pourrait etre

      du -k --max-depth=1 /home | sort -rn
      • [^] # Re: max-depth

        Posté par  . Évalué à 1.

        Merci pour ta réponse,

        C'est intéressant mais là j'ai un tri de tous les répertoires de /home même ceux qui n'appartiennent pas à des comptes utilisateurs (j'ai aussi des répertoires qui servent simplement de partages samba).

        En fait, ce que je voudrais, c'est

        la taille du sous-répertoire mail (compte imap) de chaque utilisateur triée
        /home/utilisateur/mail

        et la taille de chaque fichier rar ou zip (leur sauvegarde) triée
        /home/utilisateur/*.zip ou /home/utilisateur/*.rar

        afin de mieux déterminer quels sont les utilisateurs et si se sont les sauvegardes ou la messagerie qui prennent le plus de place....
        • [^] # Re: max-depth

          Posté par  . Évalué à 1.

          envoie tes resultats (sans tri) dans un fichier

          donc
          boucle sur les utilisateurs (à partir de /etc/passwd par exmeplie) qui fait
          du -k --max-depth /home/$user/mail >>fichier_out.txt
          du -k --max-depth /home/$user/backup >>fichier_out.txt
          fin de la boucle

          puis un
          cat fichier_out.txt | sort -rn
          pour avoir les fichiers triés.
          • [^] # Re: max-depth

            Posté par  . Évalué à 1.

            Merci beaucoup, j'ai eu le résultat que je voulais....

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.