Perl Net::openSSH 远程登录多台机器执行脚本

简介:

需求:在多台机器需要同时执行文件,并且是不定期的,crontab不适用了,没办法了写了这个Script,简单也没什么错误提示,只为执行即可;

前提:在跳板机上已经和机器的ssh打通;在Script机器上安装perl模块Net::openSSH

Net-OpenSSH-0.57.tar.gz

解压,发现需要安装其他模块;

逐个安装:

 

将上面的四个模块安装完毕;

编写脚本:allget.pl

#!/usr/bin/perl
use strict;
use Net::OpenSSH;

open (HD,"/home/user/alljd") || die "Cannot find file:$!\n";
my @jd=<HD>;
close (HD);
my $jd;
foreach $jd(@jd) {
chomp ($jd);
my $user="user";
my $host=$jd;
#my $passphrase='user密码';
my $key='/home/user/.ssh/id_rsa';
my $cmd="ls";

my %param = (
    user => $user,
#    passphrase => $passphrase,
    key_path => $key,
    timeout => 60
    );
my $ssh = Net::OpenSSH->new($host,%param);
my ($stdout,$stderr) = $ssh->capture2("sudo ./get.pl");
if ($stdout){
    print $host is $stdout;
} else {
    print $ssh->error;
    $stderr and print $stderr;
}
}

alljd是个文本文件,get.pl是远程机器上的Script;

测试正常;


本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1153376

相关文章
|
2月前
|
SQL 开发框架 .NET
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
33 0