环境

操作系统:win7
虚拟机:cento7

需求

之前博客中我曾说过jenkins最近所占目录空间快满了–centos7中根据文件大小排序以及jenkins配置每周删除一次jobs日志信息

在我删除日志后,重启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

参考链接

http://blog.csdn.net/llq_200/article/details/56675689

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐