gpt4 book ai didi

perl - 从 Jenkin 管道运行脚本时如何通过 ssh 在远程 AIX 机器中加载环境变量?

转载 作者:行者123 更新时间:2023-12-02 13:47:35 25 4
gpt4 key购买 nike

我们在通过 Jenkin 管道运行的 Perl 自动化框架中使用了一些自定义模块。最近我们在 AIX 服务器上执行测试用例时遇到所有自定义模块的包未找到错误,因为那里安装了最新的 Perl 版本。所以我们尝试在文档中提到的路径中添加“PERL5LIB”

https://perlmaven.com/how-to-change-inc-to-find-perl-modules-in-non-standard-locations

我们在 AIX 服务器的/etc/profile 中添加了“export PERL5LIB=/home/foobar/code”,当从本地 AIX 计算机运行时,脚本可以毫无问题地执行。

问题:

但是我们有 Jenkin 管道来使用 ssh 在 AIX 服务器中执行脚本。现在,当我们在管道脚本中通过 SSH 连接到 AIX 服务器时,我们在/etc/profile 中设置的变量不会加载,我们会收到找不到包的错误。

问题:如何在从管道运行时将配置文件加载到 AIX 服务器中?或者有没有其他方法可以处理这个问题。在执行脚本之前,我想通过管道(仅一次)在远程 AIX 服务器中导出 PERL5LIB,但我不应该得到找不到包的错误。

以下是我尝试过的解决方案:

加载/etc/profile: ssh AIX 服务器 ./etc/profile(使用点,因为源在 AIX 中不工作)

在 AIX 服务器的 .ssh/environment 中添加“export PERL5LIB=/home/foobar/code”这一行并设置 PermitUserEnviorment yes

感谢对此的任何帮助。

最佳答案

用通常的方式给变量赋值:

ssh user@host 'export PERL5LIB=/somepath; echo $PERL5LIB'
user@hosts's password:
/somepath

ssh user@host '. /etc/profile.local; echo $PERL5LIB'
user@hosts's password:
/somepath/from/profile

编辑: 如果必须执行多个命令,创建一个脚本并上传到目标计算机,例如:

SCRIPTNAME=/tmp/$$.$RANDOM.script
scp myscript.sh user@host:"$SCRIPTNAME"
ssh user@host "$SCRIPTNAME"

关于perl - 从 Jenkin 管道运行脚本时如何通过 ssh 在远程 AIX 机器中加载环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61546393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com