[NTLUG:Discuss] disk usage by file age grave accent

Fred James fredjame at fredjame.cnc.net
Wed Jun 30 20:42:54 CDT 2010


Michael Barnes wrote:
> On Wed, Jun 30, 2010 at 2:34 PM, Fred James <fredjame at fredjame.cnc.net> wrote:
>   
>> Michael Barnes wrote:
>>     
>>> On Wed, Jun 30, 2010 at 12:58 PM, Fred James <fredjame at fredjame.cnc.net>
>>> wrote:
>>>
>>>       
>>>> Michael Barnes wrote:
>>>>
>>>>         
>>>>> I'm trying to figure out how to gather some disk data.  What I need is
>>>>> to find the disk usage by subfolder, but only by files older than a
>>>>> certain time.  I can get a list of files with
>>>>> find ./ftp/news +mtime 180
>>>>> and get a list of everything older than six months.
>>>>> I can do
>>>>> du -sh ./ftp/news/*
>>>>> and find the usage by subfolder.
>>>>> What I need is to combine the two, so I get something like
>>>>>
>>>>> 15M             ftp/news/4-Dallas
>>>>> 40M             ftp/news/4-Washington
>>>>> 560M    ftp/news/House
>>>>> 1.1G            ftp/news/Senate
>>>>> 717M    ftp/news/White House
>>>>> 69M             ftp/news/YIR 2009
>>>>> 65M             ftp/news/stuff
>>>>>
>>>>> knowing that the size is for files over six months old.
>>>>>
>>>>>
>>>>> Any simple ideas for this?
>>>>>
>>>>> Thanks,
>>>>> Michael
>>>>>
>>>>>
>>>>>           
>>>> Michael Barnes
>>>> Have you considered the various 'time' options for 'du' (snip below)?
>>>> Would
>>>> any of those get you closer to what you want?
>>>> You might also consider the '-printf' option (and it's formating options)
>>>> of
>>>> 'find' (under Actions). Hope that helps
>>>> Regards
>>>> Fred James
>>>>
>>>> --time show time of the last modification of any file in the directory,
>>>> or
>>>> any of its subdirectories
>>>>
>>>> --time=WORD
>>>> show time as WORD instead of modification time: atime, access, use, ctime
>>>> or
>>>> status
>>>>
>>>> --time-style=STYLE
>>>> show times using style STYLE: full-iso, long-iso, iso, +FORMAT FORMAT is
>>>> interpreted like ‘date'
>>>>
>>>>
>>>>
>>>>         
>>> I tried the 'time' options and got
>>> du: unrecognized option `--time'
>>> and they are not listed as options in du --help.
>>> It is an older machine running SLES 9.  Apparently the 'time' options
>>> are new.  I don't know how I would upgrade du for this old SuSE
>>> install.
>>>
>>> Thanks,
>>> Michael
>>>
>>>       
>> Michael Barnes
>> A quick look at an old Unix in a Nutshell book also notes a lack of printf
>> in find ... so ...
>>   find ./ftp/news +mtime 180 -print > fred
>> ... should get you a text file of the list of files you are interested in
>> and something like ...
>>   while read i
>>   do
>>           data=`du -h $i`
>>           echo "${data} ${i}" >> freddy.txt
>>   done < fred
>>   exit
>> ... should produce a text file that contains something like this (see below)
>> ... assuming that 'freddy.txt' does not already exist ...
>> Does that help?
>> Regards
>> Fred James
>>
>> 724K    ./tmp/orbit-fredjame
>> 4.0K    ./tmp/ksocket-fredjame/artsd-samples
>> 12K     ./tmp/ksocket-fredjame
>> 4.0K    ./tmp/kde-fredjame/kdenlive
>> 16K     ./tmp/kde-fredjame
>> 4.0K    ./tmp/keyring-pZD1S8
>> 4.0K    ./tmp/keyring-BivafU
>> 4.0K    ./tmp/keyring-HkLdP7
>> 84K     ./tmp/plugtmp
>> 4.0K    ./tmp/plugtmp-1
>> 4.0K    ./tmp/keyring-6gKCsT
>> 4.0K    ./tmp/keyring-22APTg
>> 4.0K    ./tmp/keyring-EClhPQ
>> 4.0K    ./tmp/keyring-4bEPT3
>>
>>     
>
> That is getting me closer.  The problem now is it doesn't work well
> with spaces in file names.  It also lists all the files, while all I
> need are the folders with size summary.   But, I'm a lot closer now.
>
> Thanks,
> Michael
>   
Michael Barnes
Modify the while statement to something like ...
    while read i
    do
            if test -d "${i}"
            then
                    data=`du -sh "${i}"`
                    echo "${data}" >> freddy.txt
            fi
    done < fred

Any better?
Regards
Fred James

PS:  Note that those are back ticks (grave accent) surrounding the 'du' 
statement.




More information about the Discuss mailing list