N3dr备份还原Nexus仓库
项目介绍
n3dr 是一个用于备份和恢复 Nexus 3 仓库的开源工具。
Nexus 3 是一个广泛使用的仓库管理器,用于管理软件包和构件。
n3dr 提供了一个简单的方式来备份 Nexus 3 仓库中的所有组件,确保数据的安全性和可恢复性。
在线安装go环境
1. 下载指定版本的压缩包 (以 1.22.0 为例,可根据需要换成最新版)
1
| wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
|
2. 解压到 /usr/local (需要 sudo 权限)
1
| sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
|
3. 配置环境变量 (添加到 ~/.bashrc 或 ~/.zshrc)
1 2
| echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc source ~/.bashrc
|
4. 验证
在线安装n3dr
1
| go install github.com/030/n3dr/cmd/n3dr@latest
|
1.检查二进制文件是否存在:
1
| ls -l $(go env GOPATH)/bin/n3dr
|
如果你能看到这个文件,说明编译成功了。
2.直接运行测试:
如果提示 command not found,请参考我之前提到的,将 $(go env GOPATH)/bin 加入到系统的 PATH 环境变量中。
3.将配置写入 .bashrc
1
| echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
|
4.使配置立即生效
5.测试命令是否可以直接调用
备份
1
| n3dr repositoriesV2 --backup --n3drURL "192.168.11.6:8081" --n3drUser "admin" --n3drPass "Best12358" --https=false
|
还原
1
| n3dr repositoriesV2 --upload --n3drURL "192.168.11.6:18081" --n3drUser "admin" --n3drPass "12345678" --https=false --directory-prefix "nuget-hosted"
|
简单的上传接口
如果有少量的报需要上传,可以使用下面的接口,传入需要上传的文件夹名称。
nuget-hosted仓库名称可以根据自己相应的替换。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #!/bin/sh
nugetPkgDir=$1
nexusUser=admin nexusPaswd=12345678 nexusUrl=http://192.168.11.6:8081
if [ -z $nugetPkgDir ];then echo "请输入nuget包所在的文件夹" echo "示例./nexusPushNugetPkg.sh nugetPkg" exit fi
cd $nugetPkgDir
for i in `ls *.nupkg`;do curl -u ${nexusUser}:${nexusPaswd} -X 'POST' \ "${nexusUrl}/service/rest/v1/components?repository=nuget-hosted" \ -H 'accept: application/json' \ -H 'Content-Type: multipart/form-data' \ -H 'X-Nexus-UI: true' \ -F "nuget.asset=@${i}" done
|
The End