天天看點

Jenkins2 學習系列22 -- Jenkins 定期備份

Jenkins的所有資料檔案都存在檔案中,Jenkins備份就是備份JENKINS_HOME目錄。預設路徑是

/var/lib/jenkins

,或者到Jenkins的配置檔案中檢視

cat /etc/default/jenkins | grep "home"

JENKINS_HOME目錄 結構如下:

Jenkins2 學習系列22 -- Jenkins 定期備份

image.png

其中 workspace, builds 和 fingerprints目錄是不需要備份的

定期備份是個好習慣,備份功能通過安裝插件實作。

thin-backup 備份插件

比較流行的插件有 periodicbacku 和 thin-backup ,發現無論是Github中更新時間還是star數量 thin-backup都更好些,是以選擇了 thin-backup

thin-backup 安裝好後,管理頁面會多出一個菜單項,進入後是 thin-backup 設定頁面,

非常簡答,立即備份,恢複和配置

Jenkins2 學習系列22 -- Jenkins 定期備份

image.png

配置頁面中可以設定備份路徑,備份周期,最大備份數量等等

Jenkins2 學習系列22 -- Jenkins 定期備份

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