Удаление артефактов старше 2 лет из локального хранилища nexus

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

есть ли способ сделать это, кроме комбинации find и curl?

4 ответов


существует запланированная задача, которая может автоматически удалять старые выпуски моментальных снимков:

к сожалению, это не работает для сетевых хранилищ выпуска.


Как отметил на Sonatype сообщение в блоге связано из комментария в блоге в ответе гавенкоа, так как Nexus 2.5 есть встроенная запланированная задача" удалить выпуски из репозитория", которая может быть настроена на удаление старых выпусков, сохраняя определенное число.

этого достаточно для удовлетворения наших потребностей.


удалить все файлы, к которым никто не имеет доступа более 100 дней и не изменяется более 200 дней:

find . -type f -atime +100 -mtime 200 -delete

для очистки пустых папок:

find . -type d -empty -delete

или альтернативно посмотрите на https://github.com/akquinet/nexus_cleaner/blob/master/nexus_clean.sh и соответствующая запись в блоге http://blog.akquinet.de/2013/12/09/how-to-clean-your-nexus-release-repositories/ (удалить все, кроме последних 10 выпусков).


auto purge старше 30 дней (u может изменить его) не загружать изображения docker из nexus 3

https://gist.github.com/anjia0532/4a7fee95fd28d17f67412f48695bb6de

# nexus3's username and pwd
username = 'admin'
password = 'admin123'

# nexus host
nexusHost = 'http://localhost:8081'

# purge repo
repoName = 'docker'

# older than days
days = 30

#change and run it