[NTLUG:Discuss] disk usage by file age grave accent
Michael Barnes
barnmichael at gmail.com
Thu Jul 1 11:45:15 CDT 2010
On Thu, Jul 1, 2010 at 11:14 AM, Michael Barnes <barnmichael at gmail.com> wrote:
> On Wed, Jun 30, 2010 at 8:42 PM, Fred James <fredjame at fredjame.cnc.net> wrote:
>> 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.
>>
>
> Sorry, not yet. I start with creating the fred file with
>
> find /home/ftp/srnnews/ -mtime +180 -print > fred
>
> The fred file looks like this:
>
> /home/ftp/srnnews/House/HC-DEBATE-boehner-a4-SUNam.wav
> /home/ftp/srnnews/House/THR-7-9--SAME-SEX-2w_22
> /home/ftp/srnnews/House/HC-GOP-VOTE-doug-v-MONam_22
> /home/ftp/srnnews/House/HC-BILL-PASSES-doug-w2-SUNam.wav
> /home/ftp/srnnews/House/CLUNKERS-bond-a1-8-6.MP3
> /home/ftp/srnnews/House/KENNEDY-MEMORIAL SERVICE-nats-a1.wav
> /home/ftp/srnnews/House/CASH FOR CLUNKERS-feinstein-a2-8-3.MP3
> /home/ftp/srnnews/House/THU-7-9--SAME-SEX-w2.wav
> /home/ftp/srnnews/House/CLUNKERS-levin-a1-8-6.MP3
> /home/ftp/srnnews/House/CLUNKERS-mccain-a1-8-6.MP3
> /home/ftp/srnnews/House/KENNEDY TRIBUTE-byrd-a-9-10.MP3
> /home/ftp/srnnews/stuff/WHEM Africa Feature.wav
> /home/ftp/srnnews/stuff/9-11-SHANKESVILLE-powell-a1.wav
> /home/ftp/srnnews/stuff/SRN_NewsA.mp3
> /home/ftp/srnnews/stuff/9-11-NYC-DRUMS.wav
> /home/ftp/srnnews/stuff/9-11-SHANKESVILLE-nats.wav
> /home/ftp/srnnews/stuff/9-11-NYC-NAMES.wav
> /home/ftp/srnnews/stuff/9-11-SHANKESVILLE-bells-names-a1.wav
> /home/ftp/srnnews/stuff/SRN_NewsBC.mp3
> /home/ftp/srnnews/stuff/9-11-NYC-bagpipes.wav
> /home/ftp/srnnews/stuff/audacity-win-1.2.6.exe
> /home/ftp/srnnews/stuff/9-11-BLOOMBERG-a1.wav
> /home/ftp/srnnews/Senate/LIEBERMAN-kenyon-TUES.wav
> /home/ftp/srnnews/Senate/13269D2-56561_Admin_a_o_i_LIEBERMAN-SENATE-kenyon-w-THURSpm_22
> /home/ftp/srnnews/Senate/COLEMAN-09306233 HOLD FOR LINDA.wav
> /home/ftp/srnnews/Senate/KENNEDY-BENNETT-bennett-a2.wav
> /home/ftp/srnnews/Senate/KENNEDY-BENNETT-bennett-a3.wav
> /home/ftp/srnnews/Senate/KENNEDY-BENNETT-bennett-a4.wav
> /home/ftp/srnnews/Senate/BAILOUT-paulson-a2-TUESam.wav
> /home/ftp/srnnews/Senate/KENNEDY MEMORIAL-kennedy-j-a.wav
> /home/ftp/srnnews/Senate/SOTOMAYOR-kenyon-w2-THURS 8-6.MP3
> /home/ftp/srnnews/Senate/SOTOMAYOR-kenyon-w2-THURS 8-6.wav
> /home/ftp/srnnews/Senate/13290F1-21767_snnapuser_a_o_i_HEALTH
> CARE-various-2aSATam_22
> /home/ftp/srnnews/Senate/LEAHY-for all americans.wav
> /home/ftp/srnnews/White House/OBAMA-RAMADAN-09-01.MP3
> /home/ftp/srnnews/White House/wh-religious leaders-08-19.wav
> /home/ftp/srnnews/White House/BUSH - 11-05.wav
> /home/ftp/srnnews/White
> House/Obama_Irritated_With_White_House_Reporter_-_1_22_09.wmv
> /home/ftp/srnnews/White House/maginnis reserves question for greg.wav
> /home/ftp/srnnews/White House/AP-GAFFE-01-22.mp3
> /home/ftp/srnnews/White House/bushism-1.wav
> /home/ftp/srnnews/White House/bushism-2.wav
> /home/ftp/srnnews/YIR 2009
> /home/ftp/srnnews/YIR 2009/FORT HOOD-gordon.mp3
> /home/ftp/srnnews/YIR 2009/FORT HOOD-gordon.rtf
> /home/ftp/srnnews/YIR 2009/YIR 2009-OBAMA AFGHAN WAR-clug.wav
> /home/ftp/srnnews/YIR 2009/YIR 2009-OBAMA ECONOMY-clug.wav
> /home/ftp/srnnews/YIR 2009/1329149-40114_snnapuser_a_o_i_SCRIPT_22
> /home/ftp/srnnews/YIR 2009/PALIN YIR.rtf
> /home/ftp/srnnews/YIR 2009/ricK 12-4-09.wav
>
> Then I run the script above and freddy.txt says
>
> 69M /home/ftp/srnnews/YIR 2009
>
> My desired result would be
>
> 754M /home/ftp/srnnews/House
> 75M /home/ftp/srnnews/stuff
> 425M /home/ftp/srnnews/Senate
> 1.2G /home/ftp/srnnews/White House
> 69M /home/ftp/srnnews/YIR 2009
>
> What is real strange is if I edit the fred file to remove the
> /home/ftp/srnnews/YIR 2009 files, then run the script, it generates
> nothing. It sure has me confused.
>
> Thanks for your help
> Michael
>
I found part of the problem. In the file fred, the directories are
not listed except for '/home/ftp/srnnews/YIR 2009'. If I go into fred
and add /home/ftp/srnnews/House, /home/ftp/srnnews/stuff,
/home/ftp/srnnews/Senate, /home/ftp/srnnews/White House then run the
script again, I get
2.7G /home/ftp/srnnews
560M /home/ftp/srnnews/House
65M /home/ftp/srnnews/stuff
1.2G /home/ftp/srnnews/Senate
717M /home/ftp/srnnews/White House
69M /home/ftp/srnnews/YIR 2009
which is the desired result. However, I need to run this on several
folders with a ton of subdirectories. I don't want to have to go in
and edit dozens of lines each time.
Ideas?
TNX,
Michael
More information about the Discuss
mailing list