
В моей компании есть набор серверов 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 \;
- Вышеуказанное высвобождает это в корне, что довольно страшно. Рассмотрите возможность ограничить это только теми каталогами, которые вам нужны.
- Обратите внимание, что этот шаблон не является уникальным, поэтому используйте его с осторожностью.
- Тонкая настройка вашего регулярного выраженияздесь