-
-
Notifications
You must be signed in to change notification settings - Fork 117
/
Copy pathrun-all-webalizer.pl
executable file
·54 lines (44 loc) · 1.36 KB
/
run-all-webalizer.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/local/bin/perl
=head1 run-all-webalizer.pl
Run Webalizer reports for all virtual servers
This is designed to be called from Cron, instead of Virtualmin's regular
per-domain C</etc/webmin/webalizer/webalizer.pl> script, which can generate
a lot of load if more than one copy runs at the same time. If you decide to
use it, change the I<Setup Webalizer Cron job for each virtual server?> option
to I<No> on the I<Module Config> page.
=cut
package virtual_server;
$main::no_acl_check++;
$ENV{'WEBMIN_CONFIG'} ||= "/etc/webmin";
$ENV{'WEBMIN_VAR'} ||= "/var/webmin";
if ($0 =~ /^(.*)\/[^\/]+$/) {
chdir($pwd = $1);
}
else {
chop($pwd = `pwd`);
}
$0 = "$pwd/run-all-webalizer.pl";
require './virtual-server-lib.pl';
$< == 0 || die "run-all-webalizer.pl must be run as root";
if (@ARGV) {
&usage("No parameters required");
}
&require_webalizer();
&foreign_require("cron");
&cron::create_wrapper($webalizer::cron_cmd,
"webalizer", "webalizer.pl");
foreach $d (&list_domains()) {
next if (!$d->{'webalizer'});
$alog = &get_website_log($d);
next if (!$alog);
print "Running Webalizer for $d->{'dom'} ($alog)\n";
system("$webalizer::cron_cmd ".quotemeta($alog));
}
sub usage
{
print "$_[0]\n\n" if ($_[0]);
print "Runs Webalizer for all domains with it enabled, in series.\n";
print "\n";
print "usage: $ENV{'WEBMIN_CONFIG'}/run-all-webalizer.pl\n";
exit(1);
}