O código abaixo aceita como parâmetros uma lista de servidores e um comando a ser executado nesses servidores.
my $servers={
srv01 => {user=>'user1', pass=>'pass1'},
srv02 => {user=>'user2', pass=>'pass2'},
srv03 => {user=>'user3', pass=>'pass3'}
};
my $cmd=pop(@ARGV);
print "$cmd:\n";
for my $server (@ARGV) {
my $pass=$servers->{$server}->{pass};
my $user=$servers->{$server}->{user};
print "$server\n";
my $data=`plink -pw $pass $user\@$server $cmd`;
print "$data\n";
}
Por exemplo, para executar um "uname -a" em srv01 e srv02, eu poderia chamar o script assim (o nome do arquivo com o script é exec.pl):
exec.pl srv01 srv02 "uname -a"
Minha vontade era a de oferecer oções de linha de comando para referenciar grupos de servidores por nome, mas ainda não venci a preguiça.
Nenhum comentário:
Postar um comentário