在Debian系統上備份和恢復Jenkins是一個重要的任務,以確保系統崩潰或數據丟失時能夠快速恢復。以下是幾種常用的備份與恢復方法:
關閉Jenkins服務: 在進行備份之前,確保Jenkins服務已經停止,以防止數據不一致。
sudo systemctl stop jenkins
打包需要備份的文件: Jenkins的主要配置和數據存儲在以下幾個目錄中:
/var/lib/jenkins
:包含Jenkins的系統配置和插件。/var/lib/jenkins/jobs
:包含所有Jenkins作業的定義。/var/lib/jenkins/users
:包含用戶賬戶信息。/var/lib/jenkins/plugins
:包含已安裝的插件。使用 tar
命令將這些目錄打包:
sudo tar -czvf jenkins_backup.tar.gz /var/lib/jenkins/config.xml /var/lib/jenkins/jobs /var/lib/jenkins/users /var/lib/jenkins/plugins
存儲備份文件:
將生成的 jenkins_backup.tar.gz
文件存儲在安全的位置,例如外部硬盤或網絡存儲。
恢復Jenkins數據:
sudo systemctl stop jenkins
sudo tar -xzvf jenkins_backup.tar.gz -C /var/lib/jenkins
sudo systemctl start jenkins
安裝ThinBackup插件:
執行備份:
恢復備份:
編寫一個Shell腳本來定期執行備份任務:
#!/bin/bash
# Jenkins主目錄
JENKINS_HOME="/var/lib/jenkins"
# 備份目錄
BACKUP_DIR="/backups/jenkins_$(date +%Y%m%d)"
# 進入Jenkins主目錄
cd $JENKINS_HOME
# 按日期備份
tar -czvf $BACKUP_DIR/jenkins_backup_$(date +%Y%m%d).tar.gz config.xml jobs users plugins
將上述腳本保存為 backup_jenkins.sh
,然后使用 chmod +x backup_jenkins.sh
賦予執行權限。之后,可以使用 crontab -e
來設置定時任務,例如每天凌晨執行備份腳本。
rsync -av --delete $JENKINS_HOME/ /backups/jenkins_$(date +%Y%m%d)
borg create --verbose --filter AME --list --stats --show-rc --one-file-system --exclude-caches --compression zstd,level19 --exclude '/dev/*' --exclude '/proc/*' --exclude '/run/*' --exclude '/sys/*' --exclude '/tmp/*' --exclude '/var/tmp/*' --exclude '/mnt/*' --exclude '/media/*' --exclude '/lostfound' --exclude '/swapfile' --exclude '/swap分區' --exclude '/var/lib/docker/*' --exclude '/home/*/.cache/*' backup::archive $JENKINS_HOME/