Managing log files are a pain the rear. I do a lot of processing of log files which means pulling log files from various servers, processing them then deleting them. Automating this task is pretty straight forward, but I’ve always manually deleted the files once they have been processed.
Being a “lazy” programmer, I decided to automate the deleting of the log files after 7 days. The unix
find command makes this really simple:
find logfiles -ntime +7 -type f -delete
The command above simply does the following:
- Specify the log files you want to delete. Simply replace
logfileswith the filename (with wildcards).
- Specify the age of the files in days using the
-ntimeparameter. In the example above I used +7 days.
- Specify the file type via the
-typeparameter. Since I’m only interested in deleting files I use
-type f. If you want to delete folders you can use
-type d. If you want to delete both files and folders just omit the
- Finally, I use the
-deleteparameter to tell
findto delete the files that match the search criteria.
Of course, I use the command in a script so a lot of the parameter values are set via variables. This is a simple thing to do, but I’ve seen a lot of people writing elaborate shell scripts that does what this single command does. Not sure what the Windows command line equivalent is, but luckily I have Windows BASH installed on my Win10 computer. Unix and and MacOS systems should all have
find already installed.