HEX
Server: Apache
System: Linux vps-cdc32557.vps.ovh.ca 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
User: hanode (1017)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //proc/self/root/usr/share/webmin/virtual-server/run-all-webalizer.pl
#!/usr/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);
}