[Perl] Net-SSH-PerlによるSSH



Net::SSH::Perlモジュールを使って、PerlからSSHを叩く。

たくさんのサーバに対して、同様の操作をしたい場面は多い。
コマンドを発行するだけならシェルスクリプトでも良いが、Perlの豊富なモジュールと連携できるのが嬉しい。

Net::SSH::Perl の入手

ここ(CPAN)からダウンロードできる。
http://search.cpan.org/~dbrobins/Net-SSH-Perl-1.28/lib/Net/SSH/Perl.pm

サンプルコード

パスワード認証を使って複数のサーバにログインして、dfコマンドを実行する。

 use strict;
 use Net::SSH::Perl;
 use IO::Handle;
 
 my @host = ("host1", "host2");
 
 foreach my $ahost (@host) {
     ssh_df($ahost);
 }
 
 sub ssh_df($) {
     my $host = shift;
     my $ssh = Net::SSH::Perl->new($host);
     $ssh->login("USER", "PASS");
     print $ssh->cmd("df");
     $ssh->cmd("exit");
 }

参考文献

初めてのPerl 第5版 実用SSH 第2版―セキュアシェル徹底活用ガイド 入門OpenSSH―Linux/FreeBSD/Solaris/Mac OS X対応

Comments are closed.