1. 程式人生 > 其它 >Jenkins 進階篇 - 資料備份

Jenkins 進階篇 - 資料備份

隨著我們的長期使用,Jenkins 系統中的內容會越來越多,特別是一些配置相關的東西,不能有任何丟失。這個時候我們就需要定期備份我們的 Jenkins 系統,避免一些誤操作不小心刪除了某些重要檔案,Jenkins 的備份工具就是一劑後悔藥。
要對 Jenkins 系統進行備份,本質上是對 Jenkins 的檔案和目錄進行備份,如果沒有做特殊設定的話也就是 Jenkins 的安裝目錄 /var/jenkins_home,知道這個原理後就簡單了,我們可以寫個 Shell 指令碼,在指令碼中對 Jenkins 目錄進行打包存檔,然後新增一個系統定時任務,定期執行 Shell 指令碼來存檔 Jenkins 目錄,需要進行恢復的時候就用存檔的內容全部覆蓋到 Jenkins 目錄。還有一種方式就是利用 Jenkins 的備份外掛,安裝好 Jenkins 的備份外掛後進行一些簡單設定,備份外掛就會定期對 Jenkins 系統進行備份,需要恢復的時候還是在外掛的設定介面進行恢復操作。
第一種方式,採用 Shell 指令碼備份 Jenkins 目錄,利用 tar 命令歸檔打包檔案,如果想要排除某些檔案和目錄可以追加 exclude 指令。

#!/usr/bin/env bash

# 指定Jenkins的安裝目錄路徑
jenkins_home='jenkins_home_path'
current_date=$(date '+%Y%m%d')

cd $jenkins_home || exit
# 按日期備份
tar -cvzf ../jenkins_home_"$current_date".tar *

第二種方式,採用 Jenkins 外掛備份 Jenkins 系統。在 Jenkins 的可選外掛中搜索 backup 關鍵詞,看到只有如下幾個外掛可選:

對比了這幾個備份外掛,目前就只有這兩個還在維護,Periodic Backup

ThinBackup,其他的最後一次釋出都是好幾年之前了,並且也只有 Periodic BackupThinBackup 外掛的備份內容比較全面,其他的都只是備份 Jenkins 的配置檔案。經過我的使用體驗後發現 Periodic BackupThinBackup 外掛的設定也是比較相似的。我這個就演示下 Periodic Backup 外掛的使用。
安裝 Periodic Backup 外掛後在 Jenkins 的【系統管理】中會多出一個【Periodic Backup Manager】選項。

備份外掛設定,主要是設定備份檔案的儲存位置和儲存格式,以及備份頻率和要忽略的檔案及資料夾。因為備份時會佔用 CPU,我們這裡將【Backup schedule (cron) 】設定在每天午夜執行備份操作,這裡的 schedule 設定支援標準的 cron 表示式。在【Excludes list】選項中設定要忽略的檔案或者資料夾,用英文符號 ;
分割:

*.log;workspace;*.jar;*.zip;*.gz;node_modules;*.hprof;*.apk;*.ipa;*.aar

全部設定如下圖:

設定好後可以點選【Backup Now!】立即備份一下,也可以等著每天午夜備份外掛自動備份。備份後在【Periodic Backup Manager】外掛頁面可以看到已有的備份,如果需要恢復,選擇一個時間節點的備份檔案進行【Restore selected backup】恢復即可。

還有一種方式來備份 Jenkins 的檔案目錄,那就是 Git 倉庫,我們可以把 Jenkins 的整改檔案目錄當作一個 Git 程式碼倉庫,將檔案提交到 Git 程式碼倉庫,然後再推送到遠端的 Git 伺服器,這也是一種不錯的備份方式,有興趣的可以試試。