Скрипт для выполнения через cronjob, который удаляет все файлы в нескольких каталогах

486
Glen

Я надеюсь, что вы можете одолжить мне свой опыт.

Я использую виртуальный хостинг на Hostgator и мне нужно выяснить, как удалять все файлы .gz в нескольких каталогах каждый час. Я думаю, что у меня есть команда cronjob правильно сделать это для одного каталога:

/usr/bin/find /path/to/directory/ -type f -name '*.gz' -exec rm {} \; 

Это верно?

Если да, то как бы я выполнил одно и то же действие, но для нескольких (то есть десятков) каталогов? Я предполагаю, что могу выполнить один сценарий вместо нескольких отдельных cronjob, но я новичок в этом. Как будет выглядеть такой скрипт? И как мне выполнить скрипт через cronjob?

Спасибо заранее за любую помощь!

3
Если ваша версия `find` поддерживает это, вы можете использовать` -delete` вместо `-exec rm {} \;` или хотя бы `+` вместо `\;`. Dennis Williamson 13 лет назад 0
Альтернативой является `/ usr / bin / find / path / to / directory / -type f -name '* .gz' -print0 | xargs -0 rm`, который избегает многократного выполнения rm для каждого отдельного файла. hlovdal 13 лет назад 0

1 ответ на вопрос

1
Ignacio Vazquez-Abrams

Пройдите несколько путей к find.

find /dir1 /dir2 ... 
Спасибо! И это будет работать для большого количества каталогов? Glen 13 лет назад 0
Должен, хотя я не знаю точного максимума. Ignacio Vazquez-Abrams 13 лет назад 0

Похожие вопросы