Ubuntu系统下Jenkins数据备份的常用方法
手动备份是最直接的备份方式,适用于临时或一次性备份需求。
sudo systemctl stop jenkins
/var/lib/jenkins目录下,需备份以下子目录/文件:
config.xml:Jenkins全局配置文件(如邮件通知、代理设置等);jobs/:所有构建作业的定义(包括构建步骤、触发器等);users/:用户账户及权限信息;plugins/:已安装的插件(确保恢复后功能完整)。tar命令打包(可排除无需备份的日志目录以减小体积):sudo tar -czvf jenkins_backup_$(date +%Y%m%d).tar.gz --exclude=/var/lib/jenkins/logs/* /var/lib/jenkins/{config.xml,jobs,users,plugins}
.tar.gz文件复制到安全位置(如外部硬盘、NAS或云存储),避免本地磁盘故障导致备份丢失。通过脚本+定时任务实现自动化备份,减少人工干预,确保备份的持续性。
/usr/local/bin/backup_jenkins.sh),内容如下:#!/bin/bash
BACKUP_DIR="/mnt/backup/jenkins" # 备份存储目录(需提前创建)
JENKINS_HOME="/var/lib/jenkins"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/jenkins_backup_$TIMESTAMP.tar.gz"
# 创建备份目录(若不存在)
mkdir -p "$BACKUP_DIR"
# 打包Jenkins主目录
tar -czvf "$BACKUP_FILE" -C "$JENKINS_HOME" .
# 删除7天前的旧备份(保留最近7天)
find "$BACKUP_DIR" -name 'jenkins_backup_*.tar.gz' -type f -mtime +7 -exec rm -rf {} \;
赋予脚本执行权限:sudo chmod +x /usr/local/bin/backup_jenkins.sh
crontab -e添加定时任务(例如每天凌晨2点执行备份):0 2 * * * /usr/local/bin/backup_jenkins.sh >> /var/log/jenkins_backup.log 2>&1
日志会记录到/var/log/jenkins_backup.log,便于后续排查问题。使用Jenkins插件可实现图形化管理、增量备份及更灵活的配置,适合不熟悉命令行的用户。
/var/lib/jenkins/backup)、备份计划(如每天凌晨3点)、排除文件(如workspace/目录,避免备份构建产物占用空间);若Jenkins配置了数据库(如MySQL/MariaDB)存储构建数据(如构建日志、测试结果),需额外备份数据库。
mysqldump命令导出数据库(假设数据库名为jenkins):mysqldump -u jenkins_user -p jenkins > /mnt/backup/jenkins_db_$(date +%Y%m%d).sql
输入数据库密码后,备份文件会保存到指定目录。mysql命令导入即可。/var/lib/jenkins目录),验证备份的可恢复性;logs/、workspace/等目录,减少备份文件大小和存储成本。