删除超过 6 个月的文件的脚本

删除超过 6 个月的文件的脚本

设置每月 cron 作业通过脚本运行。

该脚本是每月轮换一个文件,因为它变得太大并重命名旧文件。当文件超过六个月时,我希望将其删除。

希望每月运行一次该脚本。旧的可以删除吗?

如果这还不够清楚,请告诉我。

答案1

你可以从这个开始:

find /your/file -mtime +182 -exec rm {} +

+182天数在哪里。

答案2

你可以只使用logrotate.它已经在大多数 Linux 系统上可用,并且许多软件包已经预先配置了 logrotate 脚本,或者您可以调整它们或编写自己的脚本。

答案3

@scottmarriott 并非所有版本的 find 都支持 +/- -mtime。你有什么操作系统和版本的 find? – 乔丹 2013 年 5 月 30 日 13:04

要回答 @jordanm 的问题,一种方法是枚举所有找到的find结果并在循环体中对它们执行某些操作for

# Using the general form:
for <identifier> in $(find <source-dir> -mtime +<days>) ; do <thing> ; done
 
# You could write their location to a parallel script file
echo '#!/bin/bash' > ./old.stuff
for hogfile in $(find . -mtime +182 ) ; do echo "rm $PWD/$hogfile &" >> "./old.stuff" ; done

# Make it into an executable
chmod +x ./old.stuff

# Profit
./old.stuff

相关内容