0

我有一个要求,其中需要执行一个需要设置一些环境变量的脚本。通常需要以下内容:

1)我登录到目标节点,比如 T1 使用 'user1' 并设置我的环境变量,比如 TEMPDIR=~/tmp; 做一个源 ~/.bashrc 并注销。

2) 现在我需要执行非交互式 shell 脚本。这是登录到管理服务器并运行命令:ssh user1@T1 "sudo -u user2 /path/filescript"

我执行的文件脚本需要设置 TEMPDIR。

上述设置不起作用,因为在非交互式 shell 期间没有获取 bash shell(如果我的理解是正确的)。为了克服这个问题,我尝试了本网站和其他网站中提供的以下建议,但没有任何运气:

ssh user1@T1 "source ~/.bashrc; sudo -u user2 /path/filescript"

ssh user1@T1 "sudo -u user2 env -i /path/filescript"

请帮忙。谢谢。

注意:我正在尝试在没有 root 干预的情况下完成此操作(我的意思是使用 root 设置/取消设置任何变量。

4

1 回答 1

0

我不确定第 1 步是否有必要:

ssh user1@T1 sudo -u user2 env -i TEMPDIR=/home/user2/tmp /path/filescript"
于 2017-02-15T12:15:55.963 回答