修改jenkins主目录与cp参数a使用

来源:互联网 发布:现货指标公式源码下载 编辑:程序博客网 时间:2024/06/10 19:40

环境

操作系统: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

1 0