首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ssh命令行中使用环境模块?

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

Stack Overflow用户
提问于 2016-04-19 20:22:32
回答 2查看 2.3K关注 0票数 4

环境模块包用于动态修改用户环境(debian environment-modules)。

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

当我直接连接到节点,然后从节点调用module时,显然是在工作:

代码语言:javascript
复制
jyvet> ssh mynode
jyvet@mynode> module load gcc-6.0
jyvet@mynode> gcc --version
gcc (GCC) 6.0.1

但是,以下方法失败了:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-19 20:22:32

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

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

这里是解决方案:

代码语言:javascript
复制
jyvet> ssh mynode "source /etc/profile; module load gcc-6.0; gcc --version"
gcc (GCC) 6.0.1
票数 6
EN

Stack Overflow用户

发布于 2016-04-20 02:41:14

您还可以调用bash的登录实例,以便/etc/profile.d/modules.sh在登录时自动成为source-ed:

代码语言:javascript
复制
ssh mynode "bash -lc 'module load gcc-6.0; gcc --version'"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36728685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档