友
我编写了一个代码,用于从用户那里获取输入,然后将我ssh到服务器。但这只是工作一次,尽管存在无限循环。我想要的是while循环一次又一次地运行。但在给用户输入后,它会运行一次但不会再运行。
while True:
print('Enter name of server...')
print('......................................................................')
server = input ('')
if server == '1':
cmd1='p -ssh 192.168.1.12'
os.system(cmd1)
if server == '2':
cmd1='p -ssh 192.168.1.13'
os.system(cmd1)
if server == '3':
cmd1='p -ssh 192.168.1.14'
os.system(cmd1)
答案 0 :(得分:0)
因为它在os.system(cmd1)
被屏蔽了
ssh服务器的目的是什么?也许你可以查看paramiko:ssh python lib。如果您的cmd可能会屏蔽,您还可以在python threading 和Queue
就像:
import threading
class ssh_client(threading.Thread):
def __init__(self, ssh_host):
super(ssh_client, self).__init__()
self.ssh_host = ssh_host
def run(self):
"""Do something
"""
pass
...
if __name__ == "__main__":
while True:
print('Enter name of server...')
print('......................................................................')
server = input ('')
if server == '1':
ssh_client_1 = ssh_client("192.168..1.12")
ssh_client_1.start()
if server == '2':
ssh_client_1 = ssh_client("192.168..1.13")
ssh_client_2.start()
对于python3用户,paramiko
不是兼容python3的ssh库,可以使用subprocess
或ssh库:pylibssh2 python bindings for libssh2 library
对于子进程:
subprocess_ssh.py
答案 1 :(得分:0)
是的,这是'p -ssh 192.168.1.14'命令的问题。
例如,如果您只使用ssh命令,则循环工作,当您退出远程服务器时,再次要求您输入“输入服务器名称”
例如:
>>> while True:
... print('Enter name of server...')
... print('......................................................................')
... server = input ('')
... if server == '1':
... cmd1='ssh remote_server_1'
... os.system(cmd1)
... if server == '2':
... cmd1='ssh remote_server_2'
... os.system(cmd1)
... if server == '3':
... cmd1='ssh remote_server_3'
... os.system(cmd1)
...
Enter name of server...
......................................................................
'1'
erica@remote_server's password:
__| __|_ ) Amazon Linux AMI
_| ( / Beta
___|\___|___|
See /usr/share/doc/system-release-2011.02 for latest release notes. :-)
[erica@remote_server ~]$ exit
logout
Connection to remote_server closed.
0
Enter name of server...
......................................................................