cronjob 删除小于 x 的目录

cronjob 删除小于 x 的目录

我想每 6 小时运行一次 cronjob,删除小于 200MB 的目录。我知道 dh 命令可以完成这项工作,但我不确定如何使用该命令。任何帮助都非常感谢。

答案1

find . -type d -size -200M将返回每个小于 200MB 的目录,您也可以给出-maxdepth参数以避免递归进入那些较小的目录。

要自动删除它们,请通过管道传输到 xargs,例如find . -type d -size -200M -maxdepth 1|xargs rm -rf

在实际将命令传递给 之前,请务必彻底测试rm。没有“取消删除”或“垃圾”可以让你从中拉回内容!

答案2

要完成 Jakke 的回答,请打开 crontab:

   crontab -e

并添加以下行:

   0 */6 * * * command > /dev/null 2>&1

command将从 0 开始每六小时运行一次,相当于:

   0 0,6,12,18 * * * command > /dev/null 2>&1

第一个 0 表示第一分钟到最后一分钟,如果您希望在第 i 分钟启动命令,可以更改它。

标准错误和标准输出都被重定向,以防止 cron 发送邮件。

这是crontab 手册关联。

相关内容