unix中如何查找并删除历史旧文件或目录

在服务器运行维护过程中,经常需要清理日志文件以节省存储空间。

那么如何找到并清理这些旧文件或目录呢?

此时,我们将使用linux find命令和linux rm命令。

清除旧文件或目录示例:

  • 查找和删除超过5天的文件
  1. 查找超过5天的文件

➜ find . -type f -mtime +5 -exec ls -l {} \;

linux/unix中如何查找并删除历史旧文件或目录

2.查找并删除超过5天的文件

➜ find . -type f -mtime +5 -exec rm -v {} \;

linux/unix中如何查找并删除历史旧文件或目录

  • 查找和删除超过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

到这里就可以完成对历史文件或目录的清除工作了。


分享到:


相關文章: