Paramiko 操作远端时无法切换目录的问题
最近在用Paramiko 开发一款远程测试调试框架,结果发现目录怎么都无法切换,查了下原因,在http://bbs.chinaunix.net/thread-1675446-1-1.html看到了
Python Remote SSH with Paramiko
I am using Paramiko to do some remote ssh work and could not figure out how to change directories and execute a script with the SSHClient.execute_command() function. I finally figured out that .execute_command() is basically a single session, so doing a .execute_command('cd scripts') and then executing the script with another .execute_command() reverts back to your default directory. The alternatives are to send all the commands at once separated by a ; .execute_command('cd scripts; ./myscript.sh'), or to use the .interactive() shell support. Since I only needed to fire off this script I used the first solution.
意思就是execute_command() 他是a single session,每次执行完后都要回到缺省目录。所以可以 .execute_command('cd /var; pwd')
或者使用aa = ssh.invoke_shell()
aa.send('cd /var\n')
aa.recv(100)
所以解决办法就是目录连在一起写,用;隔开,或者用invoke_shell方法
在一些命令会有多行输出时,建议也使用invoke_shell,否则会不出结果
Paramiko 操作远端时无法切换目录的问题的更多相关文章
- python调用shell脚本时需要切换目录
最近遇到了一个问题,就是python代码调用shell脚本时,发现输入输出的文件,总是和自己预想的有偏差,但是单独在linux下执行命令的时候,却没有错误.后来发现是相对路径的问题,因为执行pytho ...
- [linux服务器][bash]让切换目录更方便
本文转载:[linux服务器][bash]让切换目录更方便: 一,为何要使用这几个命令? 可能大家会有疑问,为何要使用这几个命令, 难道用cd不就可以切换目录了吗? 没错,使用cd就可以切 ...
- python3使用paramiko操作远程机器
目标:有A和B两台机器,希望在机器A上操作B上的脚本 解决方法:使用paramiko实现操作远程机器 1.安装paramiko 安装第三方包[pip3 install paramiko] ...
- tcp 大文件上传 ,切换目录 及登陆文件加盐处理
实现大文件的传输 服务器 import socketimport jsonimport structsk = socket.socket()sk.bind(("127.0.0.1" ...
- Ubuntu vsftp复制文件到远端时错误,Permission denied
Ubuntu 下复制文件到远端时错误,Permission denied 失败原因如下: (1)vsftp默认配置不允许上传文件 解决办法:修改配置文件 vi /etc/vsftpd.conf. 将& ...
- pushd,popd,dirs,cd -让切换目录更方便
与linux cd命令相似,用pushd实现在不同目录间切换 在命令行模式下,当你工作在不同目录中,你将发现你有很多时间都浪费在重复输入上如果这些目录不在同一个根目录中,你不得不在转换时输入完整的路径 ...
- cmder设置打开时的默认目录
cmder设置打开时的默认目录 打开cmder自动进入工作目录,怎么配置? http://superuser.com/questions/1005285/run-a-bat-file-with-cmd ...
- 让你在DOS中任意切换目录
尽管Windows图形界面早已经取代了无趣的DOS字符界面(废话,Vista都呼之欲出了),不过在日常操作中,还是有很多时候需要用到命令提示符.比如批量重命名文件时.执行字符命令时.在命令行下恢复系统 ...
- Kafka中操作topic时 Error:Failed to parse the broker info from zookeeper
Kafka中操作topic时 Error: Failed to parse the broker info from zookeeper 1.问题描述 2.问题原因 kafka在启动后 ...
随机推荐
- 打开SharePoint 2013 web application显示iis 欢迎页面
当我打开SP web application时,页面显示如下: 查看event log,发现有一些8315-8317之类的error,发现把request management service停掉后, ...
- PMOS 与 NMOS
PMOS: NMOS: NMOS是栅极高电平(VGS > Vt)导通,低电平断开,可用来控制与地之间的导通.PMOS是栅极低电平(VGS < Vt)导通,高电平断开,可用来控制与电源之间的 ...
- Java:判断当前操作系统界面采用的主题是windows经典样式还是xp样式
想起两三年前,发现写Java界面的时候,如果将当前界面的layout设为null,由于windows的不同主题界面下,标题栏的高度不一致,导致当前界面表现也不一致. 当时就想找到一个办法先判断当前用户 ...
- maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式
maven项目检出后报错(包括编译报错和运行报错)的常见检查处理方式: 1.更改项目的jdk为我们安装的jdk2.更改build配置里的 output folder 目录为 xxx项目名/target ...
- MySQL中双NDBD节点Cluster快速配置
是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5.0及以上的二进制版本中.以及与最 ...
- pyqt5 设置窗口按钮等可用与不可用
setEnabled(True) 设置窗口或者按钮可用,Flase不可用
- JAVA BufferedReader 类从标准输入读取数据
1,从标准输入上建立输入流: BufferedReader localReader = new BufferedReader( new InputStreamReader(System.in)); S ...
- buildroot构建项目(二)--- u-boot 2017.11 建立 2440 开发板
一.准备工作 在建立之前,先需要将下载的u-boot 拷贝一份出来解压,在此工程下进行更改和创建.同时根据前面搜索到的 mini2440开发板所在的版本,下载一份u-boot 拷贝出 mini2440 ...
- golang error信息转字符串 x := fmt.Sprintf("%s", err)
_, _, ch, err := m.ZkConn.ChildrenW(node) if err != nil { x := fmt.Sprintf("%s", err) if s ...
- 第18月第22天 机器学习first
1.网易公开课 机器学习 http://open.163.com/special/opencourse/machinelearning.html https://github.com/search ...