#!/bin/bash
# 备份 jenkins 的几个主要文件:config.xml,jobs文件夹,users文件夹和plugins文件夹
# 恢复方法: 需要将备份的文件解压,如: 2022_03_11_03_00_01_jenkins_backup.tar
# 解压后,将 config.xml,jobs文件夹,users文件夹和plugins文件夹 覆盖拷贝到 /var/jenkins_home 目录下
# 如 \cp -r -a jobs/* /var/jenkins_home/jobs/
# 但凭据和连接信息会丢失,需要重新设置
# 如果是新的 jenkins,需要先通过初始化后,再拷贝文件
# 拷贝完成后,重启 jenkins
rootDir=""
backupDir="${rootDir}/var/jenkins_home/backups/"
jenkinsHome="${rootDir}/var/jenkins_home/"
# 删除多少天前的数据,避免占用磁盘空间
delDays=3
if [ ! -d $backupDir ]
then
echo "${backupDir} 目录不存在,新建一个"
mkdir -p $backupDir
else
echo "删除 ${delDays} 天前的备份数据"
find $backupDir -name "*.tar" -ctime +${delDays} -type f -exec rm -rf {} \;
fi
echo "开始备份..."
cd ${jenkinsHome}
timeName=$(date '+%Y_%m_%d_%H_%M_%S')
backupName=${timeName}_jenkins_backup.tar
echo "即将备份,文件名为:${backupName}"
tar -zcf ${backupName} ./config.xml ./jobs/* ./users/* ./plugins/*
echo "移动打包文件到指定目录 ${backupName} --> ${backupDir}"
mv -f ${backupName} ${backupDir}
echo "操作完成"