Op maandag 10 oktober 2005 16:58, schreef John Plate:
> Hi
>
> I'm looking for a tool that can tell where diskusage has increased
> since last time the tool was run.
>
> Does such a tool exist?
>
> John

I tried to make such a tool for my own use as a bash script.
You must be root to run this script.
The script uses some other tools like du, gakw, .....
Most of them are present on a normal debian system.
Perhaps you must install the dialog pakket.
This script still has some bugs.
and the menu's are written in Dutch.......
and Dutch you will find in the the script code..........

good luck.

martin

---------------------snip under this line-----------------
#!/bin/bash 
# this is a comment
kiesdir () {
#read -p "dit is in kiesdir"
dialog  --clear                                 \
        --menu "kies een soort bestand" 0 0 0   \
"stand" "een bestand met een stand"             \
"vergelijk" "een bestand met een vergelijking" 2> /tmp/dushell/antwkd
        keus=`cat /tmp/dushell/antwkd`
        if [ $keus = "stand" ]; then
                dirkeus=$dirstand
        else
                dirkeus=$dirverg
        fi
#read -p "$dirstand $dirverg $dirkeus"
}
toonlijst () {
        oud=""
        dir -x $1 > /tmp/dushell/lijst.tmp
if [ -s /tmp/dushell/lijst.tmp ]; then
        tr ' ' '\012' < /tmp/dushell/lijst.tmp > /tmp/dushell/lijst.oud
        mawk '$1 > "" { printf "%s . ", $1 }' /tmp/dushell/lijst.oud 
>/tmp/dushell/lijst
        lijst=`cat /tmp/dushell/lijst`
        dialog --title "kies uit deze lijst"            \
                --menu "$2" 0 0 0                       \
                $lijst 2> /tmp/dushell/antwlijst
        oud=`cat /tmp/dushell/antwlijst`
else
        return
fi
}
maakaktueel() {
        dialog --yesno "aktuele stand opbergen inclusief gemounte filesystems 
?" 0 0
        jn=$?
        if [  $jn -eq "0" ]; then
                optie=""
                optietxt="_Y"
        elif [ $jn -eq "1" ]; then
                optie=-x
                optietxt="_N"
        else
                return
        fi
        dialog --infobox "du doet nu zijn werk. even geduld a.u.b." 0 0
        du $optie / > /tmp/dushell/dushell.tmp 2> /tmp/dushell/du-error
        dialog --infobox "du is klaar. nu sorteren, even geduld a.u.b." 0 0
        mawk '{printf "%s%8s\n", $2, $1 }' /tmp/dushell/dushell.tmp 
> /tmp/dushell/dushell+$DATUM
        sort < /tmp/dushell/dushell+$DATUM > $NIEUW$optietxt
        cp $NIEUW$optietxt $dirstand 
#       VASTGELEGD="ja"
}
# ----------------------------------------------------------- einde funkties
if ! [ -d /tmp/dushell ]; then
        mkdir /tmp/dushell
fi
if ! [ -d /var/dushell/stand ]; then
        mkdir -p /var/dushell/stand
fi
if ! [ -d /var/dushell/verg ]; then
        mkdir -p /var/dushell/verg
fi
dirstand=/var/dushell/stand
dirverg=/var/dushell/verg
date --date='now' +%Y-%m-%d_%T > /tmp/dushell/datum
DATUM=`cat /tmp/dushell/datum`
NIEUW="/tmp/dushell/dushell_"$DATUM 
while [ 0 ]; do
#read -p "--- vlak voor het hoofdmenu ---"
oud=""
dialog  --title "dushell  H O O F D - M E N U" \
                --clear                                                         
        \
                --menu "Wat wil je doen ?" 0 0 0        \
"aktueel" "aktuele stand van de bestandsstruktuur vastleggen"           \
"maak" "maak nieuwe vergelijking met eerder vastgelegde stand"          \
"inzien" "inzien van een stand of vergelijking"                 \
"verwijder" "eerder vastgelegd bestand verwijderen"                     \
"naam" "eerder vastgelegd bestand een nieuwe naam geven"                \
"help" "een korte uitleg over dit programma"                            \
"einde" "                            tot de volgende keer....."         \
                                                        2> /tmp/dushell/antw1
if [ $? = 1 -o $? = 255 ]; then
        break
fi
#while [ 0 ]; do
ANTWOORD=`cat /tmp/dushell/antw1`
if [ $ANTWOORD = "aktueel" ]; then
        if [ -z $VASTGELEGD ]; then
                maakaktueel
        else
                dialog --msgbox "dit was al gebeurd." 0 0
        fi
elif [ $ANTWOORD = "maak" ]; then
        toonlijst $dirstand "de OUDE stand voor de vergelijking"
        
        if [ -z $VASTGELEGD ]; then
                maakaktueel
        fi
        dialog --infobox "index klaarzetten, even geduld a.u.b." 0 0
        mawk '{print $1 }' $NIEUW$optietxt > /tmp/dushell/dushell+nieuw
        mawk '{print $1 }' $dirstand/$oud > /tmp/dushell/dushell+oud
        sort -mu /tmp/dushell/dushell+oud /tmp/dushell/dushell+nieuw 
> /tmp/dushell/index
        index=`cat /tmp/dushell/index`
        vorig=`cat $dirstand/$oud`
        wissel=0
        teller=0
        for tekst in $vorig
        do
#echo $tekst
#read
                if [ $wissel -eq "0" ]; then
                        wissel=1
                        teller=`expr $teller + 1`
                        vorigindex[teller]=$tekst
                else
                        wissel=0
                        vorigwaarde[teller]=$tekst
                fi      
        done
#read -p "echo ${vorigindex[5]} ${vorigwaarde[5]}"
        nieuw=`cat $NIEUW$optietxt`
read -p "optie: $optietxt"
        wissel=0
        teller=0
        for tekst in $nieuw
        do
                if [ $wissel -eq "0" ]; then
                        wissel=1
                        teller=`expr $teller + 1`       
                        nieuwindex[teller]=$tekst
                else
                        wissel=0        
                        nieuwwaarde[teller]=$tekst
                fi      
        done
        clear
        aantaldirs=`wc -w /tmp/dushell/index|cut -b 1-7`
#echo "$aantaldirs"
#teller=900
#echo "$(($teller * 100 / $aantaldirs))"
#read -p "aantaldirs = $aantaldirs"
        echo -n "" > /tmp/dushell/oud+nieuw
        teller=0
        teller2=0
        nro=1
        nrn=1
        for dirnaam in $index
        do
                oudveld=0
                nieuwveld=0
                if [ "$dirnaam" = ${vorigindex[nro]} ]; then
                                oudveld=${vorigwaarde[nro]}
                                nro=`expr $nro + 1`
                fi
                if [ "$dirnaam" = ${nieuwindex[nrn]} ]; then
                                nieuwveld=${nieuwwaarde[nrn]}
                                nrn=`expr $nrn + 1`
                fi
                meer="0"
                minder="0"
                if [ `expr $oudveld` -lt `expr $nieuwveld` ]; then
                        meer=`expr $nieuwveld - $oudveld`
                elif [ `expr $oudveld` -gt `expr $nieuwveld` ]; then
                        minder=`expr $oudveld - $nieuwveld`
                fi
                echo -e "$oudveld\t$nieuwveld\t$meer\t$minder\t$dirnaam" 
>> /tmp/dushell/oud+nieuw
#read 
                teller=`expr $teller + 1`
                procent=$(($teller * 100 / $aantaldirs))
                if [ `expr $procent` -gt `expr $teller2` ]; then
#                       echo -e "$(($teller * 100 / $aantaldirs)) \n" > 
/tmp/dushell/procent
                        echo -e "$procent \n" > /tmp/dushell/procent
                        teller2=`expr $procent + 5`
                        dialog --guage "vergelijking opbouwen, even geduld 
a.u.b." 0 0 0 
< /tmp/dushell/procent
                fi
        done
        mawk '{ printf "%8s%8s%8s%8s %s\n", $1, $2, $3, $4, 
$5 }' /tmp/dushell/oud+nieuw > /tmp/dushell/oud+nieuw.tmp
read -p "optie=$optietxt   oud=$oud"
read -p "  /tmp/dushell/oud+nieuw.tmp $dirverg/vergelijk_$DATUM"
read -p "  /tmp/dushell/oud+nieuw.tmp $dirverg/vergelijk_$DATUM$optietxt"
read -p "  /tmp/dushell/oud+nieuw.tmp $dirverg/vergelijk_$DATUM$optietxt.$oud"
#       cp /tmp/dushell/oud+nieuw.tmp $dirverg/vergelijk_$DATUM$optietxt.$oud
        cp /tmp/dushell/oud+nieuw.tmp $dirverg/$oud.vergelijk_$DATUM$optietxt 
#       mv /tmp/dushell/oud+nieuw.tmp $dirverg/vergelijk_$DATUM
        dialog --textbox $dirverg/$oud.vergelijk_$DATUM$optietxt 0 0
elif [ $ANTWOORD = "inzien" ]; then
        dirdiep=1
        dirsel=/
        kiesdir
        toonlijst $dirkeus "een bestand om in te zien"
        if [ -n $oud ]; then
                if [ $dirkeus = $dirverg ]; then
                        cp $dirverg/$oud /tmp/dushell/inzien.tmp 
                echo "     oud   nieuw    meer  minder directory" > 
/tmp/dushell/klaar
                echo " ------- ------- ------- ------- ---------" >> 
/tmp/dushell/klaar
            else
                        mawk '{printf "%8s %s\n", $2, $1 }' $dirstand/$oud 
> /tmp/dushell/inzien.tmp 
                        echo "   stand directory" > /tmp/dushell/klaar
                echo " ------- ---------" >> /tmp/dushell/klaar
            fi
      while [ 0 ]; do 
            cp /tmp/dushell/klaar /tmp/dushell/inzien.klaar
                dialog  --title "I N Z I E N"                                   
\
                                --menu "$oud\n     directory   diepte: \
$dirdiep\n     directory selectie: $dirsel" 0 0 0               \
                        "vol" "het volledige overzicht"                         
\
                        "plus" "overzicht van de vermeerderingen"       \
                        "min" "overzicht van de verminderingen" \
                        "diepte" "directory   diepte instellen"         \
                        "selectie" "directory selectie instellen"       \
                        "ruimte" "overzicht van de schijfruimte"                
\
                        "einde" "       tot de volgende keer....."      \
                                                                                
                2> /tmp/dushell/antwinzien
                if [ $? = 1 -o $? = 255 ]; then
                        break
                fi
                inzien=`cat /tmp/dushell/antwinzien`
                if [ $inzien = "vol" ]; then
                        cp /tmp/dushell/inzien.tmp /tmp/dushell/inzien.X
                elif [ $inzien = "plus" ]; then 
                        mawk '$3 > 0' /tmp/dushell/inzien.tmp > 
/tmp/dushell/inzien.X
                elif [ $inzien = "min" ]; then
                        mawk '$4 > 0' /tmp/dushell/inzien.tmp > 
/tmp/dushell/inzien.X
                elif [ $inzien = "diepte" ]; then       
                        dialog --inputbox "de diepte <$dirdiep> wijzigen in:"   
\
                                                        0 0 $dirdiep 2> 
/tmp/dushell/dirdiep
                        dirdiep=`cat /tmp/dushell/dirdiep`
                        continue
                elif [ $inzien = "selectie" ]; then
                        dialog --inputbox "de selectie <$dirsel> wijzigen in:"  
\
                                                        0 0 $dirsel 2> 
/tmp/dushell/dirsel
                        dirsel=`cat /tmp/dushell/dirsel`
                        continue
                elif [ $inzien = "ruimte" ]; then
                        df > /tmp/dushell/inzien.df
                        dialog --textbox /tmp/dushell/inzien.df 0 0
                        continue
                elif [ $inzien = "einde" ]; then
                        break
                fi
                egrep $dirsel /tmp/dushell/inzien.X > /tmp/dushell/inzien.XX
                if [ $dirdiep = "1" ]; then
                                mawk -F "/" 'NF == 2' /tmp/dushell/inzien.XX >> 
/tmp/dushell/inzien.klaar
                elif [ $dirdiep = "2" ]; then
                                mawk -F "/" 'NF == 3' /tmp/dushell/inzien.XX >> 
/tmp/dushell/inzien.klaar
                elif [ $dirdiep = "3" ]; then   
                                mawk -F "/" 'NF == 4' /tmp/dushell/inzien.XX >> 
/tmp/dushell/inzien.klaar
                elif [ $dirdiep = "4" ]; then 
                                mawk -F "/" 'NF == 5' /tmp/dushell/inzien.XX >> 
/tmp/dushell/inzien.klaar
                elif [ $dirdiep = "5" ]; then 
                                mawk -F "/" 'NF == 6' /tmp/dushell/inzien.XX >> 
/tmp/dushell/inzien.klaar
                elif [ $dirdiep = "6" ]; then                   
                                mawk -F "/" 'NF == 7' /tmp/dushell/inzien.XX >> 
/tmp/dushell/inzien.klaar
                elif [ $dirdiep = "7" ]; then 
                                mawk -F "/" 'NF == 8' /tmp/dushell/inzien.XX >> 
/tmp/dushell/inzien.klaar
                elif [ $dirdiep = "8" ]; then   
                                mawk -F "/" 'NF == 9' /tmp/dushell/inzien.XX >> 
/tmp/dushell/inzien.klaar
                elif [ $dirdiep = "9" ]; then
                                mawk -F "/" 'NF == 10' /tmp/dushell/inzien.XX 
>> /tmp/dushell/inzien.klaar
                else
                                mawk -F "/" 'NF > 0' /tmp/dushell/inzien.XX >> 
/tmp/dushell/inzien.klaar
                fi
                dialog --textbox /tmp/dushell/inzien.klaar 0 0
      done
        fi
elif [ $ANTWOORD = "verwijder" ]; then
        kiesdir
        toonlijst $dirkeus "een bestand om te verwijderen"
        if [ -n $oud ]; then 
                dialog --yesno "<$oud> verwijderen" 0 0
                jn=$?
                if [ $jn -eq "0" ]; then 
                        rm $dirkeus/$oud        
                fi
        fi
elif [ $ANTWOORD = "naam" ]; then
        kiesdir
        toonlijst $dirkeus "een bestand om de naam van te wijzigen"
        if [ -n $oud ]; then
                dialog --inputbox "geef <$oud> een nieuwe naam:"        \
                        0 0 $oud 2> /tmp/dushell/antwnaam
                nieuwenaam=`cat /tmp/dushell/antwnaam|tr " " "_"`
                if [ -n $nieuwenaam ]; then
                        if [ $nieuwenaam != $oud ]; then
                                mv $dirkeus/$oud $dirkeus/$nieuwenaam
                        fi
                fi
        fi
elif [ $ANTWOORD = "help" ]; then
        clear
        cat << EOF
        HALLO,

Dit is de korte helptekst bij dushell.
Hij is nu nog wel heeeeeel errug kort.

EOF
        read -p "geef <ENTER> voor vervolg...." blabla
elif [ $ANTWOORD = "einde" ]; then
        rm /tmp/dushell/*
        break
fi
done
# i love comments


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED] 
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to