python通通过过SSH登登陆陆linux并并操操作作的的实实现现
这篇文章主要介绍了python通过SSH登陆linux并操作的实现,文中通过示例代码介绍的非常详细,对大家的学习
或者工作具有一定的参 学习价值,需要的朋友们下面随着小编来一起学习学习吧
用的昨天刚接触到的库,在windows下通过paramiko来登录linux系统并执行了几个命令,基本算是初试成功,后面会
接着学习的。
代码 :
>>> import paramiko
>>> ssh = paramiko.SSHClient()
>>> ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
>>> ssh.connect(' 0. 04.6.8',username = 'xiaopeng',password='******')
>>> cmd = 'cd' #进入用户目录home
>>> stdin,stdout,stderr = ssh.exec_command(cmd)
>>> cmd = 'ls >test ' #管道,ls命名的输出到文件test里面
>>> stdin,stdout,stderr = ssh.exec_command(cmd)
>>> cmd = 'cat test ' # 显示test的内容,即ls命名的结果
>>> stdin,stdout,stderr = ssh.exec_command(cmd)
>>> print stdout.readlines() #结果 汉字用的字符显示
['code\n', 'Desktop\n', 'order.cpp\n', 'python\n', 'test\n', '\xe5\x85\xac\xe5\x85\xb \xe
7\x9a\x84\n', '\xe6\xa8\xa \xe6\x9d\xbf\n', '\xe8\xa7\x86\xe9\xa2\x9 \n', '\xe5\x9b\xbe\x
e7\x89\x87\n', '\xe6\x96\x87\xe6\xa \xa3\n', '\xe4\xb8\x8b\xe8\xbd\xbd\n', '\xe9\x9f\xb3\
xe4\xb9\x90\n']
这里我们都会发现,使用exec_command('cd dirname')时并不会切换目录,execute_command() 是a single session,
每次执行完后都要回到缺省目录。所以可以 .execute_command('cd /var; pwd')。
python里面的paramiko模块,用这个实现ssh登录更加简单。看下面的代码 :
#-*- coding: utf-8 -*-
# !/usr/bin/python
import paramiko
import threading
def ssh2(ip,username,passwd,cmd):
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,username,passwd,timeout=5)
for m in cmd:
stdin, stdout, stderr = ssh.exec_command(m)
# stdin.write("Y") #简单交互,输入 ‘Y '
out = stdout.readlines()
#屏幕输出
for o in out:
print o,
print '%s\tOK\n'%(ip)
ssh.close()