修改jenkins主目录与cp参数a使用
发布日期:2021-05-07 04:26:16 浏览次数:21 分类:精选文章

本文共 2186 字,大约阅读时间需要 7 分钟。

环境

操作系统:win7

虚拟机:cento7

需求

之前博客中我曾说过jenkins最近所占目录空间快满了–

在我删除日志后,重启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配置文件.  
HUDSON_HOME
java.lang.String

吐槽

我试的是方法二,因为我不需要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

参考链接

上一篇:jsch中ChannelShell与ChannelExec区别
下一篇:linux shell脚本对未定义变量的判断以及if的用法

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年04月18日 20时35分33秒