Linux

Nexus 服务器同步迁移

微信扫一扫,分享到朋友圈

Nexus 服务器同步迁移
收藏 0 0

公司的网络特别慢,外网速度好的时候100多KB,慢的时候几十B。移动半年没信号了,打移动公司说是基站坏了,在修,从推广5G至今一直在修,不知道什么时候修好。因为移动信号基站的问题,所以整个职场都换成了联通,但是口子就那么大,都用联通,结果可想而知,都慢。

所以决定在家里和公司同事搭建Nexus的服务器,在家里的电脑安装依赖,然后公司的电脑每天定时同步(也可以手动同步推送),为了保持数据一致,公司电脑选择本地强制覆盖(修改则覆盖,远程删除本地也删除),一切以家里的数据为准。

数据推送为了减少网络宽带的占用,故使用rsync差异文件推送的方法,只推送变动的文件。

两个网络可以使用zerotier或者frp互通,我肯定是使用frp的。

两台服务器均为Ubuntu 18.04 x64,Rsync程序Ubuntu系统均已默认安装了,我们只需要配置一下即可。

一、配置Rsync(服务端)

rsyncd.conf

port = 873 # 这个是默认端口可以修改的
read only = true # 只允许读
transfer logging = false
log format = %t %a %m %f %b
log file = /var/log/rsync.log
hosts allow = *
secrets file = /etc/rsyncd/rsyncd.secrets
motd file = /etc/rsyncd/rsyncd.motd
pid file = /var/run/rsyncd.pid
use chroot = true
uid = root
gid = root

[nexus]
comment = Nexus Rsync
auth users = root
ignore errors
list = no
path = /datahub/nexus3_volumes/data/blobs

rsyncd.secretes 冒号后面的密码是举例子,请设置复杂些

root:123456

rsyncd.motd

#########################################################
  
                      Nexus Rsync

#########################################################

二、进行资源同步(客户端获取服务端)

为了保持数据的一致性,我完全以家里的为准。

/usr/bin/rsync -avr --delete --port=873 --password-file=/home/rsync.pwd root@xxx.xxx.xxx.xxx::nexus /data/nexus3_volumes/data/blobs

也可以设置一个定时任务,在什么时候自动进行数据的获取。我这里设置的是每天凌晨12点半进行获取。

30 0 * * * /usr/bin/rsync -avr --delete --port=873 --password-file=/home/rsync.pwd root@xxx.xxx.xxx.xxx::nexus /data/nexus3_volumes/data/blobs  > /dev/null 2>&1

至此,我们就可以把家里产生的依赖文件都同步到公司的机器上了,省去了从远程重新获取的步骤。

三、重建索引

文件同步完成后,需要重新赋予下权限以及重建下索引。

chown -R 200:200 /data/nexus3_volumes/data/blobs # 后面的路径是我公司环境的路径

然后进入到nexus3重建下索引

选择其中的一个(暂时没有找到批量的方法)
然后rebuild index

重启nexus3,如果不这么做的话,即使同步了还是找不到相应的包。

四、手动下载依赖包

我们可以使用mvn手动下载依赖包

4.1 创建pom

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>test</groupId>
    <artifactId>test</artifactId>
    <version>0.0.1-SNAPSHOT</version>


     <dependencies>

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.20</version>
</dependency>

     </dependencies>
</project>

4.2 执行下载命令

mvn -f offline_pom.xml dependency:tree # 下载依赖  树形式展示依赖
mvn -f offline_pom.xml dependency:list # 下载依赖 列表形式展示依赖
mvn -f offline_pom.xml dependency:sources # 下载sources
mvn -f offline_pom.xml dependency:resolve -Dclassifier=javadoc # 下载documentation
mvn -f offline_pom.xml dependency:copy-dependencies # 下载依赖,并复制依赖到当前文件夹

这样即使家里未运行项目,也可以获取依赖了。

锦城虽云乐,不如早还家。

Pycharm 解决库(函数)无提示问题

上一篇

解决ResponseBodyAdvice统一返回报`cannot be cast to java.lang.String`的问题

下一篇

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片