Shell – House keeping removing 30+ days old files using shell script

scriptshellunix

So I have to bit of housekeeping for old backups and have the following code working on sh:

find /home/backups -mtime +30 -type f -exec rm -rf {} \; 

This works fine as know the location/path, so if the path is diff on another machine how can I modify the command to work on all machines?

If I use the command below that will delete all files 30 days old but I'm only looking to clean up these unique set of backup files only:

find . -mtime +3 -exec rm {} ';' 

Thanks

Best Answer

I don't know how would you execute the command on all machines, automatically via ssh? or manually?

anyway, if you want to save the effort of typing path, you may consider that on each machine create a variable with same name, e.g. BACKUP_DIR, it saves the path you need to do the cleaning job.

Then, in your find command, don't hardcode any path, but use the variable.

if you do it automatically via ssh, you know the path when you establish the connection. then just add the path in your find.

Related Question