设置每月 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