Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python结构中登录到用户_Python_Shell_Fabric - Fatal编程技术网

如何在python结构中登录到用户

如何在python结构中登录到用户,python,shell,fabric,Python,Shell,Fabric,我正在使用Python结构。这是我的档案 env.user='XXX' env.password='XXX' env.key_filename='/key/path' env.hosts=[<ip>] def install(): run('ifconfig') run('su - hduser') run('ls') run('sudo mkdir -p /usr/lib/jvm') env.user='XXX' 环境密码='XX

我正在使用Python结构。这是我的档案

 env.user='XXX'
 env.password='XXX'
 env.key_filename='/key/path'
 env.hosts=[<ip>]

    def install():
    run('ifconfig')
    run('su - hduser')
    run('ls')
    run('sudo mkdir -p /usr/lib/jvm')
env.user='XXX'
环境密码='XXX'
env.key_filename='/key/path'
环境主机=[]
def install():
运行('ifconfig')
运行('su-hduser')
运行('ls'))
运行('sudomkdir-p/usr/lib/jvm')
当我运行上面的fab文件时,它将登录到我的节点并运行“ifconfig”,然后我将登录到用户hduser,我希望在/home/hduser中执行所有未来的命令。但它正在根目录中执行命令。我怎样才能解决这个问题?如果它正在询问密码,也是如此。如何在脚本中传递密码

谢谢
Navaz

首先,每个run命令都是与计算机的独立连接。这意味着在运行

su - hduser
下一个命令将像从未发出一样运行

要运行嵌套命令,需要使用

with settings(user='hduser',password='Passw0rd1'):
    run('ls')
将以hduser身份在hduser主目录中运行“ls”命令,并提供密码

要在目录中运行命令,还可以使用

with cd('/path/to/dir'):
    run ('command in path')