发布于 2024-11-13 17:48:09 字数 144 浏览 1 评论 0原文

我能够使用 Expect 自动连接 SSH。然而,我有很多shell命令和shell条件需要在连接后执行或测试。我想知道我该如何应对这种情况。看起来将 shell 命令放在 Expect 脚本中并使用 send 并不是一个好的选择。还有其他选择吗?

I am able to use expect to connect automatically with SSH. However, I have a lot of shell commands and shell conditions to be executed or tested after the connection. I am wondering how I can deal with this situation. It looks like putting the shell commands in the expect script and use send is not a good option. Are there any other options?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏末的微笑 2024-11-20 17:48:09

在 Perl 中,您可以使用 Net::SSH2Net::OpenSSH 甚至旧的 Net::SSH::Perl

use Net::OpenSSH;
my $ssh = Net::OpenSSH->new('host.example.com', user => 'jsmith', password => 'jsmith2011');
$ssh->error and die "Unable to connect to remote host: " . $ssh->error;

$ssh->system("ls /etc");
my $output = $ssh->capture("rgrep hello /usr/share/doc");
$ssh->scp_get("/var/log/messages", "/tmp/remote_log");
# ...

In Perl you can use Net::SSH2, Net::OpenSSH or even the old Net::SSH::Perl

use Net::OpenSSH;
my $ssh = Net::OpenSSH->new('host.example.com', user => 'jsmith', password => 'jsmith2011');
$ssh->error and die "Unable to connect to remote host: " . $ssh->error;

$ssh->system("ls /etc");
my $output = $ssh->capture("rgrep hello /usr/share/doc");
$ssh->scp_get("/var/log/messages", "/tmp/remote_log");
# ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文