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

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

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

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

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

Любая помощь будет высоко оценена!

решение1

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

Так:

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

Связанный контент