Перед нами стоит задача удалить около X миллионов файлов, которые соответствуют определенным критериям - в частности, должны быть старше 90 дней и исключать определенные форматы файлов. На сегодняшний день мы использовали многопоточный сценарий PowerShell, который хорош, но все же не так быстр, как нам нужно, поскольку наши процессы загрузки создают новые файлы с высокой скоростью.
Что я могу сделать, чтобы ускорить удаление такого количества файлов?
Агент Рэнсак работает очень быстро и поддерживает удаление файлов по дате изменения.
Кроме того, очевидно, что он будет работать быстрее, если вы отключите все другие процессы, запущенные на сервере.
Powershell имеет репутацию не очень быстрой машины; возможно, командный файл с использованием встроенного Windows forfiles
команда может сделать свое дело.
Чтобы выбрать и удалить все файлы старше 90 дней, вы можете использовать что-то подобное:
forfiles -p "C:\your\dir" /S /D -90 /C "cmd /c del @path"
Если это остается слишком медленным, вы можете использовать forfiles
сначала создать список файлов, подлежащих удалению, а затем использовать команду пакетного удаления для всех файлов в списке (это может значительно уменьшить количество del
звонки / итерации).
Для получения дополнительной информации и другого более или менее творческого режима для удаления файлов вы можете увидеть Вот и Вот