[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |