码迷,mamicode.com
首页 > 编程语言 > 详细

python远程操作服务器

时间:2018-08-06 20:59:42      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:允许   put   pypi   cmd   port   内存   import   文件   shel   

python远程控制

标签(空格分隔): 远程Linux


python远程控制:方案:

  • Paramiko
    Pexpect(主要Linux机器)

安装使用:pip install paramiko

  • 注意在安装的时候,会有比较慢因为:pip在美国的,而且有一些加密文件,所有会比较慢,所以我们可以设置一个超时时间;
    2.保证有一台Linux主机;
    3.保证ssh服务开启:用putty、或者:xshell连接试试看;
import paramiko
#创建SSHClient 实例对象
ssh=paramiko.SSHClient()
#调用方法,表示没有存储远程机器的公钥,允许访问
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接远程机器,地址,端口,用户名密码
ssh.connect('192.168.199.236',22,'root','111111')
#创建目录;
cmd = 'mkdir jcy2'
ssh.exec_command(cmd)
#如果命令行跨行
cmd='''echo '123
45678
90abc'
 >myfile'''
ssh.exec_command(cmd)
#获取命令行的执行结果
cmd ='cat myfile'
stdin,stdout,stderr =ssh.exec_command(cmd)
print(stdout.read()+stderr.read())
ssh.close()
  • 注意点:
    exec_command每次执行都会打开一个新的channel,执行;
    2.新的环境,不再上次执行的环境里面
    3.所以我们不能多次调用,达到多次执行的目的

例如:如下代码:

ssh.exec_command('pwd')
ssh.exec_command('mkdir jcy3')
ssh.exec_command('cd jcy3')
stdin,stdout,stderr =ssh.exec_command('pwd')

print(stdout.read())
ssh.close()

linux 命令:free查看内存信息;
我们以后可以在代码里面每隔5分钟,看一下内存的情况;

  • 如下是传输文件到远程:
import paramiko
#创建SSHClient 实例对象
ssh=paramiko.SSHClient()
#调用方法,表示没有存储远程机器的公钥,允许访问
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
#连接远程机器,地址,端口,用户名密码
ssh.connect('192.168.199.236',22,'root','111111')
sftp=ssh.open_sftp()
sftp.put('ftp1.py','home/stt/ftp1.py')
sftp.close()

python远程操作服务器

标签:允许   put   pypi   cmd   port   内存   import   文件   shel   

原文地址:https://www.cnblogs.com/surewing/p/9432212.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!