I am a complete noob at linux but I am starting to get the hang of it.
I have an Ubuntu Server 16.04 running an FTP server to backup security video files. The files will be stored in folders like: /home/securityfolder1
, /home/securityfolder2
, /home/securityfolder3
and so on.
Note that each securityfolderN
is a different user.
Because I don't want my hard drives to be full all of the time, I want to delete files older than 7 days in these folders daily.
Best Answer
First, this command will find and delete all files older than 7 days in any subdirectory in
/home
whose name starts withsecurityuser
:You need
-mtime +6
and not+7
because-mtime
counts 24h periods. As explained in the-atime
section ofman find
(-mtime
works in the same way):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
:And add this line:
That will run the
find
command once a day and delete the files.