Linux application: automatically delete logs n days ago and logs n days ago
Linux is a system that automatically generates files, such as logs, emails, and backups. Although hard disks are cheap now, we can have a lot of hard disk space to waste these files, so that the system can clean up unnecessary files at regular intervals. You don't have to worry about whether you need to clear logs every day, and you don't need to receive alarm text messages due to insufficient disk space every day. If you want to have a good rest, let's hand over this to the machine for scheduled execution.
1. File Deletion command:
Find directory-mtime + days-name "file name"-exec rm-rf {}\;
Instance command:
Find/opt/soft/log/-mtime + 30-name "*. log"-exec rm-rf {}\;
Note:
Delete all files with ". log" 30 days ago in the/opt/soft/log/directory. The parameters are described as follows:
Find: linux SEARCH command. You can search for files with specified conditions;
/Opt/soft/log/: any directory to be cleaned;
-Mtime: Standard statement writing;
+ 30: Search for files 30 days ago. Here, numbers are used to represent the number of days;
". Log ": the data type to be searched ,". Jpg indicates to search for all files with the jpg extension, and "*" indicates to search for all files. This can be used flexibly;
-Exec: Fixed statement;
Rm-rf: Force delete files, including directories;
{}\;: Fixed syntax, a pair of braces + spaces ++;
2. scheduled tasks:
If it is too troublesome to manually execute the statement each time, you can write the small statement to an executable shell script file, and then set cron to schedule the execution, so that the system can automatically clean up the relevant files.
2.1 create a shell:
Touch/opt/soft/bin/auto-del-30-days-ago-log.sh
Chmod + x auto-del-30-days-ago-log.sh
Create an executable auto-del-30-days-ago-log.sh and assign runnable Permissions
2.2 edit the shell script:
Vi auto-del-30-days-ago-log.sh
Edit the auto-del-30-days-ago-log.sh file as follows:
#!/bin/shfind /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
OK. Save and exit (: wq ).
2.3 planned tasks:
#crontab -e
Add the auto-del-30-days-ago-log.sh execution script to the system scheduled task, to point for Automatic Execution
Input:
10 0 ***/opt/soft/log/auto-del-7-days-ago-log.sh>/dev/null 2> & 1
The setting here is to execute the auto-del-7-days-ago-log.sh file at 00:10 every day for data cleanup tasks.
After completing the preceding three steps, you no longer need to remember whether the hard disk space is full every day. You need to clear the log file and no longer receive alarms due to insufficient disk space on the server, rest assured, read books and drink coffee!