I have situation that I had originally thought would be easily remedied until I learned more about how -mtime actually works.
We have one server that collects backups from a number of other servers. The backup server is limited in space (for reasons that predate my employment). The standard here is to maintain 5 days worth of backup folders in each subdirectory.
Also- I should mention that this is a Windows server and I am using cygwin to run linux scripts.
For the purpose of example, here is the how the directory structure is setup;
g/backup/subdir
Within subdir, the backups directories simply have dates, so under subdir, you'd see;
2010-6-10 2010-6-11 2010-6-12 2010-6-13 2010-6-14 2010-6-15
The goal is to maintain 5 days and delete the 6th day's folder...
The script that I have setup to run against a directory like this is;
cd /cygdrive/g/backup/subdir
/usr/bin/find . -name "20*" -mtime -type d -execdir /usr/bin/rm -r '{}' \;
Now- here's the catch. The backup folders (2010-6-15) don't all get created at the exact same time. In fact for some, the times can vary greatly- from 7pm to 3am. This is where I think it breaks down when trying to use -mtime, since it's actually looking at the number of seconds, not the date on the folder.
I started trying to figure out a way of creating a file count variable, such as;
'dirnum=ls | wc -l' #and then to go on and write an 'if/then' script like
'if $dirnum > 5 then....'
Again, I'm stuck with trying to figure out how to delete by date.
Sorry if this post is too wordy or if I've left out info. This marks my first post in a forum as I can usually figure these things out.
If anyone has any ideas or some better direction, it would be much appreciated.
thanks.