python远程执行cmd(如何使用python远程登录一个操作系统,并执行某条命令)

1.如何使用python远程登录一个操作系统,并执行某条命令

你可以使用python的pexcpct包通过ssh调用远程服务器指令:

import pxssh

import getpass

try:

s = pxssh.pxssh()

hostname = raw_input('hostname: ')

username = raw_input('username: ')

password = getpass.getpass('password: ')

s.login (hostname, username, password)

s.sendline ('uptime') # run a command

s.prompt() # match the prompt

print s.before # print everything before the propt.

s.sendline ('ls -l')

s.prompt()

print s.before

s.sendline ('df')

s.prompt()

print s.before

s.logout()

except pxssh.ExceptionPxssh, e:

print "pxssh failed on login."

print str(e)

2.python 实现ssh的执行远端命令和scp的不同机器文件传输功能

#!/usr/bin/env python # -*- coding: utf-8 -*- import pexpect def ssh_cmd(ip, passwd, cmd): ret = -1 ssh = pexpect.spawn('ssh root@%s "%s"' % (ip, cmd)) try: i = ssh.expect(['password:', 'continue connecting (yes/no)?'], timeout=5) if i == 0 : ssh.sendline(passwd) elif i == 1: ssh.sendline('yes\n') ssh.expect('password: ') ssh.sendline(passwd) ssh.sendline(cmd) r = ssh.read() print r ret = 0 except pexpect.EOF: print "EOF" ssh.close() ret = -1 except pexpect.TIMEOUT: print "TIMEOUT" ssh.close() ret = -2 return ret 利用pexpect模块我们可以做很多事情,由于他提供了自动交互功能,因此我们可以实现ftp,telnet,ssh,scp等的自动登录,还是比较实用的。

根据上面的代码相信读者已经知道怎么实现了(python就是那么简单!)。 用上面的代码去完成任务还是比较费时间的,因为程序要等待自动交互出现,另外ubuntu用ssh连接就是比较慢,要进行一系列的验证,这样才体现出ssh的安全。

我们要提高效率,在最短的时间内完成。后来我发现了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() except : print '%s\tError\n'%(ip) if __name__=='__main__': cmd = ['cal','echo hello!']#你要执行的命令列表 username = "" #用户名 passwd = "" #密码 threads = [] #多线程 print "Begin。

" for i in range(1,254): ip = '192.168.1.'+str(i) a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd)) a.start() 上面的程序还是有些技巧的: 1.利用多线程,同时发出登录请求,同时去连接电脑,这样速度快很多,我试了一下,如果不用多线程,直接一个一个挨着执行的话,大约5~10秒钟才能对一台电脑操作完,具体时间要根据命令的来决定,如果是软件安装或者卸载时间要更长一些。这样下来怎么也要一二十分钟,用多线程后就快多了,所有的命令执行完用了不到2分钟! 2.最好用root用户登录,因为安装或者卸载软件的时候如果用普通用户又会提示输入密码,这样又多了一次交互,处理起来就比较麻烦!安装软件时apt-get install xxx 最好加上“-y”参数,因为有时安装或删除软件时提示是否继续安装或卸载,这又是一次自动交互!加上那个参数后就没有人机交互了。

3. 循环时循环所有ip,因为计算机的ip是路由器自动分配的,保险起见,最好全部都执行,保证没有遗漏的主机 4.远端执行命令时如果有交互,可以这样用 stdin.write("Y")来完成交互,“Y”就是输入“Y”。 5.把所有的命令放到一个列表里面,遍历列表可以依次执行列表里面的命令 6.为了更好的进行控制,最好在电脑上提前把root用户打开,装好ssh服务器并让其开机自动执行。

3.python执行cmd命令,怎么让他执行类似Ctrl+C效果将其结束命令

python执行cmd命令,怎么让他执行Ctrl+C的效果结束命令?

我在用ping监控一个服务器的网络状态,我执行了ping命令后,他会一直这么ping下去,不停止,怎么让他在10秒后执行ctrl+c的效果

def re(cmd): while True:

os.system(cmd);re("ping 192.168.1.1 -t")

他会这样一直ping下去,想了半天也想不出怎么让他10秒后执行ctrl+c结束的执行效果,请教大神,怎么让他执行结束命令;

10秒后停止命令,类似执行ctrl+c的效果;

[root@jenkins xxxx]# time ping baidu.com -w 10s

PING baidu.com (220.181.57.217) 56(84) bytes of data.64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=1 ttl=52 time=4.07 ms64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=2 ttl=52 time=26.9 ms64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=3 ttl=52 time=6.78 ms64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=4 ttl=52 time=12.9 ms64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=5 ttl=52 time=3.86 ms64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=6 ttl=52 time=3.30 ms64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=7 ttl=52 time=5.63 ms64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=8 ttl=52 time=11.2 ms64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=9 ttl=52 time=4.30 ms64 bytes from 220.181.57.217 (220.181.57.217): icmp_seq=10 ttl=52 time=4.17 ms

--- baidu.com ping statistics ---10 packets transmitted, 10 received, 0% packet loss, time 9013ms

rtt min/avg/max/mdev = 3.300/8.328/26.972/6.954 ms

real 0m10.006s

user 0m0.003s

sys 0m0.006s

不知道能不能满足你的需求

4.如何使用python执行远程shell脚本

pexpect复杂,但通用灵活。

另外一种办法就是ssh-keygen/ssh-copy-id,实现自动密钥验证取代手动密码验证,然后就可以直接调用远程'ssh

remote-user@remote-host remote-script.sh',麻烦之处在于要手动创建与维护两台机器间的公钥。

至于捕获输出,还是要变通一点,既然B都登陆到A了,那么通过临时文件向A输出内容不是更简单吗,这是shell编程中简单有效的办法。

还可以使用sftp

5.python 怎么执行dos命令

写了几个批处理,主要是一些Android调试命令,现在想用python来搞,感觉更酷一些吧。O(∩_∩)O~

比如Ping命令:

ping

用python来做,主要是使用了python标准库中的os库。

参见Python文档The Python Standard Library =>Generic Operating System Services =>os — Miscellaneous operating system interfaces.

这里介绍的比较全面,而且这个库我们用的也较多。

我们会用到os.system()方法:

[python] view plain copy

import os

cmd = 'cmd.exe /k ping '

os.system(cmd)

python远程执行cmd

转载请注明出处编程代码网 » python远程执行cmd(如何使用python远程登录一个操作系统,并执行某条命令)

资讯

python处理中文字符串(Python3.5如何对中文字符串进行处理)

阅读(47)

本文主要为您介绍python处理中文字符串,内容包括Python3.5如何对中文字符串进行处理,请问python怎么可以很好的处理中文字符,python处理中文字符串用什么编码方式。在Python的string前面加上r, 是为了告诉编译器这个string是个raw string,不

资讯

python能干什么知乎(java工程师一般用python做什么知乎)

阅读(52)

本文主要为您介绍python能干什么知乎,内容包括python可以做什么知乎,python可以做什么知乎,java工程师一般用python做什么知乎。#做网站后台Python在网站后台这边有大量的成熟的框架,如django,flask,bottle,tornado,我曾经用过flask

资讯

python3md5解密(如何使用Python3的两个库来加解密字符串)

阅读(48)

本文主要为您介绍python3md5解密,内容包括如何使用Python3的两个库来加解密字符串,python,求一个获取文件md5的算法,python,如何对文件内容进行md5处理。哈希如果需要用到安全哈希算法或是消息摘要算法,那么你可以使用标准库中的 hashlib 模

资讯

python一致性hash(一致性hash虚拟节点怎么理解)

阅读(49)

本文主要为您介绍python一致性hash,内容包括一致性hash和hash的区别,一致性hash虚拟节点怎么理解,什么叫memcache一致性hash。一致性哈希基本解决了在P2P环境中最为关键的问题如何在动态的网络拓扑中分布存储和路由。每个节点仅需维护少量

资讯

python列表元素排序(Python中,如何给列表排序)

阅读(18)

本文主要为您介绍python列表元素排序,内容包括Python怎么对列表中元素排序,python对列表里的元素进行排序,python对列表里的元素进行排序。Python中给列表排序的方式有很多,可以自己实现知,也可以用Python提供的方法使用Python提供的方法:列表

资讯

Python打包exe(怎么将多个python打包成exe文件)

阅读(17)

本文主要为您介绍Python打包exe,内容包括怎么将多个python打包成exe文件,如何把python打包成exe,如何把python文件打包成exe。安装pywin32,可以参考《怎么给python安装pywin32模块?》,一定要注意对应的python版本,否则不能安装。

资讯

python两个列表交集(python怎么求两个列表的交集)

阅读(18)

本文主要为您介绍python两个列表交集,内容包括python怎么求两个列表的交集,python如何求嵌套列表的交集,python有没有两个列表取并集。方法1遍历b1,如果某个元素同时也存在于b2中,则返回复制代码代码如下:b1=[1,2,3]b2=[2,3,4]b3 = [val fo

资讯

python运行指定文件(如何用Python打开指定的某个文件夹)

阅读(50)

本文主要为您介绍python运行指定文件,内容包括如何用Python打开指定的某个文件夹比如我要用Python打开D盘里,python中,如何用指定的程序打开指定的文件,比如在windows下,用,怎么在Python进入指定文件夹。操作系统一般不允许程序直接操作磁

资讯

Python类虚函数(类中snip是什么python)

阅读(50)

本文主要为您介绍Python类虚函数,内容包括python怎样调用基类函数,python中的析构函数多继承时为什么只析构自己,对于父类不会被析构,python类中类方法和类实例有什么区别。snip 的英文原意是削减,剪去的意思。在Python 中,snip 就是代表省略

资讯

python元组排序(Python3,怎么按指定元组顺序将列表排序)

阅读(21)

本文主要为您介绍python元组排序,内容包括Python3,怎么按指定元组顺序将列表排序,python元组中有字典,如何对其进行排序谢谢,如何在python中对tuple排序。在Python中可以使用sorted函数对list进行排序,但是如果排序的对象是一个包含tuple的l

资讯

python构造字典(python字典中如何创建字典)

阅读(23)

本文主要为您介绍python构造字典,内容包括python字典中如何创建字典,Python中的字典是什么,Python中创建字典的几种方法总结。python---创建字典的方式用{}创建字典代码:x = {"a":"1", "b":"2"}print x输出:{a: 1, b:

资讯

macpythonbs4(mac版python怎么安装beautifulsoup)

阅读(23)

本文主要为您介绍macpythonbs4,内容包括在mac上自己安装了python3.4,怎么安装各种库,mac版python怎么安装beautifulsoup,如何在MAC系统下的python中导入第三方库,如lxml和requests搜狗。安装pythonsudo rm -rf /System/Library/Frameworks/

资讯

python处理中文字符串(Python3.5如何对中文字符串进行处理)

阅读(47)

本文主要为您介绍python处理中文字符串,内容包括Python3.5如何对中文字符串进行处理,请问python怎么可以很好的处理中文字符,python处理中文字符串用什么编码方式。在Python的string前面加上r, 是为了告诉编译器这个string是个raw string,不

资讯

python能干什么知乎(java工程师一般用python做什么知乎)

阅读(52)

本文主要为您介绍python能干什么知乎,内容包括python可以做什么知乎,python可以做什么知乎,java工程师一般用python做什么知乎。#做网站后台Python在网站后台这边有大量的成熟的框架,如django,flask,bottle,tornado,我曾经用过flask

资讯

python3md5解密(如何使用Python3的两个库来加解密字符串)

阅读(48)

本文主要为您介绍python3md5解密,内容包括如何使用Python3的两个库来加解密字符串,python,求一个获取文件md5的算法,python,如何对文件内容进行md5处理。哈希如果需要用到安全哈希算法或是消息摘要算法,那么你可以使用标准库中的 hashlib 模

资讯

python一致性hash(一致性hash虚拟节点怎么理解)

阅读(49)

本文主要为您介绍python一致性hash,内容包括一致性hash和hash的区别,一致性hash虚拟节点怎么理解,什么叫memcache一致性hash。一致性哈希基本解决了在P2P环境中最为关键的问题如何在动态的网络拓扑中分布存储和路由。每个节点仅需维护少量

资讯

python列表元素排序(Python中,如何给列表排序)

阅读(18)

本文主要为您介绍python列表元素排序,内容包括Python怎么对列表中元素排序,python对列表里的元素进行排序,python对列表里的元素进行排序。Python中给列表排序的方式有很多,可以自己实现知,也可以用Python提供的方法使用Python提供的方法:列表

资讯

Python打包exe(怎么将多个python打包成exe文件)

阅读(17)

本文主要为您介绍Python打包exe,内容包括怎么将多个python打包成exe文件,如何把python打包成exe,如何把python文件打包成exe。安装pywin32,可以参考《怎么给python安装pywin32模块?》,一定要注意对应的python版本,否则不能安装。

资讯

python两个列表交集(python怎么求两个列表的交集)

阅读(18)

本文主要为您介绍python两个列表交集,内容包括python怎么求两个列表的交集,python如何求嵌套列表的交集,python有没有两个列表取并集。方法1遍历b1,如果某个元素同时也存在于b2中,则返回复制代码代码如下:b1=[1,2,3]b2=[2,3,4]b3 = [val fo

资讯

pythonmain返回值类型(python怎么写main函数)

阅读(14)

本文主要为您介绍pythonmain返回值类型,内容包括python怎么写main函数,main返回值,python中,怎么让类返回值啊。print main当脚本作为执行脚本时__name__的值为__main__当脚本作为模块时__name__为模块文件名。main函数