Jenkins执行linux脚本提示权限不够

本文解决Jenkins执行Linux脚本时权限不足的问题,通过修改Jenkins用户为root并调整相关文件夹的所有权,确保构建过程顺利进行。
部署运行你感兴趣的模型镜像

Jenkins执行linux脚本提示权限不够

今天在用jenkins部署项目的时候,在项目构建前要停掉前面部署的项目端口,不然构建后运行不了新的项目。我在构建前创建了stop.sh,并赋权限,chmod u x stop.sh.

问题

一切准备就绪,重新构建,居然报错了,构建失败。

1576739383944

很显然是权限不够导致的,我们修改jenkins的权限即可。

解决办法:

进入/etc/sysconfig/jenkins中

将JENKINS_USER="jenkins" 改为:JENKINS_USER="root"

然后更改 jenkins文件夹下的用户和用户组为root

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

之后重启jenkins即可

service jenkins restart.

欢迎关注

您可能感兴趣的与本文相关的镜像

Facefusion

Facefusion

AI应用

FaceFusion是全新一代AI换脸工具,无需安装,一键运行,可以完成去遮挡,高清化,卡通脸一键替换,并且Nvidia/AMD等显卡全平台支持

<think>我们正在讨论如何在Jenkins中运行JMeter脚本。根据引用内容,我们可以总结出以下步骤: 1. 在Jenkins中创建一个新任务。 2. 配置构建触发器(例如定时执行)。 3. 在构建步骤中,根据操作系统选择执行Shell或Windows批处理命令,并输入运行JMeter的命令。 4. 命令示例:`jmeter -n -t /path/to/your/test.jmx -l /path/to/your/output.jtl -e -o /path/to/your/report` (引用[1]) 5. 另一种方式是使用脚本(如引用[2]中的run_jmeter.sh)来执行命令如:`sh /usr/local/script/run_jmeter.sh /path/to/script.jmx /path/to/report ...` 6. 还可以使用pipeline方式(引用[4]),通过参数化构建实现分布式执行。 因此,我们可以给出两种主要方式:自由风格项目和Pipeline项目。 ### 方法一:自由风格项目 1. **新建任务**:在Jenkins主页点击“新建任务”,输入任务名称,选择“构建一个自由风格的软件项目”。 2. **配置构建触发器**:在“构建触发器”部分,可以设置定时构建(如每5分钟一次:`H/5 * * * *`)。 3. **添加构建步骤**: - 对于Linux系统,选择“Execute shell”; - 对于Windows系统,选择“Execute Windows batch command”。 4. **在命令框中输入JMeter命令**,例如: ```bash jmeter -n -t /path/to/your/test.jmx -l /path/to/your/output.jtl -e -o /path/to/your/report ``` 或者调用一个脚本(如引用[2]): ```bash sh /usr/local/script/run_jmeter.sh /var/lib/jenkins/workspace/jmeter_script/script.jmx /opt/apache-jmeter-4.0/bin/report 1 100 2 ``` 5. **保存并应用**。 ### 方法二:Pipeline项目 1. **新建任务**:选择“Pipeline”类型的项目。 2. **在Pipeline脚本中定义执行步骤**,例如: ```groovy pipeline { agent any parameters { string(name: 'THREADS', defaultValue: '1', description: '并发数') string(name: 'DURATION', defaultValue: '60', description: '持续时间(秒)') string(name: 'JMX_FILE', defaultValue: 'test.jmx', description: 'JMX脚本路径') // 可以添加更多参数,如slave节点IP等 } stages { stage('Run JMeter') { steps { script { // 执行JMeter命令,注意参数化 sh "jmeter -n -t ${params.JMX_FILE} -l output.jtl -Jthreads=${params.THREADS} -Jduration=${params.DURATION}" } } } stage('Generate Report') { steps { // 生成HTML报告 sh "jmeter -g output.jtl -o report" } } } } ``` 3. 如果需要分布式执行,可以在命令中指定远程机器(引用[4]): ```bash jmeter -n -t test.jmx -R slave1,slave2 -l output.jtl -e -o report ``` 其中`-R`参数指定远程机器的IP(用逗号分隔)。 ### 注意事项 - 确保Jenkins服务器上安装了JMeter,并且配置了环境变量,以便直接使用`jmeter`命令。 - 如果使用分布式执行,需要在slave机器上启动JMeter服务器(运行`jmeter-server`或`jmeter-server.bat`)。 - 路径问题:建议使用绝对路径,或者将文件放在Jenkins工作空间内,使用相对路径(如`${WORKSPACE}/test.jmx`)。 ### 构建后操作 - 可以添加构建后操作,例如发布HTML报告(使用HTML Publisher插件)或归档JTL文件。 通过以上步骤,即可在Jenkins中运行JMeter脚本。 §§相关问题§§ 1. 如何在Jenkins中配置JMeter的环境变量? 2. 如何设置JMeter分布式测试(主从模式)? 3. Jenkins运行JMeter脚本时,如何生成HTML报告并展示? 4. 如何解决Jenkins执行JMeter脚本时的权限问题?</think>### 在 Jenkins 中运行 JMeter 脚本的完整指南 #### 1. **创建 Jenkins 任务** - **新建任务**:在 Jenkins 主页点击「新建任务」→ 输入任务名称 → 选择「自由风格的软件项目」[^1]。 - **描述**:添加任务描述(如:执行 JMeter 性能测试)。 #### 2. **配置构建触发器** - **定时执行**:在「构建触发器」中设置定时器(如每 5 分钟执行一次:`H/5 * * * *`)[^1]。 - **其他触发方式**:支持 Git Hook 或手动触发。 #### 3. **添加构建步骤** 根据操作系统选择命令类型: - **Linux/Mac**(Execute Shell): ```bash jmeter -n -t ${WORKSPACE}/your_test.jmx -l ${WORKSPACE}/results.jtl -e -o ${WORKSPACE}/report ``` - **Windows**(Execute Windows batch command): ```bat jmeter -n -t %WORKSPACE%\your_test.jmx -l %WORKSPACE%\results.jtl -e -o %WORKSPACE%\report ``` **参数说明**: - `-n`:非 GUI 模式 - `-t`:JMX 脚本路径 - `-l`:结果文件(JTL) - `-e -o`:生成 HTML 报告[^1] #### 4. **分布式执行(可选)** 若需多节点压测,使用 `-R` 参数指定从节点 IP: ```bash jmeter -n -t test.jmx -R 192.168.1.101,192.168.1.102 -l output.jtl ``` 需提前在从机启动 `jmeter-server` 服务[^4]。 #### 5. **报告生成与归档** - **自动生成报告**:通过 `-e -o` 参数生成 HTML 报告。 - **构建后操作**:添加「Publish HTML reports」插件,路径设为 `report/index.html`。 #### 6. **完整示例(Shell 脚本调用)** 通过封装脚本简化命令[^2]: ```bash sh /opt/scripts/run_jmeter.sh ${WORKSPACE}/test.jmx ${WORKSPACE}/report 50 300 ``` 脚本内容参考: ```bash #!/bin/bash jmeter -n -t $1 -l $2/results.jtl -Jthreads=$3 -Jduration=$4 -e -o $2 ``` #### 7. **关键注意事项** 1. **路径问题**: - 使用 `${WORKSPACE}` 确保路径正确 - JMX 脚本需存入 Jenkins 工作空间或指定绝对路径 2. **环境依赖**: - Jenkins 服务器需安装 JMeter 并配置环境变量 - 确保执行用户有脚本读写权限 3. **资源监控**: - 建议添加服务器 CPU/内存监控步骤 - 可使用 `nohup` 避免进程中断 #### 8. **验证与调试** - **首次运行**:手动触发任务检查控制台输出 - **日志排查**:关注 `jmeter.log` 中的错误信息 - **报告验证**:检查生成的 HTML 报告是否完整 > **提示**:对于复杂场景,推荐使用 [Jenkins Pipeline](https://www.jenkins.io/doc/book/pipeline/) 实现多阶段测试流程[^3][^4]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值