Auto delete files older than 7 days

Solution 1:

First, this command will find and delete all files older than 7 days in any subdirectory in /home whose name starts with securityuser:

find /home/securityuser* -mtime +6 -type f -delete

You need -mtime +6 and not +7 because -mtime counts 24h periods. As explained in the -atime section of man find (-mtime works in the same way):

   -atime n
          File  was  last  accessed n*24 hours ago.  When find figures out
          how many 24-hour periods ago the file  was  last  accessed,  any
          fractional part is ignored, so to match -atime +1, a file has to
          have been accessed at least two days ago.

So, to find a file that was modified 7 or more days ago, you need to find files that were modified more than 6 days ago, hence -mtime +6.

The next step is to have this command run once a day. Since each securityuserN is a different user (you might want to rethink that setup, it makes everything more complicated), this must be run as root. So, edit /etc/crontab:

sudo nano /etc/crontab

And add this line:

@daily root find /home/securityuser* -mtime +6 -type f -delete

That will run the find command once a day and delete the files.

Solution 2:

as per i my knowledge:

try find command like this:

find ./dirc/* -mtime +6 -type f -delete

./dirc/* : is your directory (Path)
-mtime +6 : modified more than 6 days ago (therefore, at least 7 days ago)
-type f : only files
-delete : no surprise. Remove it to test before like rm