ディスク容量に制限があり、特定のしきい値より古いアーティファクトを削除したい古いハードウェアでnexusを実行しています。
検索とカールの組み合わせ以外にこれを行う方法はありますか?
古いスナップショットリリースを自動的に削除できるスケジュールされたタスクがあります。
残念ながら、これはホストされたリリースリポジトリでは機能しません。
Givenkoaの回答のブログのコメントからリンクされている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リリースを除くすべてを削除します)。
30日より古い自動パージ(uは変更可能)ネクサス3からDockerイメージをダウンロードしない
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
Nexus2の場合、Spring Bootアプリケーションhttps://github.com/vernetto/nexuscleanを使用できます。日付と保持するアーティファクトの最小数に基づいてルールを定義でき、「rm-rf」コマンドを生成します( REST APIは非常に遅いです)。
Nexus3の場合、私は間違いなくGroovyスクリプトを「管理タスクの実行」として使用します。1つはここに投稿されており、nexus 3(nexus 2ではない)のアーティファクトを削除するためのgroovyスクリプトです。