如何在python结构中登录到用户
我正在使用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
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')