I apologize I had to tend to my son he was not feeling well so I was not in the office yesterday April 9th
so I am trying to run this script as suggested I do not see that my log has a header, I also added three remote hosts to run the script to see if I could get a header for each one but no header
#!/usr/bin/perl -w
use warnings;
use strict;
use Expect;
my $filename = "/var/tmp/expect_script.log";
my $header = "\r\n\r\n======= system =======\r\n";
my $timeout = 60;
my @servers = qw(
remotehost03
remotehost04
remotehost05
);
for my $server (@servers) {
# do your thing with $server
change_password($server);
}
sub change_password {
my $system = shift;
my $ssh = Expect->new('ssh amagana@' . $system);
$ssh->debug(1);
$ssh->log_file("$filename");
my $my_header = $header;
$my_header =~ s/system/$system/;
$ssh->expect ( $timeout,
[ qr/Password:/],
[ qr/Are you sure you want to continue connecting \(yes\/no\)?/]
);
if ($ssh->match() =~ m/Are you sure you want to continue connecting \(
+yes\/no\)?/ ) {
$ssh->send("yes\r");
}
elsif ($ssh->match() =~ m/Password:/ ) {
$ssh->send("mycurrentpassword\n");
}
$ssh->expect(60, '$');
$ssh->send("su - root\n");
$ssh->expect(60, 'Password:');
$ssh->send("rootpassword\n");
$ssh->expect(60, '#');
$ssh->send("hostname\n");
$ssh->expect(60, '#');
$ssh->send("uptime\n");
$ssh->expect(60, '#');
$ssh->send("passwd amagana\n");
$ssh->expect(60, 'New Password:');
$ssh->send("mynewpassword\n");
$ssh->expect(60, 'Re-enter new Password:');
$ssh->send("mynewpassword\n");
$ssh->expect(60, '#');
$ssh->send("exit\n");
$ssh->expect(60, '$');
$ssh->send("exit\n");
$ssh->close();
}
|