House keeping removing 30+ days old files using shell script

10,663

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.

Share:
10,663

Related videos on Youtube

Admin
Author by

Admin

Updated on September 18, 2022

Comments

  • Admin
    Admin over 1 year

    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

    • Admin
      Admin over 12 years
      maybe you could consider to use a variable for the path?
    • GreyCat
      GreyCat over 12 years
      Consider using -prune or -delete instead of -exec rm -rf - it's usually a much better option, if your find supports it.
  • Admin
    Admin over 12 years
    Yep yep this what was thinking just wanted to get second opinion, thanks kent