我的脚本:
#!/usr//bin/perl
#
# Script to balance accounts between servers
# By Philip Gabrielsen
#
use strict;
use warnings;
START:
print "\nZimbra account moving script\n";
print "First we will collect data from Zimbra, this may take a while.\n\n";
my %accounts;
DATACOLLECT:
print "Collecting Zimbra mailbox server(s)... ";
my $servers = `zmprov gas mailbox`;
print "OK\n";
print "Collecting numbers of accounts per server... ";
foreach my $server (split(/\n/, $servers)) {
$accounts{$server} = `zmprov -l gaa -s $server|wc -l`;
}
print "OK\n";
foreach my $server (keys %accounts) {
print "\nServer $server with ". $accounts{$server} ." accounts\n";
}
print "TEST, is total number of accounts good?";
$accounts{'total'} = 0;
foreach my $server1 (keys %accounts) {
$accounts{'total'} = $accounts{'total'} + $accounts{$server1};
print "\nAdded $accounts{$server1} and total is now $accounts{'total'}";
}
print "\nTotal number of accounts: $accounts{'total'}\n";
输出:[zimbra@snake tmp]$ perl accounts.pl
Zimbra account moving script
First we will collect data from Zimbra, this may take a while.
Collecting Zimbra mailbox server(s)... OK
Collecting numbers of accounts per server... OK
Server snake with 363
accounts
Server tiger with 431
accounts
Server lion with 273
accounts
TEST, is total number of accounts good?
Added 363
and total is now 363
Added 431
and total is now 794
Added [zimbra@tiberius tmp]$ perl accounts.pl
Zimbra account moving script
First we will collect data from Zimbra, this may take a while.
Collecting Zimbra mailbox server(s)... OK
Collecting numbers of accounts per server... OK
Server titus.zimbra.h.bitbit.net with 363
accounts
Server tiberius.zimbra.h.bitbit.net with 431
accounts
Server otho.zimbra.h.bitbit.net with 273
accounts
TEST, is total number of accounts good?
Added 363
and total is now 363
Added 431
and total is now 794
Added 1588 and total is now 1588
Added 273
and total is now 1861
Total number of accounts: 1861 and total is now 1588
Added 273
and total is now 1861
Total number of accounts: 1861
正如第一次看到的,当列出每个服务器的帐户时,会显示正确的数字,但最后一部分,当我想将所有 $accounts 添加到总值中时,会弹出数字 1588,这应该是 273...