描述
我想写一个python脚本SSH到我的虚拟机并执行一些命令。防止Paramiko退出
如果我做手工,我会继续开放,我仍然可以看到我的日志住。
如果我使用该脚本,SSH进入并自动执行一些命令后,它会一直退出并返回到我的用户提示符。我试图阻止这一点。
视频
手动= https://dl.dropboxusercontent.com/u/56134944/ssh_wag_manually.mov
通过Python脚本= https://dl.dropboxusercontent.com/u/56134944/ssh_wag_py.mov
这就是我现在所拥有的
import paramiko
import time
import sys
# Note
# sudo pip install --user paramiko
def ssh_con (ip, un, pw):
global client
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print ("Connecting to device/VM: %s" % ip)
client.connect(ip, username=un, password=pw)
def cmd_io (command):
global client_cmd
client_cmd.send("%s \n" %command)
time.sleep(1)
output = client_cmd.recv(10000).decode("utf-8")
print (output)
# ip = raw_input("Enter WAG IP : ")
# ip = sys.argv[1]
ip = '172.168.200.300'
un = 'xyz'
pw = 'abc'
ssh_con(ip,un,pw)
client_cmd = client.invoke_shell()
print ("SSH CONNECTION ESTABLISHED TO vMEG %s" % ip)
cmd_io ("en")
cmd_io ("terminal monitor")
cmd_io ("debug wag https")
cmd_io ("debug wag httpc")
cmd_io ("debug https")
cmd_io ("debug httpc")
cmd_io ("debug wag kafka")
结果
[local]site#
terminal monitor
[local]site#
debug wag https
[local]site#
debug wag httpc
[local]site#
debug https
[local]site#
debug httpc
[local]site#
debug wag kafka
[local]site#
.... Quitting and return the command prompt ....
──[/Applications/MAMP/htdocs/code/python]
└──
如何将一个去了解和预防呢?
我打开此时的任何建议。
任何提示/建议/对此的帮助将非常感谢!
何时执行SSH会话退出:立即或在一段时间后,或在输入命令或其他内容之后? –
基本上在完成了脚本的最后一行之后...... – ihue
那么,你的脚本正在结束,所以由进程打开的任何TCP连接自然会被关闭。你想要脚本继续运行吗?你是否希望ssh连接以某种方式在脚本退出后继续存在?在所有命令完成执行后,你想用这个ssh会话做什么? – Kenster