[英]How to use environment modules in a ssh command line?
Environment Modules软件包用于动态修改用户的环境( debian软件包 environment-modules
)。
我想直接从ssh
命令行使用module
。 目的是能够从在前端节点上执行的bash脚本在不同节点上执行命令。 我不想为每个不同的节点配置显式更新PATH
和LD_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.