加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 如何以编程方式获取有状态的ssh shell会话?

发布时间:2020-12-15 23:36:27 所属栏目:大数据 来源:网络整理
导读:我正在开发一个需要向远程服务器发送命令的应用程序.使用大量SSH客户端库可以轻松发送命令. 但是,我希望在每个命令之间保留shell状态(即当前工作目录,环境变量等).我见过的所有客户端库都没有这样做.例如,以下是不能执行我想要的代码示例: use Net::SSH::Pe
我正在开发一个需要向远程服务器发送命令的应用程序.使用大量SSH客户端库可以轻松发送命令.

但是,我希望在每个命令之间保留shell状态(即当前工作目录,环境变量等).我见过的所有客户端库都没有这样做.例如,以下是不能执行我想要的代码示例:

use Net::SSH::Perl;
my $server = Net::SSH::Perl->new($host);
$server->login($user,$pass);

$server->cmd('cd /var');
$server->cmd('pwd');      # I _would like_ this to output /var

在发送命令之间将执行其他任务,因此组合诸如$server-> cmd(‘cd / var; pwd’)之类的命令是不可接受的.

解决方法

Net::SSH::Expect做你想要的,虽然“Expect”方式并不完全可靠,因为它将解析命令的输出并试图检测shell提示何时再次出现.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读