设为首页 收藏本站
查看: 1470|回复: 0

[经验分享] Perl Net::Telnet3.03

[复制链接]

尚未签到

发表于 2018-9-1 10:09:07 | 显示全部楼层 |阅读模式
## Main program.  {
  my ($pty, $ssh, @lines);
  my $host = "changeme";
  my $user = "changeme";
  my $password = "changeme";
  my $prompt = '/changeme:~> $/';
  ## Start ssh program.
  $pty = &spawn("ssh", "-l", $user, $host);  # spawn() defined below
  ## Create a Net::Telnet object to perform I/O on ssh's tty.
  use Net::Telnet;
  $ssh = new Net::Telnet (-fhopen => $pty,
  -prompt => $prompt,
  -telnetmode => 0,
  -cmd_remove_mode => 1,
  -output_record_separator => "\r");
  ## Login to remote host.
  $ssh->waitfor(-match => '/password: ?$/i',
  -errmode => "return")
  or die "problem connecting to host: ", $ssh->lastline;
  $ssh->print($password);
  $ssh->waitfor(-match => $ssh->prompt,
  -errmode => "return")
  or die "login failed: ", $ssh->lastline;
  ## Send command, get and print its output.
  @lines = $ssh->cmd("who");
  print @lines;
  exit;
  } # end main program
  sub spawn {
  my(@cmd) = @_;
  my($pid, $pty, $tty, $tty_fd);
  ## Create a new pseudo terminal.
  use IO::Pty ();
  $pty = new IO::Pty
  or die $!;
  ## Execute the program in another process.
  unless ($pid = fork) {  # child process
  die "problem spawning program: $!\n" unless defined $pid;
  ## Disassociate process from existing controlling terminal.
  use POSIX ();
  POSIX::setsid
  or die "setsid failed: $!";
  ## Associate process with a new controlling terminal.
  $tty = $pty->slave;
  $tty_fd = $tty->fileno;
  close $pty;
  ## Make stdio use the new controlling terminal.
  open STDIN, "&$tty_fd" or die $!;
  open STDERR, ">&STDOUT" or die $!;
  close $tty;
  ## Execute requested program.
  exec @cmd
  or die "problem executing $cmd[0]\n";
  } # end child process
  $pty;
  } # end sub spawn



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-561013-1-1.html 上篇帖子: Perl脚本学习笔记(四) 下篇帖子: Perl语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表