我有一个要求,其中需要执行一个脚本,这需要设置一些环境变量。通常需要以下内容:
1)我登录到目标节点,使用'user1'说T1并设置我的环境变量,比如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来设置/取消设置任何变量。
答案 0 :(得分:0)
我不确定第1步是否有必要:
ssh user1@T1 sudo -u user2 env -i TEMPDIR=/home/user2/tmp /path/filescript"