1. 程式人生 > >修改jenkins主目錄與cp引數a使用

修改jenkins主目錄與cp引數a使用

環境

作業系統:win7
虛擬機器:cento7

需求

在我刪除日誌後,重啟jenkins,確實是不發警告啦!但是第二天,又出來了,說空間快滿。
jenkins預設的主目錄是:/var/lib/jenkins。這個/var/lib目錄空間本來就小,隨著以後產品線的增多,總有一天會撐滿,所以我選擇更換主目錄。

更改jenkins主目錄

下面是網上千篇一律給出的答案:

方法一、使用你Web容器的管理工具設定JENKINS_HOME環境引數.

開啟tomcat的bin目錄,編輯catalina.sh檔案。
在# OS specific support.  $var _must_ be set to either true or false.上面新增:export JENKINS_HOME=""
在引號中填入你的路徑。 方法二、在啟動Web容器之前設定JENKINS_HOME環境變數.#(我試了很多次,不行) 用root使用者登入 編輯profile檔案:vi /etc/profile 在最後加入:export JENKINS_HOME=xxxx 儲存,退出後執行:source /etc/profile 讓配置生效 方法三、(不推薦)更改Jenkins.war(或者在展開的Web容器)內的web.xml配置檔案. <!-- if specified, this value is used as the Hudson home directory --> <env-entry> <env-entry-name>HUDSON_HOME</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value></env-entry-value> </env-entry> <!-- 在<env-entry-value>節點中填入路徑,windows系統建議使用/分隔路徑 -->

吐槽

我試的是方法二,因為我不需要tomcat,我是直接啟動jenkins,所以不用方法一;
方法三要先解壓war包,再改配置,再打包,麻煩!

方法二我試了很多次,就是不行,網上那幫喜歡複製貼上的銀,能不能再複製的時候,說明下,哪些是你沒有實踐的,我好直接pass掉,真的很浪費時間。

正確的改法–針對方法二

先把jenkins停止掉:

service jenkins stop

首先、方法二的那種改法是肯定不行的,因為jenkins它有自己的配置檔案,每次啟動的時候是讀取自己的配置檔案,而不是linux系統的配置檔案。

jenkins的配置檔案路徑:

vim /etc/sysconfig/jenkins

開啟後可以看到如下(部分):

## Path:        Development/Jenkins
## Description: Configuration for the Jenkins continuous build server
## Type:        string
## Default:     "/var/lib/jenkins"
## ServiceRestart: jenkins
#
# Directory where Jenkins store its configuration and working
# files (checkouts, build reports, artifacts, ...).
#
#JENKINS_HOME="/var/lib/jenkins"
JENKINS_HOME="/home/jenkins/dataspace"# 這裡是我改的

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Java executable to run Jenkins
# When left empty, we'll try to find the suitable Java.

我們可以看到JENKINS_HOME,我們需要改的就是這個。

改好後,重新啟動jenkins,當然建議現在還是別啟動,為什麼呢?因為你連主目錄都換了,以前建立的jobs和配置全沒有了!怎麼辦呢,複製、貼上唄!

cp命令注意事項

剛開始我執行如下命令:

cp -r /var/lib/jenkins/* /home/jenkins/dataspace/

接著重啟jenkins,結果一直停留在啟動頁面。為什麼呢?因為上面的命令,改變了原檔案的許可權(所屬使用者、使用者組)。本來都是jenkins使用者許可權,複製完成後,都變成了root(因為我當時複製時的登入使用者就是root)。

/home/jenkins/dataspace/清空,重新複製,執行如下命令:

cp -af /var/lib/jenkins/* /home/jenkins/dataspace/

再次重啟jenkins,就好了。

cp命令中的引數a,就是複製時,保留原有許可權。f是強制意思。

檢視jenkins安裝目錄

這種方式前提是使用rpm的方式安裝

執行命令:

rpm -ql jenkins

/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins

參考連結