Cron job to delete files older than 3 days
This is easy enough (although note that this goes by a modification time more than 3 days ago since a creation time is only available on certain filesystems with special tools):
find /a/b/c/1 /a/b/c/2 -type f -mtime +3 #-delete
Remove the #
before the -delete
once you are sure that it is finding the files you want to remove.
To have it run by cron, I would probably just create an executable script (add a shebang - #!bin/sh
to the top line of the file and make executable with chmod a+x
), then put it in an appropriate cron
directory like /etc/cron.daily
or /etc/cron.weekly
. Provided of course that you do not need a more specific schedule and that these directories exist on your distro.
Update
As noted below, the -delete
option for find
isn't very portable. A POSIX compatible approach would be:
find /a/b/c/1 /a/b/c/2 -type f -mtime +3 #-exec rm {} +
Again remove the #
when you are sure you have the right files.
Update2
To quote from Stéphane Chazelas comment below:
Note that
-exec rm {} +
has race condition vulnerabilities which-delete
(where available) doesn't have. So don't use it on directories that are writeable by others. Some finds also have a-execdir
that mitigates against those vulnerabilities.
You would be much better off using tmpwatch
tmpwatch recursively removes files which haven't been accessed for a given time. Normally, it's used to clean up directories which are used for temporary holding space such as /tmp.