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

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

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

Ответ 1

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

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

Ответ 3

Удалите все файлы, к которым никто не имеет доступа более 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 выпусков).

Ответ 4

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

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

# nexus3 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

Ответ 5

Для Nexus2 вы можете использовать мое приложение Spring Boot https://github.com/vernetto/nexusclean, вы можете определять правила на основе даты и минимального количества сохраняемых артефактов, и оно генерирует команды "rm -rf" ( использование REST API чертовски медленно).

Для Nexus3 я бы определенно использовал скрипт Groovy в качестве "Выполнить задачу администратора". Один из них выложен здесь, отличный скрипт для удаления артефактов на Nexus 3 (не Nexus 2)