使用paramiko模块在远程服务器执行命令

脚本如下:

# cat myssh.py 
#!/usr/bin/env python

import paramiko

hostname = ‘192.168.56.101‘
port     = 22
username = ‘root‘
password = ‘111111‘

if __name__ == "__main__":
    paramiko.util.log_to_file(‘paramiko.log‘)
    s = paramiko.SSHClient()
    s.load_system_host_keys()
    s.connect(hostname, port, username, password)
    stdin, stdout, stderr = s.exec_command(‘ifconfig‘)
    print stdout.read()
    s.close()

执行结果为:

# python myssh.py 
eth0      Link encap:Ethernet  HWaddr 08:00:27:29:46:94  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe29:4694/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:602 errors:0 dropped:0 overruns:0 frame:0
          TX packets:381 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:64585 (63.0 KiB)  TX bytes:61809 (60.3 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1294 (1.2 KiB)  TX bytes:1294 (1.2 KiB)
时间: 2024-08-01 01:53:17

使用paramiko模块在远程服务器执行命令的相关文章

python利用paramiko连接远程服务器执行命令

python中的paramiko模块是用来实现ssh连接到远程服务器上的库,在进行连接的时候,可以用来执行命令,也可以用来上传文件. 1.得到一个连接的对象 在进行连接的时候,可以使用如下的代码: def connect(host): 'this is use the paramiko connect the host,return conn' ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddP

python paramiko模块:远程连接服务器

1.  SFTP基于 用户名密码 登录服务器,实现上传下载: import paramiko transport = paramiko.Transport(('hostname', 22)) # 生成trasport,配置主机名,端口 transport.connect(username='root',password='****') # 登录名.密码 sftp = paramiko.SFTPClient.from_transport(transport) # 将id_rsa 上传至服务器并重命

自动远程登录执行命令

1.自动登录问题,在不考虑秘钥文件情况下想登录远程设备,必须提供ip地址,用户名和密码三个信息,通过telnet或ssh进行登录,可在telnet或ssh的命令中并未找到可指定password的地方. C:\>telnet -h telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]] -a      企图自动登录.除了用当前已登陆的用户名以外,与 -l 选项相同. -e      跳过字符来进入 telnet

Paramiko模块,用python代码连接服务器执行命令

目录 Paramiko模块 安装 基本使用 链接--用户名和密码的方式 连接--公钥私钥的方式 上传下载文件 paramiko代码封装 面试题 Paramiko模块 通过ssh远程链接服务器并执行响应的操作,类似于XShell ps:ansible批量管理服务器工具,底层用的就是paramiko模块 安装 pip3 install paramiko 基本使用 远程链接服务器的方式 用户名和密码 公钥私钥的方式 paramiko上面两种方式都支持 链接--用户名和密码的方式 import para

Java中通过jsch来连接远程服务器执行linux命令

有时候你可能需要通过代码来控制执行linux命令实现某些功能. 针对这类问题可以使用JSCH来实现,具体代码如下: public class CogradientImgFileManager{ private static final Logger log = LoggerFactory.getLogger(CogradientImgFileManager.class); private static ChannelExec channelExec; private static Session

Python脚本远程批量执行命令

摘要 本文主要写用python脚本远程连接多台服务器,然后批量执行命令,最终返回命令执行结果. 这个可以说是Ansible,Puppet等工具的最简单的雏形. 做运维的同学应该都知道的. 正文 multi_task.py #_*_coding:utf-8_*_ import  multiprocessing import paramiko import getpass import ConfigParser class MultiTask(object):     '''handles all 

jenkins 执行ssh 远程linux执行命令

1.远程机器编写脚本: 脚本名称为: /app/jboss/jboss-as/logs/ALL_SERVICE_STOP.sh 功能为:停止某个服务器某个目录下面的所有应用 #!/bin/bash path=/app/jboss/jboss-as/logs for instance in `ls $path|grep ".*.sh"|grep -v ALL_SERVICE_STOP.sh|xargs`;do cd $path ./$instance stop done 2.2台linu

linux下远程服务器登录命令(SSH)

方法一.使用用户名密码登录 在命令行中输入命令: ssh [email protected]_address -p port 之后系统会提示输入密码,输入后即可登录,如果不添加-p选项,则默认是22端口. 还可以使用-l选项输入用户名: ssh -l username ip_address -p port 方法二.使用密钥登录(不使用密码) 首先生成密钥,在任意目录下输入命令: ssh-keygen -t rsa -P '' -P表示密码,-P '' 表示空密码之后系统会提示输入生成的密钥文件的

远程ssh执行命令时提示找不到命令

最开始的时候碰到这种问题,是在hadoop003上配置了jdk1.8, 在hadoop002上执行ssh hadoop003 java -version提示没有命令,先ssh hadoop003然后执行java -version则没有问题后来执行分发脚本时也碰到过这种问题,如果分步执行,先ssh到主机,然后执行命令就没有问题,然而直接ssh + 主机 + 命令就会报错,百度之后发现是ssh远程执行命令时加载的环境文件是~/.bashrc.所以解决的思路就是在~/.bashrc中添加需要的环境变量