我被困在这里好几天了。我想从windows复制一个文件到远程linux服务器,然后在那里运行脚本。我有ssh和scp的工具。我可以通过命令行从其中调用linux服务器,但是当我通过python调用它时,它会被挂起。
pro=subprocess.Popen('ssh user@server')
pro.communicate()
有一个空白屏幕。之后我输入的任何内容都会出现在我的屏幕上。我希望应该有一个密码提示,但没有。我想使用像paramiko,pexpect,pyssh这样的库,但是它们在Python3中都不受支持
任何帮助都是非常感谢的。
发布于 2011-05-25 02:06:10
http://docs.fabfile.org/en/1.0.1/index.html
我不确定它能不能被2to3转换
但它使用起来相当简单:
from fabric.api import run, env
from fabric.context_managers import hide
from fabric.colors import green
with hide('status', 'running', 'output'):
print('Apache ' + env.host + ': ' + green(run('wget -q -O /dev/null http://localhost/ && echo OK')))
env.host来自命令行,扭曲沙发是另一种选择,但它还没有移植到py3k上
发布于 2011-07-13 19:27:44
还有另一个类似的问题。使用netcat。‘'man nc’。使用python中的os.system()在客户端和服务器端生成它。
在netcat手册页面中:
描述
nc (或netcat)实用程序可用于任何涉及TCP或UDP的应用程序。它可以打开TCP连接,发送UDP数据包,监听任意TCP和UDP端口,执行端口扫描,并处理IPv4和IPv6。与telnet(1)不同,nc可以很好地编写脚本,并将错误消息分离到标准错误上,而不是像telnet(1)对某些错误所做的那样将它们发送到标准输出。
常见用法包括:
用于基于简单TCP proxies
ssh(1)
如果知道相关的问题,这对于intranet和internet上的本地或远程计算机都很有效(原始问题没有指定“远程”的含义)。以下是一些示例:
- [http://www.sans.org/reading\_room/whitepapers/tools/netcat-tcp-ip-swiss-army-knife\_952](http://www.sans.org/reading_room/whitepapers/tools/netcat-tcp-ip-swiss-army-knife_952)
- Note that sans.org teaches both foundational comp sci tools and security.
至于“但那不是python”的评论:当有非常好的基础实用程序被移植到所有O/S并且除了底层O/S之外没有其他依赖时,不要重复发明轮子。
https://stackoverflow.com/questions/6097278
复制相似问题