[英]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.