繁体   English   中英

如何在ssh命令行中使用环境模块?

[英]How to use environment modules in a ssh command line?

Environment Modules软件包用于动态修改用户的环境( debian软件包 environment-modules )。

我想直接从ssh命令行使用module 目的是能够从在前端节点上执行的bash脚本在不同节点上执行命令。 我不想为每个不同的节点配置显式更新PATHLD_LIBRARY_PATH环境变量。

当我直接连接到该节点,然后从该节点调用module ,它显然可以正常工作:

jyvet> ssh mynode
jyvet@mynode> module load gcc-6.0
jyvet@mynode> gcc --version
gcc (GCC) 6.0.1

但是以下方法失败:

jyvet> ssh mynode "module load gcc-6.0; gcc --version"
command not found: module
gcc-4.8 (Debian 4.8.4-1) 4.8.4

module/etc/profile.d/modules.sh初始化,该/etc/profile.d/modules.sh/etc/profile调用(在shell启动时设置环境变量)。

ssh命令执行外壳是一个非交互式外壳 ,既不调用/etc/profile也不读取配置文件。

解决方法如下:

jyvet> ssh mynode "source /etc/profile; module load gcc-6.0; gcc --version"
gcc (GCC) 6.0.1

您还可以调用bash的登录实例,以便/etc/profile.d/modules.sh在登录时自动进行source

ssh mynode "bash -lc 'module load gcc-6.0; gcc --version'"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM