使用jenkins另一個必不可少的配置就是對jenkins的備份。Jenkins的所有的數據都是以文件的形式存放在`${JENKINS_HOME}`目錄中。所以不管是遷移還是備份,只需要將`${JENKINS_HOME}`打包后在拷貝,然后將打包的文件解壓到新的`${JENKINS_HOME}`目錄就行了。備份jenkins的方法有很多種,本文就簡單介紹一下常用的備份方法,使用ThinBackup插件。
在插件管理頁面找到`ThinBackup`插件,安裝即可(如果你不會安裝,看一下第二篇的內容吧)。安裝完以后,在`manage jenkins`界面會出現`ThinBackup`菜單項,點擊進去后進入settings設置界面,進行備份設置。如下所示設置:

配置說明
**Backup directory**:
備份目錄,用於存儲備份的文件,如果指定的目錄不存在,默認在進行備份之前會自動創建。
**Backup schedule for full backups**:
進行備份的計划任務,與linux下的crontab一樣,其中上面的H,代表哈希,為了允許定期調度的任務在系統上產生均勻負載,應盡可能使用符號H(用於“散列”)。例如,如果多個job都設置使用`0 0 * * *`將導致負載大幅飆升。相比之下,使用H H * * *仍然會每天執行一次每個job,但不會同時執行,更好地使用有限的資源。
**Backup schedule for differential backups**:
進行差異化備份的計划任務,同上。
**Max number of backup sets**:
備份的最大數量。
**Files excluded from backup (regular expression)**:
不需要進行備份的文件的正則表達式。
**Wait until Jenkins/Hudson is idle to perform a backup**:
等待jenkins空閑多長時間后進行備份。
**Backup build results**:
如果啟用此選項,還將備份構建結果,一般不建議勾選此選項。
**Backup 'userContent' folder**:
備份`${jenkins_home}/userContent `目錄下的文件。
**Backup next build number file**:
備份jenkins構建的build id文件。
**Backup plugins archives**:
備份插件。
**Clean up differential backups**:
完成備份以后清除所有的差異備份。
**Move old backups to ZIP files**:
如果選中此選項,則無論何時執行新的完整備份,所有舊備份集都將移至ZIP文件。每個ZIP文件將包含一個備份集,即一個完整備份和任何引用該備份文件的差異備份。文件名將標識包含備份的時間范圍(即完整備份的時間戳和最新差異備份的時間戳)。
備份策略根據自己實際情況定義即可。
保存后回到`ThinBackup`界面,除了可以自動進行備份外,也可以通過手動備份,點擊`Backup Now`按鈕就會立即進行備份。如下按鈕:

備份完后會在上面設定的備份目錄下生成一個以`FULL-`開頭,以當前時間(精確到分)為結尾的目錄,該目錄下就是默認所有的Jenkins配置。
當要使用備份文件進行恢復的時候,點擊restore按鈕,在跳轉的界面中就會顯示出該備份文件的備份時間,點擊Restore即可。
