zoukankan      html  css  js  c++  java
  • python远程操作服务器

    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()
    
  • 相关阅读:
    中产阶级_百度百科
    第二天--设置一个数据模型
    请大家支持珊瑚虫~~请大家帮帮soff~~
    Linux Socket学习(十二)
    Debian下调整时间
    Emacs 牵手 scim
    Linux Socket学习(十三)
    mplayer解码
    创建第一个Symfony工程
    页面的基本创建
  • 原文地址:https://www.cnblogs.com/surewing/p/9432212.html
Copyright © 2011-2022 走看看