背景

在上一篇博客 【Maven学习】Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库。下面是两个版本的Nexus OSS私服仓库的对比图。

老的Nexus OSS私服仓库

新的Nexus OSS私服仓库

明显老的Nexus OSS私服仓库的内容比新的Nexus OSS私服仓库的内容多。因此我们现在的工作就是将办公室上的老的Nexus服务器上的所有的数据迁移到机房的Nexus服务器。这一篇博客记录下整个Nexus OSS私服仓库的备份与迁移的过程。

一、老的Nexus OSS私服仓库备份

迁移中会遇到三个文件夹 , 打包、拉走 启动即可。

名称 目录名 重要配置文件
nexus主目录 nexus-2.6.4-02 conf/nexus.properties里面有sonatype-work的地址
sonatype-work目录 sonatype-work nexus/conf/nexus.xml里面有storage的地址
storage目录 storage 里面主要是各种程序的jar包等

迁移流程如下

首先我们在老的Nexus OSS私服仓库的这台Linux服务器上,查看相关的目录信息。

如上图所示,在老的Nexus OSS私服仓库的这台Linux服务器上,

nexus主目录的地址为:/usr/local/nexus-2.12.1-01

在 /usr/local/nexus-2.12.1-01/config/nexus.properties 文件中,指定了sonatype-work的地址

现在我们进入 /usr/local/sonatype-work/nexus/storage目录,查看里面的目录结构

  1. [root@kf1appsvr storage]# pwd
  2. /usr/local/sonatype-work/nexus/storage
  3. [root@kf1appsvr storage]# ll
  4. total 52
  5. drwxr-xr-x 6 root root 4096 Dec 4 08:49 android-beta
  6. drwxr-xr-x 6 root root 4096 Dec 4 08:49 android-dev
  7. drwxr-xr-x 6 root root 4096 Dec 4 08:49 android-release
  8. drwxr-xr-x 6 root root 4096 Dec 4 08:49 android-snapshots
  9. drwxr-xr-x 10 root root 4096 Dec 4 08:49 android_public
  10. drwxr-xr-x 4 root root 4096 Dec 4 08:49 apache-snapshots
  11. drwxr-xr-x 30 root root 4096 Dec 4 08:49 central
  12. drwxr-xr-x 125 root root 4096 Nov 30 17:08 central-m1
  13. drwxr-xr-x 6 root root 4096 Dec 4 08:49 public
  14. drwxr-xr-x 4 root root 4096 Dec 4 08:49 releases
  15. drwxr-xr-x 4 root root 4096 Dec 4 08:49 snapshots
  16. drwxr-xr-x 5 root root 4096 Dec 4 08:49 thirdparty
  17. drwxr-xr-x 2 root root 4096 Jan 11 2017 xtc_devs

将此目录结构和Nexus管理界面对比,可以一一对应,如下所示。

从上面分析来看,我们只需要将nexus主目录和sonatype-work目录都备份好即可。但是两个Linux服务器的nexus配置的java路径之类的可能不同,我就不备份nexus主目录了。

我只备份sonatype-work目录,Nexus的构件仓库都保存在sonatype-work目录中,该目录的位置由nexus/conf/nexus.properties配置文件指定。

使用 tar命令将 sonatype-work目录 打包压缩为一个 tar.gz文件,命令如下所示

[root@kf1appsvr local]# tar -zcvf sonatype-work-2017-12-14.tar.gz ./sonatype-work/

备份中,整个备份过程比较缓慢,因为两年传上去的的文件和文件夹太多了。

打包完毕


生成了 sonatype-work-2017-12-14.tar.gz 文件,占用了2770940709 字节,差不多2.6G

二、将老的Nexus OSS私服仓库的备份文件复制到新的Nexus OSS私服仓库

上一步我们将整个 sonatype-work 目录打包成一个压缩包 sonatype-work-2017-12-14.tar.gz,现在我们要将这个压缩包复制到新的Nexus OSS私服仓库的Linux服务器上。

我们是有 scp命令来进行复制操作,关于scp命令的操作可以参考之前的文章 git学习------> Gitlab如何进行备份恢复与迁移?

使用scp命令从远程服务器copy文件或者目录到本地

scp 用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2

[用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

  • -v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .
  • -C 使能压缩选项 .
  • -P 选择端口 . 注意 -p 已经被 rcp 使用 .
  • -4 强行使用 IPV4 地址 .
  • -6 强行使用 IPV6 地址 .

例如我使用如下命令,从远程服务器copy刚才的备份文件sonatype-work-2017-12-14.tar.gz到了新服务器的/usr/local 目录下

scp root@老的linux的ip地址:/usr/local/sonatype-work-2017-12-14.tar.gz /usr/local/

我们登录到新的Nexus OSS私服仓库那台linux服务器,然后执行上面的命令

敲了命令之后,需要我们确认是否connecting,我们敲一个yes,接着需要我们输入老的Nexus OSS私服仓库那台linux服务器的密码,如下所示

敲完之后,如果密码正确的话,则将刚才的备份文件copy到这台新的linux服务器。稍等一段时间之后则可以copy完毕,如下图所示:

真心尴尬,根目录 / 的磁盘空间用完了,导致复制过程终止,我们将这个复制到一半的文件删除掉。

我发现 /data2 的磁盘空间很充裕,因此我将文件复制到 /data2目录下,如下图所示

复制完毕之后,查看 /data2 目录,发现 复制过来的 sonatype-work-2017-12-14.tar.gz 文件也是 2770940709个字节,完整复制过来了。

三、解压备份文件

因为 根目录 / 下的磁盘空间不足,因此我们将刚才的压缩包解压到 /data2目录下。如下所示:

tar -zxvf sonatype-work-2017-12-14.tar.gz

解压过程

解压好后,会生成一个 sonatype-work目录。如下图所示:

四、还原仓库

因为我们新的Nexus OSS私服仓库之前制定的仓库地址为

  1. [root@localhost local]# cd nexus-2.12.1-01/
  2. [root@localhost nexus-2.12.1-01]# ll
  3. 总用量 40
  4. drwxr-xr-x 3 1001 1001 4096 12月 13 16:27 bin
  5. drwxr-xr-x 2 1001 1001 4096 12月 13 18:06 conf
  6. drwxr-xr-x 2 1001 1001 4096 12月 13 16:27 lib
  7. -rw-r--r-- 1 1001 1001 11006 3月 3 2016 LICENSE.txt
  8. drwxr-xr-x 2 1001 1001 4096 12月 13 18:08 logs
  9. drwxr-xr-x 4 1001 1001 4096 12月 13 16:27 nexus
  10. -rw-r--r-- 1 1001 1001 782 3月 3 2016 NOTICE.txt
  11. drwxr-xr-x 5 1001 1001 4096 12月 13 18:08 tmp
  12. [root@localhost nexus-2.12.1-01]# pwd
  13. /usr/local/nexus-2.12.1-01
  14. [root@localhost nexus-2.12.1-01]# cat conf/nexus.properties
  15. #
  16. # Sonatype Nexus (TM) Open Source Version
  17. # Copyright (c) 2008-present Sonatype, Inc.
  18. # All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
  19. #
  20. # This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
  21. # which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
  22. #
  23. # Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
  24. # of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
  25. # Eclipse Foundation. All other trademarks are the property of their respective owners.
  26. #
  27.  
  28. # Sonatype Nexus
  29. # ==============
  30. # This is the most basic configuration of Nexus.
  31.  
  32. # Jetty section
  33. application-port=8081
  34. application-host=0.0.0.0
  35. nexus-webapp=${bundleBasedir}/nexus
  36. nexus-webapp-context-path=/nexus
  37.  
  38. # Nexus section
  39. nexus-work=${bundleBasedir}/../sonatype-work/nexus
  40. runtime=${bundleBasedir}/nexus/WEB-INF
  41. [root@localhost nexus-2.12.1-01]#

现在我们将老的Nexus OSS私服仓库的备份仓库 解压到了 /data2目录下,因此我们需要修改nexus/conf/nexus.properties配置文件,重新指定仓库的目录为 /data2/sonatype-work/nexus

我们修改 /usr/local/nexus-2.12.1-01/conf/nexus.properties 文件

[root@localhost nexus]# vim /usr/local/nexus-2.12.1-01/conf/nexus.properties

修改后的配置文件如下所示

  1. #
  2. # Sonatype Nexus (TM) Open Source Version
  3. # Copyright (c) 2008-present Sonatype, Inc.
  4. # All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
  5. #
  6. # This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
  7. # which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
  8. #
  9. # Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
  10. # of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
  11. # Eclipse Foundation. All other trademarks are the property of their respective owners.
  12. #
  13.  
  14. # Sonatype Nexus
  15. # ==============
  16. # This is the most basic configuration of Nexus.
  17.  
  18. # Jetty section
  19. application-port=8081
  20. application-host=0.0.0.0
  21. nexus-webapp=${bundleBasedir}/nexus
  22. nexus-webapp-context-path=/nexus
  23.  
  24. # Nexus section
  25. #nexus-work=${bundleBasedir}/../sonatype-work/nexus
  26. #新的地址为
  27. nexus-work=/data2/sonatype-work/nexus
  28. runtime=${bundleBasedir}/nexus/WEB-INF

五、重启Nexus

使用 /etc/init.d/nexus2 restart 命令 重启Nexus服务

  1. [root@localhost nexus]# /etc/init.d/nexus2
  2. Usage: /etc/init.d/nexus2 { console | start | stop | restart | status | dump }
  3. [root@localhost nexus]# /etc/init.d/nexus2 restart
  4. ****************************************
  5. WARNING - NOT RECOMMENDED TO RUN AS ROOT
  6. ****************************************
  7. Stopping Nexus OSS...
  8. Stopped Nexus OSS.
  9. Starting Nexus OSS...
  10. Started Nexus OSS.
  11. [root@localhost nexus]#

重启完后,刷新浏览器查看新的Nexus服务器,如下所示

对比下,老的Nexus服务器

除了IP地址不一样之外,其他的都一样,迁移成功!

测试了下之前在博客 【我的Android进阶之旅】快速创建和根据不同的版本类型(Dev、Beta、Release)发布Android 开发库到Maven私服 中写的Gradle脚本上传到新的Nexus服务器也是正常的!

Nexus OSS私服仓库的备份与迁移的更多相关文章

  1. 【Maven学习】Nexus OSS私服仓库的备份与迁移

    背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...

  2. 【Maven学习】Nexus OSS私服仓库的安装和配置

    背景 公司的代码依赖是通过Maven进行管理的,而Maven的私库我们使用的是Nexus,目前使用的版本是Nexus Repository Manager OSS 2.12.1. 但是由于之前我们搭建 ...

  3. 使用 Nexus 搭建私服仓库时我犯的一个小错误

    私服搭建好,啥都配置好了,纳闷的是 Repositories 中的 group 为何总是空值?我还反反复复删了又重建,结果还是一样,不经意间再看 Configuration 选项卡的内容,发现左右两个 ...

  4. Maven与Nexus OSS

    Maven 是一个项目管理和构建自动化工具,是Apache Fundation下的一个Java项目.常用于Java项目中依赖管理 下载直接去官网 安装Maven 已经编译的二进制包 直接解压到安装目录 ...

  5. nexus(Maven仓库私服)的安装、配置、使用和仓库迁移

    简介 Nexus下载:点击进入 Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一 ...

  6. 私服仓库 nexus 环境搭建(win10)

    1.1 简介: Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库 ...

  7. 试用 Nexus OSS 3.0 的docker仓库 (二)

    试用 Nexus OSS 3.0 的docker仓库 (一) : http://www.cnblogs.com/wzy5223/p/5410990.html 三. 创建docker私有仓库,docke ...

  8. 试用 Nexus OSS 3.0 的docker仓库 (一)

    Nexus 3.0 可以创建三种docker仓库: 1. docker (proxy)      代理和缓存远程仓库 ,只能pull 2. docker (hosted)    托管仓库 ,私有仓库, ...

  9. 抗忙,,建个MAVEN的私服仓库-NEXUS

    公司最近需求越来越上轨道,MAVEN的私服仓库-NEXUS构架起来哟.. 参考文档URL: http://www.linuxidc.com/Linux/2011-07/39578p3.htm http ...

随机推荐

  1. Golang 是否有必要内存对齐?

    原文:https://ms2008.github.io/2019/08/01/golang-memory-alignment/ 内存模型 Posted by ms2008 on August 1, 2 ...

  2. python中字典的建立

    一.字典由键key与值value构成. 如: a={'d':6,'f':'va'}print(a['f']) 上面代码简单建立字典,其中需要访问字典需要输入键值. 二.又比如需要在某个关键字中添加数据 ...

  3. k8s+jenkins(DevOps全流程)

    k8s集群搭建是参照别人的,链接找不到了.需要5台机器,3主2从,主最少搭建3台才能实现高可用. 流程jenkins打包代码 >> 把打包代码生成镜像 >> 备份镜像库旧镜像 ...

  4. 2019 云和数据java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.云和数据等公司offer,岗位是Java后端开发,因为发展原因最终选择去了云和数据,入职一年时间了,也成为了面 ...

  5. 服务网格Istio初探

    1. 服务网格Istio初探 1.1. 什么是Istio 它是一个完全开源的服务网格.什么是服务网格? 这个术语通常用于描述构成这些应用程序的微服务网络以及应用之间的交互.随着规模和复杂性的增长,服务 ...

  6. 从 Vue 的视角学 React(一)—— 项目搭建

    虽然 Vue 在国内一家独大,但在全球范围内,React 依然是最流行的前端框架 最近和一些朋友聊天,发现很多项目都选择了 React 技术栈,而且公司的新项目也决定使用 React 我一直以来都是走 ...

  7. expdp、impdp导入导出数据库

    一.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建.create directory dpdata1 as 'd:\test\dump'; 二.查看管理理员目录(同时 ...

  8. pandas 之 数据清洗-缺失值

    Abstract During the course fo doing data analysis and modeling, a significant amount of time is spen ...

  9. “GIS DICTIONARY A-Z” 查询页面开发(3)—— 基础知识之服务器、IP地址、域名、DNS、端口以及Web程序的访问流程

    今天补一补基础知识: 一.服务器:能够提供服务的机器,取决于机器上安装的软件(服务软件).服务器响应服务请求,并进行处理. Web服务器:提供Web服务,即网站访问.常见Web服务软件:Apache( ...

  10. Docker搭建Redis

    1.拉取redis镜像: docker pull redis 2.创建容器: docker run -d --restart=always -v /opt/redis/data:/data --nam ...