Por que verificar a contagem se você quiser excluí-las? Exclua os arquivos diretamente. Versão bash simples simples para remover logs com mais de 7 dias:
#!/bin/bash
HOSTS=( ws1 ws2 ws3 ws4 ws5 ws6 ws7 ws8 ws9 ws10 ws11 ws12 )
for CURRHOST in ${HOSTS[@]}
do
ssh -q $CURRHOST "find /logs/$CURRHOST -type f -mtime +7 -exec rm -v {} \;"
done
Se você insistir em usar o perl e desejar preencher uma matriz contendo hosts que possuem arquivos de log que você pode usar:
my @workstation = qw(ws1 ws2 ws3 ws4 ws5 ws6 ws7 ws8 ws9 ws10 ws11 ws12);
my %wscount;
foreach my $workstation (@workstation){
$logcount = 'ssh -q $workstation "ls /logs/$workstation | wc -l"';
chomp $logcount;
if ( $logcount > 0 )
{
$wscount{$workstation}=$logcount;
}
}
foreach my $wswithlog (keys %wscount){
printf "host $wswithlog: $wscount{$wswithlog}\n";
'ssh -q $wswithlog "/tools/log_remover /logs/$wswithlog"'
}