一、主机的内置定时任务执行生成备份文件
二、通过脚本执行将完整的可用于执行恢复操作的全部文件打包成压缩包
#我这里的nexus3是使用docker安装的,我从挂载目录里面装数据拿出来打包
cd /opt/nexus3/nexus-data/nexus-data
dateLog=$(date +%y%m%d)
#echo${dateLog}
mkdir "nexus_backup_"$dateLog""
chmod -R 777 "nexus_backup_"$dateLog""
cp -r /opt/nexus3/nexus-data/nexus-data/backups "/opt/nexus3/nexus-data/nexus-data/nexus_backup_"$dateLog""
#想要完整恢复需要如下两个文件
cp -r /opt/nexus3/nexus-data/blobs "/opt/nexus3/nexus-data/nexus-data/nexus_backup_"$dateLog""
cp -r /opt/nexus3/nexus-data/keystores "/opt/nexus3/nexus-data/nexus-data/nexus_backup_"$dateLog""
sleep 2
tar -czvf "nexus_backup_"$dateLog".tar.gz" "nexus_backup_"$dateLog""
#传输到备份服务器上
sshpass -p xxxxx密码 scp "/opt/nexus3/nexus-data/nexus-data/nexus_backup_"$dateLog".tar.gz" root@10.5.2.xxx:"/opt/backup/nexus/nexus_backup_"$dateLog".tar.gz"
sleep 4
rm -rf nexus_backup_"$dateLog"*
#进入到定时任务生成的备份文件夹,删除备份文件
cd /opt/nexus3/nexus-data/nexus-data/backups
#删除主机生成的备份文件
rm -rf *
三、恢复操作(注意用于恢复的nexus3版本号与主机的nexus3版本号保持一致)
1)停止nexus服务,根据不同部署方式,各自停止
2)移除/nexus-data/db中所有数据(如果容器部署,可以理解为容器挂载映射出来的nex1)us-data/目录下db)
3)将备份目录中每个文件最新的.bak文件拷贝到/nexus-data/restore-from-backup(我们.bak文件都放在备份文件中的backup文件夹中)
4)删除原有/nexus-data/blobs下所有文件,然后备份的blob文件解压到/nexus/blobs
5)重启nexus
注意:db目录如果有残留数据,restore-from-backup目录里面的备份不会被恢复。
nexus3安装