Как прокомментировал chiborg, загрузка происходит из-за запуска rm для каждого найденного файла. Я заметил ответ, где в качестве альтернативы предлагается tmpwatch
, который, я уверен, работает хорошо. Однако это не обязательно.
Find может выполнить команду, заданную для exec, один раз, если вы скажете ей накапливать найденные файлы в список аргументов следующим образом:
find /path -name "*.moo" -exec rm {} \+
Иногда это может не сработать, потому что список аргументов может увеличиться (в байтах), чем максимально допустимый оболочкой (getconf ARG_MAX). Это может быть решено с помощью xargs с опцией -L.
рассмотрим этот пример:
$ echo 0 > /tmp/it;
$ for i in {0..15000};do echo $i;done |\
xargs --no-run-if-empty -L 5000 ./tmp/xr.sh
Iteration=0; running with 5000 arguments
Iteration=1; running with 5000 arguments
Iteration=2; running with 5000 arguments
Iteration=3; running with 1 arguments
$ cat tmp/xr.sh
#!/bin/sh
IT=`cat /tmp/it`
echo Iteration=$IT\; running with $# arguments
let IT=IT+1
echo $IT > /tmp/it
Поэтому нет необходимости устанавливать дополнительное программное обеспечение, все, что вам нужно, это в gnu-findutils:
find /path -mtime +30 -print0 | xargs -0 -L 5000 rm