修改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