在服务器运行维护过程中,经常需要清理日志文件以节省存储空间。
那么如何找到并清理这些旧文件或目录呢?此时,我们将使用linux find命令和linux rm命令。
清除旧文件或目录示例:- 查找和删除超过5天的文件
- 查找超过5天的文件
➜ find . -type f -mtime 5 -exec ls -l {} \;
2.查找并删除超过5天的文件
➜ find . -type f -mtime 5 -exec rm -v {} \;
- 查找和删除超过5天的目录
#find
➜ find . -type d -mtime 5 -exec ls -ld {} \;
#delete
➜ find . -type d -mtime 5 -exec rm -v {} \;
如何使用定时任务查找并删除旧文件或目录?上面的方法可以手动清理旧文件,但有时我们希望自动执行此操作,例如每天凌晨1点执行清理操作。
此时,我们需要使用linux crontab命令。
1.将上述命令写成shell 脚本并授予可执行权限
➜ vim scheduledCleanFiles.sh
#!/bin/bash
find /var/log/ -type f -mtime 5 -exec rm -rf {} \;
find /var/log/ -type d -mtime 5 -exec rm -rf {} \;
➜ chmod x scheduledCleanFiles.sh
2.配置crontab计划的任务,使其每天凌晨1点运行
➜ vim /etc/crontab
0 1 * * * ylspirit /usr/bin/sh /home/ylspirit/scheduledCleanFiles.sh
当然,也可以把要执行的命令直接配置到contab文件中。
0 1 * * * ylspirit find /home/ylspirit/ -type f -mtime 5 -exec rm -rf {} \;
OK
到这里就可以完成对历史文件或目录的清除工作了。