在jenkins上用Plink.exe 调用shell脚本到目录ubuntu 编译机上用vivado编译FPGA bitfile时问题:

1. 直接用ssh 远程到目标机器上执行以下命令正常:
vivado -mode tcl -source Accelerator_top_x86.tcl

2. 在jenkins上调用sh以下命令后,sh执行同样的命令报以下错误:
jenkins 调用perl 脚本:
system qq/"plink.exe" "-l" "$host_build_usr" "-pw" "$host_build_pswd" "-m" "$shName" "$compilerIp"/;

$hName 中调用 vivado -mode tcl -source Accelerator_top_x86.tcl

错误:
10:47:18 /root/homeATE/ATE_USE_FPGA_SRC_CODE/nr_fpga/project/Accelerator_top/tcl
10:47:18 Start to build ... (tool:Accelerator_top_x86.tcl)
10:47:18 bash: line 124: vivado: command not found

3. 分析环境变量
在jenkins sh中加入echo $PATH 打印环境变量为: (无vivado)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

直接登录到ubuntu echo $PATH 打印环境变量为: (有vivado
root@test-Precision-3630-Tower:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: /tools/Xilinx/Vivado/2019.1/bin

4. 尝试在脚本中加入了
source /root/.profile, 实际是用的/root/.bashrc
再调用 jenkins,还是报vivado找不到。

5. 这就尴尬了:
只有手动加入到PATH了,shell中加入 :
export PATH=$PATH:/tools/Xilinx/Vivado/2019.1/bin

6. 虽然这样解决了问题,但是怎么样能获取到进一步root 原有的$PATH 还是没有找到,希望高手可以在下边留言,谢谢。
有空了我再研究一下。

测试了在sh中加上source /etc/profile 后工作就正常了。所以两种 方式都可以。这里这个要更合理一些。

后边再找了一下,可能是我source的文件不对,这文章中有介绍说是用/etc/profile 。 有遇到的可以直接用这个方式:

https://blog.csdn.net/hudashi/article/details/82464995?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-4

在jenkins上用Plink.exe 调用shell脚本到目录ubuntu 编译机上用vivado编译FPGA bitfile时问题:1. 直接用ssh 远程到目标机器上执行以下命令正常:vivado -mode tcl -source Accelerator_top_x86.tcl2. 在jenkins上调用sh以下命令后,sh执行同样的命令报以下错误:jenkins 调用perl 脚本:system qq/"plink.exe" "-l" "$host_build_usr" "-pw" windows中需要一些 exe 程序来搭桥, 其中我用到了两个 p link . exe 和 pscp: pscp : 可以连接拷贝文件到linux, 即我使用这个将前端vue的dist目录和后端jar包上传上去 p link . exe : 可...
windows BAT自动化上传文件到linux server使用pscp, 执行 远程 脚本 使用p link pscp, p link 的登录两种方式:用参数pw写上密码 或者 用参数i使用私钥进行身份验证(要求server端配置了公钥,配置方法参考精彩PuTTY 中文教程) 直接 执行 linux命令 pscp -pw password filename username@host:direc
使用场景:在做自动化部署的时候,或者远程管理的时候,经常用到p link 或者s sh 远程连接工具,但是使用也会遇到一些问题。 问题:在用p link 远程连接linux,并 执行 命令的时候,有些情框与登录linux终端 执行 结果并不一样,比如我们远程启动tomcat, 调用 start. sh (ba sh )文件指令,比如start. sh 中有些 环境变量 PATH并不全。 分析:通过s sh 或者p link 连接远程主机,...
p link 对于自动化的 执行 命令和工作非常有好处。p link 可以让我们直接在命令行制定好命令,然后 执行 ,完成后自动关闭session。 1>进行DOS界面,切换到Putty目录中,输入:P link 2>出现命令提示: -P 指定服务器端口,这里是大写P; -l 指定以哪个用户身份 执行 命令; -pw 指定用户密码; -i keyfile指定私钥文件; -m file...
在将公司的打包工具从Windows下,转移到Linux上时,出现了ant中定义的变量不能识别的问题。 结果是 Jenkins 执行 shell 与batch时,对变量的引用方式不同造成的。 执行 shell 时,引用 Jenkins 中定义的变量用${param} 执行 batch时,引用 Jenkins 中定义的变量用%param% 在此Mark一下。
有小伙伴问我:同样的问题还有:你以为p link 软件像word或者Excel一样?或者你以为p link 软件像Python或者R语言一样?它只是一个软件,一个只能在命令行添加参数的软件,没有图形界面,没有快捷方式,不能用鼠标点击的软件。现在我提供三种方法,来运行p link 软件。首先是下载软件:https://www.cog-genomics.org/p link /1.9/ 下载到本地,解压即可。比如windows系统,解压下如下:很多人都是先在windows键找到cmd,然后再进入相关文件夹,其实有个简单的方法:
当前的内部版本号,例如”153” BUILD_ID 当前构建ID,对于在1.597+中创​​建的构建,与BUILD_NUMBER相同,但对于较旧构建,则为YYYY-MM-DD_hh-mm-ss时间戳 BUILD_DISPLAY_NAME 当前版本的显示名称,默认为”#153”。 JOB_NAME... # 停止 Jenkins stop_ jenkins (){ pid=`ps -ef | grep jenkins .war | grep -v grep | awk '{print $2}'` if [ -n "$pid" ]; then kill -9 $pid echo " Jenkins 已停止" echo " Jenkins 未运行" # 重启 Jenkins restart_ jenkins (){ stop_ jenkins start_ jenkins # 查看 Jenkins 状态 status_ jenkins (){ pid=`ps -ef | grep jenkins .war | grep -v grep | awk '{print $2}'` if [ -n "$pid" ]; then echo " Jenkins 正在运行" echo " Jenkins 未运行" # 根据参数 调用 相应函数 case "$1" in start) start_ jenkins stop) stop_ jenkins restart) restart_ jenkins status) status_ jenkins echo "用法: $0 {start|stop|restart|status}" 这个 脚本 实现了四个操作:启动、停止、重启和查看状态。使用方法如下: ```ba sh ./ jenkins . sh start # 启动 Jenkins ./ jenkins . sh stop # 停止 Jenkins ./ jenkins . sh restart # 重启 Jenkins ./ jenkins . sh status # 查看 Jenkins 状态 请注意,这仅是一个示例 脚本 ,您可能需要根据实际情况进行修改。