一部の PC で SSH を介してリモートでコマンドを実行する perl スクリプトがあります。そのため、すべてのPCの時間を同じに設定したいと考えています。PC は Linux ベースのシステムであり、perl スクリプトは実行するコマンドを含む別の .txt ファイルを使用します。しかし、perl スクリプトを実行すると、次のエラーが発生しました。
Command = date --set "27 SEP 2012 19
sh: -c: line 0: unexpected EOF while looking for matching `"'
sh: -c: line 1: syntax error: unexpected end of file
別のコマンドを試したところ、結果が得られたため、perl スクリプトは正常に動作しています。では、このエラーの原因は何でしょう。
perl コードは次のとおりです。
#!/usr/bin/perl
open (MYFILE,'HostIPWithCmd.txt');
$i=0;
@IPs=<MYFILE>;
foreach (@IPs) {
chomp;
($EthIP,$Cmd)= split(":");
if($EthIP!=~ ("#"))
{
push(@hostIP,$EthIP);
push(@destCmd,$Cmd);
}
else
{
push(@hostIP,"$EthIP");
push(@destCmd,$Cmd);
}
}
$i=0;
foreach my $host (@hostIP)
{
if($host !=~ ("#"))
{
my @cmds= split(/,/,$destCmd[$i]);
print "\n\nCommands For $host = $destCmd[$i]\n";
foreach my $command (@cmds)
{
print "\n*************************************";
print "\nCommand = $command \n\n";
system("ssh -o ConnectTimeout=10 $host $command");
}
print "\n***** End Of Host : $host *****\n";
print "************************************************************\n\n";
}
$i++;
}
および HostIPWithCmd.txt
10.20.146.97:date --set "27 SEP 2012 19:00:00"
前もって感謝します。