Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Feb 2013 23:42:34 -0600
From:      Tim Daneliuk <tundra@tundraware.com>
To:        Robert Bonomi <bonomi@mail.r-bonomi.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Fun Scripting Problem
Message-ID:  <511C794A.10001@tundraware.com>
In-Reply-To: <201302132113.r1DLD6DX003167@mail.r-bonomi.com>
References:  <201302132113.r1DLD6DX003167@mail.r-bonomi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 02/13/2013 03:13 PM, Robert Bonomi wrote:
>
>> Date: Wed, 13 Feb 2013 12:27:31 -0600
>> From: Tim Daneliuk <tundra@tundraware.com>
>> Subject: Fun Scripting Problem
>>
>> I know how to do this in Python, but I really want to do it in
>> straight Bourne shell.  I have some ideas, but I thought I'd
>> give you folks a crack at this Big Fun:
>>
>> a)  You have a directory of files - say they're logs - generated
>>       at nondeterministic intervals.  You may get more than one a day,
>>       more than one a month, none, or hundreds.
>>
>> b) To conserve space, you want to keep the last file generated
>>      in any given month (the archive goes back for an unspecified
>>      number of years), and delete all the files generated prior to
>>      that last file in that same month.
>>
>> c) Bonus points if the problem is solved generally for either files
>>      or directories generated as described above.
>>
>> These are not actually logs, and no, I don't think logrotate can
>> do this ... or can it?
>
> here's a one-liner:
>   rm ` \
>   stat -f "%SB %B %N" *  \
>   | sort -k5nr \
>   | cut -c1-7,17-20,32- \
>   | awk 'BEGIN {a="";b=0;c=0} $1==a && $2==b && $3=c {print $4;}{a=$1;b=$2;c=$3}' \
>   `
>
> This selects on creation date. change the B (both of them) in the stat
> call to use a different timestamp

Thanks to all that took the time.  Interesting responses.  It will
be fun to cook up my own version.


-- 
----------------------------------------------------------------------------
Tim Daneliuk     tundra@tundraware.com
PGP Key:         http://www.tundraware.com/PGP/




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?511C794A.10001>