Jenkins的所有資料檔案都存在檔案中,Jenkins備份就是備份JENKINS_HOME目錄。預設路徑是
/var/lib/jenkins
,或者到Jenkins的配置檔案中檢視
cat /etc/default/jenkins | grep "home"
。
JENKINS_HOME目錄 結構如下:

image.png
其中 workspace, builds 和 fingerprints目錄是不需要備份的
定期備份是個好習慣,備份功能通過安裝插件實作。
thin-backup 備份插件
比較流行的插件有 periodicbacku 和 thin-backup ,發現無論是Github中更新時間還是star數量 thin-backup都更好些,是以選擇了 thin-backup
thin-backup 安裝好後,管理頁面會多出一個菜單項,進入後是 thin-backup 設定頁面,
非常簡答,立即備份,恢複和配置
image.png
配置頁面中可以設定備份路徑,備份周期,最大備份數量等等
image.png
備份周期的填寫要符合Jenkins trigger cron文法,我填寫的是
H 23 * * 6
即每周6的23點任意分鐘執行
關于 Jenkins trigger cron
類似UNIX cron文法,一段 cron 包含5個字段。使用空格或tab分隔
格式為:
分鐘:0~59
小時:0~23
一月某一天:1~31
月份:1~12
星期幾:0~7
還可以使用以下字元,一次性指定多個值
*:比對所有值
M-N:比對M到N之間的值
M-N/X:指定M到N範圍内,以X值為步長
A,B,C:逗号分隔枚舉多個值
有時候存在大量同一時刻執行的定時任務,比如N個半夜零點(0 0 * * *)執行的任務,這樣會産生負載不均衡,Jenkins提供了H字元來解決這一問題,H表示hash,(0 0 * * *)表示零點0分至0點59分之間任何一個時間點
Jenkins trigger cron 提供了更便捷的寫法 @yearly, @monthly,@weekly, @daily,@hourly
縮寫 | 等價寫法 | 描述 |
---|---|---|
@daily 或 @midnight | 0 0 * * * | 每天午夜0點執行 |
@hourly | 0 * * * * | 每個整點0分執行 |
@monthly | 0 0 1 * * | 每月1号的午夜執行 |
@weekly | 0 0 * * 0 | 每周日午夜執行 |
@yearly 或 @annually | 0 0 1 1 * | 每年1月1日的午夜執行 |
參考
https://en.wikipedia.org/wiki/Cron