[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/scripts/ -> stats_user.sh (source)

   1  #!/bin/bash
   2  #Auteur : Denis Bonnenfant
   3  
   4  #Amélioration et débuggage: Olivier Lacroix (sur conseils de Stéphane Boireau)
   5  #Version du 11/11/08: corrections de bugs.
   6  
   7  ## $Id: stats_user.sh 7061 2012-04-02 09:22:45Z dbo $ ##
   8  #
   9  ##### script permettant d'afficher le détail d'coccupation des types de fichier sur /home par user #####
  10  #
  11  
  12  AIDE()
  13  {
  14  # echo "Le nombre d'argument est incorrect! Il en faut deux."
  15   echo
  16   echo "Exemple d'utilisation de stats_user.sh:"
  17   echo
  18   echo "stats_user.sh /home toto     affiche le détail des fichiers (par catégorie) de l'utilisateur toto" 
  19  #Temporaire: pas de possibilité sur /var/se3
  20   echo
  21   exit $1
  22  }
  23  
  24  [ $# -eq 1 -o $# -eq 0 ] && AIDE 0
  25  [ $# -ne 2 ] && AIDE 1 
  26  
  27  
  28  part=$1
  29  A=$2
  30  chemin=$part
  31  
  32  FICHIERUSER=/tmp/stat_user_$A
  33  
  34  # empeche un meme utilisateur de demander son detail plusieurs fois : il pourrait saturer le serveur a coup de find !!
  35  [ -e /tmp/stat_user_$A ] && exit
  36  
  37  #total des fichiers dans Docs, Bureau (pour éviter de comptabiliser les profiles)
  38  find $part/$A \! -name '.' -printf "%s\n" > $FICHIERUSER
  39  declare r=0
  40  while read S ; do let r+=$S/1024 ; done < $FICHIERUSER
  41  
  42  #total par catégorie
  43  if [ "$part" = "/home" ]
  44  then
  45    find $part/$A/profil \! -name '.' -printf "%s\n" > $FICHIERUSER
  46    find $part/$A/profile \! -name '.' -printf "%s\n" >> $FICHIERUSER
  47    declare c=0
  48    while read S ; do let c+=$S/1024 ; done < $FICHIERUSER
  49  fi
  50  
  51  find $part/$A \( -name *mp3 -o -name *MP3 -o -name *wma \
  52  -o -name *WMA -o -name *wav -o -name *WAV \) -printf "%s\n" > $FICHIERUSER
  53  declare  m=0
  54  while read S ; do let m+=$S/1024 ; done < $FICHIERUSER 
  55  
  56  find $part/$A \( -name *mpg -o -name *MPG -o -name *avi \
  57  -o -name *MPEG -o -name *mpeg \
  58  -o -name *AVI -o -name *wmv -o -name *WMV \) -printf "%s\n" > $FICHIERUSER
  59  declare  v=0
  60  while read S ; do let v+=$S/1024 ; done < $FICHIERUSER 
  61  
  62  find $part/$A \( -name *jpg -o -name *JPG -o -name *tif \
  63  -o -name *TIF -o -name *gif -o -name *GIF -o -name *bmp -o -name *BMP \
  64  -o -name *odi -o -name *ODI -o -name *odg -o -name *ODG \
  65  \) -printf "%s\n" > $FICHIERUSER
  66  declare i=0
  67  while read S ; do let i+=$S/1024 ; done < $FICHIERUSER 
  68  
  69  find $part/$A \( -name *exe -o -name *EXE -o -name *dll \
  70  -o -name *DLL -o -name *scr -o -name *SCR \) -printf "%s\n" > $FICHIERUSER
  71  declare  e=0
  72  while read S ; do let e+=$S/1024 ; done < $FICHIERUSER 
  73  
  74  find $part/$A \( -name *zip -o -name *ZIP -o -name *rar \
  75  -o -name *RAR -o -name *cab -o -name *CAB \) -printf "%s\n" > $FICHIERUSER
  76  declare  z=0
  77  while read S ; do let z+=$S/1024 ; done < $FICHIERUSER 
  78  
  79  find $part/$A \( -name *doc -o -name *DOC -o -name *xls -o -name *docx -o -name DOCX \
  80  -o -name *XLS -o -name *ppt -o -name *PPT -o -name *pdf -o -name *PDF \
  81  -o -name *odt -o -name *ODT -o -name *ods -o -name *ODS -o -name *odp \
  82  -o -name *ODP -o -name *odc -o -name *ODC -o -name *odb -o -name *ODB \
  83  -o -name *sxw -o -name *SXW \
  84  \) -printf "%s\n" > $FICHIERUSER
  85  declare  w=0
  86  while read S ; do let w+=$S/1024 ; done < $FICHIERUSER 
  87  
  88  find $part/$A \( -name *.sld* -o -name *.SLD* -o -name *.CAT* \
  89  -o -name *.cat* -o -name *stl -o -name *STL \) -printf "%s\n" > $FICHIERUSER
  90  declare  t=0
  91  while read S ; do let t+=$S/1024 ; done < $FICHIERUSER 
  92  
  93  let references=$m+$v+$i+$e+$z+$w+$t+$c
  94  
  95  echo  "TOTAL : $r ko</br>"
  96  echo  "</br>"
  97  if [ ! $m = "0" ]; then
  98  echo  "- Audio (mp3, wav, wma) : $m ko</br>"
  99  fi
 100  if [ ! $v = "0" ]; then
 101  echo  "- Video (avi, mpg) : $v ko</br>"
 102  fi
 103  if [ ! $i = "0" ]; then
 104  echo  "- Images (jpg, tif, png, bmp, odi, odg) : $i ko</br>"
 105  fi
 106  if [ ! $e = "0" ]; then
 107  echo  "- Programmes (exe, dll, scr, vbs) : $e ko</br>"
 108  fi
 109  if [ ! $z = "0" ]; then
 110  echo  "- Archives (zip, rar, cab) : $z ko</br>"
 111  fi
 112  if [ ! $w = "0" ]; then
 113  echo  "- Documents (doc, docx, xls, ppt, pdf, sxw, odt, ods, odp, odc, odb) : $w ko</br>"
 114  fi
 115  if [ ! $t = "0" ]; then
 116  echo  "- CAO (solidworks, catia) : $t ko</br>"
 117  fi
 118  #echo $part
 119  if [ $part = "/home" ]
 120  then
 121    if [ $[$r-$references] -lt "0" ]
 122    then #cela signifie que des fichiers référencés (doc, ou autres) ont été comptabilisés deux fois car placés dans profil ou profile (ex: le bureau!) => je les vire du total de fichiers système pour résultat cohérent à l'affichage.
 123    # BUG REEL: tout fichier dans /home/$A est comptabilisé ds les différents types, le total du profile compte donc en double des fichiers référencés, de plus, le type autre est comptabilisé par différence. C'est sans issue avec cette méthode de décompte!
 124      let c=$c+$[$r-$references]
 125    fi
 126    
 127    if [ ! $c = "0" ]; then
 128      echo  "- Fichiers d'environnement système (raccourcis, profil, profile) : $c ko </br>"
 129    fi
 130  fi
 131  if [ ! $[$r-$references] -lt "0" ]; then
 132    echo  "- Autres : $[$r-$references] ko</br>"
 133  fi
 134  rm $FICHIERUSER
 135  exit 0
 136  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1