Ome*_*gan 1 parallel-processing gnu environment-variables gnu-parallel
我正在尝试使用GNU Parallel来在远程计算机上运行带有多个参数的脚本.这看起来有点像:
parallel --onall -S remote-machine /shared/location/script.sh ::: param_a param_b
Run Code Online (Sandbox Code Playgroud)
/shared/location/script.sh正在使用git.所以我得到这个错误:
git: command not found
Run Code Online (Sandbox Code Playgroud)
如果我登录remote-machine手动和运行/shared/location/script.sh使用param_a或param_b一切工作正常.所以我检查了$ PATH变量并发现如果我remote-machine使用GNU parallel 运行一些东西,它看起来像PATH=/usr/bin:/bin:/usr/sbin:/sbin.如果我直接从机器上运行它也是/local/bin/git.
为什么会这样,如何克服?
提前致谢
GNU Parallel使用ssh进行远程执行,因此$ PATH与运行非交互式ssh会话时看到的相同:
ssh server echo '$PATH'
parallel -S server --onall {} '$PATH' ::: echo
Run Code Online (Sandbox Code Playgroud)
您在登录时看到不同的$ PATH的原因是交互式会话可能设置另一个$ PATH.
您可以parallel使用--env 强制复制环境变量:
parallel --env PATH -S server --onall {} '$PATH' ::: echo
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |