命令在 shell 中执行,因此您可以使用常规 shell 语法将它们组合在一起。作为第一步,我将在单个 exec_command 中发出一批命令:
stdin, stdout, stderr = client.exec_command(
"sudo hostname;"
"sudo apt-get update;"
"sudo apt-get -y install nfs-common nfs-kernel-server;"
"echo y | sudo mkfs.ext3 /dev/sdc;"
"sudo mkdir /mnt/export;"
"sudo mount /dev/sdc /mnt/export/;"
"sudo chmod o+wx /etc/exports;")
print stdout.readlines()
print stderr.readlines()
此外,我认为没有必要为每个人重新启动一个新的 sudo。所以我宁愿写
stdin, stdout, stderr = client.exec_command(
"sudo /bin/sh -c '"
"hostname;"
"apt-get update;"
"apt-get -y install nfs-common nfs-kernel-server;"
"echo y | mkfs.ext3 /dev/sdc;"
"mkdir /mnt/export;"
"mount /dev/sdc /mnt/export/;"
"chmod o+wx /etc/exports;"
"'")
print stdout.readlines()
print stderr.readlines()