Jenkins系統(tǒng)如何進行數(shù)據(jù)備份

  • A+
所屬分類:百科知識

要對 Jenkins 系統(tǒng)進行備份,本質(zhì)上是對 Jenkins 的文件和目錄進行備份,如果沒有做特殊設(shè)置的話也就是 Jenkins 的安裝目錄 /var/jenkins_home,知道這個原理后就簡單了,我們可以寫個 Shell 腳本,在腳本中對 Jenkins 目錄進行打包存檔,然后添加一個系統(tǒng)定時任務(wù),定期執(zhí)行 Shell 腳本來存檔 Jenkins 目錄,需要進行恢復(fù)的時候就用存檔的內(nèi)容全部覆蓋到 Jenkins 目錄。還有一種方式就是利用 Jenkins 的備份插件,安裝好 Jenkins 的備份插件后進行一些簡單設(shè)置,備份插件就會定期對 Jenkins 系統(tǒng)進行備份,需要恢復(fù)的時候還是在插件的設(shè)置界面進行恢復(fù)操作。
第一種方式,采用 Shell 腳本備份 Jenkins 目錄,利用 tar 命令歸檔打包文件,如果想要排除某些文件和目錄可以追加 exclude 指令。

1
2
3
4
5
6
7
8
9
#!/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 系統(tǒng)。在 Jenkins 的可選插件中搜索 backup 關(guān)鍵詞,看到只有如下幾個插件可選:

Jenkins系統(tǒng)如何進行數(shù)據(jù)備份

對比了這幾個備份插件,目前就只有這兩個還在維護,Periodic Backup 、ThinBackup,其他的最后一次發(fā)布都是好幾年之前了,并且也只有 Periodic Backup 和 ThinBackup 插件的備份內(nèi)容比較全面,其他的都只是備份 Jenkins 的配置文件。經(jīng)過我的使用體驗后發(fā)現(xiàn) Periodic Backup 和 ThinBackup 插件的設(shè)置也是比較相似的。我這個就演示下 Periodic Backup 插件的使用。
安裝 Periodic Backup 插件后在 Jenkins 的【系統(tǒng)管理】中會多出一個【Periodic Backup Manager】選項。

Jenkins系統(tǒng)如何進行數(shù)據(jù)備份

備份插件設(shè)置,主要是設(shè)置備份文件的存儲位置和存儲格式,以及備份頻率和要忽略的文件及文件夾。因為備份時會占用 CPU,我們這里將【Backup schedule (cron) 】設(shè)置在每天午夜執(zhí)行備份操作,這里的 schedule 設(shè)置支持標準的 cron 表達式。在【Excludes list】選項中設(shè)置要忽略的文件或者文件夾,用英文符號 ; 分割:

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

全部設(shè)置如下圖:

Jenkins系統(tǒng)如何進行數(shù)據(jù)備份

設(shè)置好后可以點擊【Backup Now!】立即備份一下,也可以等著每天午夜備份插件自動備份。備份后在【Periodic Backup Manager】插件頁面可以看到已有的備份,如果需要恢復(fù),選擇一個時間節(jié)點的備份文件進行【Restore selected backup】恢復(fù)即可。

Jenkins系統(tǒng)如何進行數(shù)據(jù)備份

還有一種方式來備份 Jenkins 的文件目錄,那就是 Git 倉庫,我們可以把 Jenkins 的整改文件目錄當作一個 Git 代碼倉庫,將文件提交到 Git 代碼倉庫,然后再推送到遠程的 Git 服務(wù)器,這也是一種不錯的備份方式,有興趣的可以試試。

推薦應(yīng)用

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: