Назад | Перейти на главную страницу

Ищем сценарий для поиска файлов на Linux-серверах старше x дней с определенной схемой именования

У моей компании есть набор серверов Linux, на которых пользователи хранят файлы. Файлы, следующие по общей схеме именования #####, ###, ### с номерами, соответствующими уникальным для них полям. Они должны удалить файлы через 30 дней, но этого не происходит, и в результате растущего сообщества пользователей на некоторых серверах заканчивается дисковое пространство.

Кто-нибудь знает, как я могу написать сценарий процесса, который будет искать во всех разделах серверов Linux любой файл с указанной выше схемой именования, который старше 30 дней, и перемещать его в новую папку?

Это значительно упростило бы очистку, потому что некоторые пользователи хранят файлы на многоуровневой глубине, и это начинает занимать много времени, просто их поиск позволяет одному решить, можно ли его удалить.

Любая помощь будет принята с благодарностью!

Использовать найти команду чтобы получить нужные файлы. Вы можете использовать -mtime возможность установить возраст файла. Вы можете использовать регулярное выражение \d{5},\d{3},\d{3}$ чтобы соответствовать имени файла. Затем переместите каждый файл куда хотите.

Как это:

find / -mtime +30 -regex '\d{5},\d{3},\d{3}$' -exec mv {} /path/to/destination/folder \;
  • Вышеупомянутое раскрывает это в корне, что довольно страшно. Рассмотрите возможность размещения его только в нужных вам каталогах.
  • Обратите внимание, что этот шаблон не является уникальным, поэтому снова используйте его с осторожностью.
  • Настройте свое регулярное выражение Вот