diff --git a/server/lib/classes/cron.d/150-goaccess.inc.php b/server/lib/classes/cron.d/150-goaccess.inc.php index 8c9d7644420490272e36578cc933f8f883073fa2..5c915e579a59d348cb1b6ffd646c661d18419ec6 100644 --- a/server/lib/classes/cron.d/150-goaccess.inc.php +++ b/server/lib/classes/cron.d/150-goaccess.inc.php @@ -77,9 +77,8 @@ class cronjob_goaccess extends cronjob { } - /* Check if goaccess binary is in path */ - system("type goaccess 2>&1>/dev/null", $retval); - if ($retval === 0) { + /* Check if goaccess binary is in path/installed */ + if($app->system->is_installed('goaccess')) { foreach($records as $rec) { $yesterday = date('Ymd', strtotime("-1 day", time())); @@ -118,7 +117,7 @@ class cronjob_goaccess extends cronjob { } elseif(!file_exists($goaccess_conf)) { /* By default the goaccess.conf should get copied by the webserver plugin but in case it wasn't, or it got deleted by accident we gonna copy it again to the destination dir. - Also there was no /usr/local/ispconfig/server/conf-custom/goaccess.conf.master, so we gonna use /etc/goaccess.conf as the base conf. + Also there was no /usr/local/ispconfig/server/conf-custom/goaccess.conf.master, so we gonna use /etc/goaccess.conf or /etc/goaccess/goaccess.conf as the base conf. */ $app->system->copy($goaccess_conf_main, $goaccess_conf); @@ -147,8 +146,7 @@ class cronjob_goaccess extends cronjob { if(!@is_dir($goa_db_dir)) $app->system->mkdirpath($goa_db_dir); if(is_link('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log')) $app->system->unlink('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); - symlink($logfile, '/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); - + $app->system->create_relative_link($logfile, '/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); @@ -178,7 +176,11 @@ class cronjob_goaccess extends cronjob { // don't rotate db files per month //rename($goa_db_dir, $statsdirold.'db'); - //mkdir($goa_db_dir); + //mkdir($goa_db_dir); + + $app->system->copy($output_html, $statsdirold); + $app->system->unlink($output_html); + $files = scandir($statsdir); @@ -228,8 +230,8 @@ class cronjob_goaccess extends cronjob { $app->log('Created GoAccess statistics for ' . $domain, LOGLEVEL_DEBUG); if(is_file($rec['document_root']."/".$web_folder."/stats/index.php")) { - chown($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_user']); - chgrp($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_group']); + $app->system->chown($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_user']); + $app->system->chgrp($rec['document_root']."/".$web_folder."/stats/index.php", $rec['system_group']); } $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); diff --git a/server/lib/classes/cron.d/symlink b/server/lib/classes/cron.d/symlink new file mode 100644 index 0000000000000000000000000000000000000000..5d73153c46b8ae0fdcbefd611b1c8b1e6bdd6df8 --- /dev/null +++ b/server/lib/classes/cron.d/symlink @@ -0,0 +1,273 @@ +100-mailbox_stats.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +100-mailbox_stats.inc.php: $tr = $app->dbmaster->queryOneRecord($sql, $rec['mailuser_id']); +100-mailbox_stats.inc.php: $app->dbmaster->query($sql, $mail_traffic, $tr['traffic_id']); +100-mailbox_stats.inc.php: $app->dbmaster->query($sql, $tstamp, $rec['mailuser_id'], $mail_traffic); +100-mailbox_stats.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +100-mailbox_stats.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +100-mailbox_stats.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +100-mailbox_stats.inc.php: $tr = $app->dbmaster->queryOneRecord($sql, $tstamp, $rec['mailuser_id']); +100-mailbox_stats.inc.php: $app->dbmaster->query($sql, $mail_traffic, $tr['traffic_id']); +100-mailbox_stats.inc.php: $app->dbmaster->query($sql, $tstamp, $rec['mailuser_id'], $mail_traffic); +100-monitor_clamav_log.inc.php: $app->load('monitor_tools'); +100-monitor_clamav_log.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_clamav_log.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_cpu.inc.php: $app->load('monitor_tools'); +100-monitor_cpu.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_database_size.inc.php: $app->load('monitor_tools'); +100-monitor_database_size.inc.php: $databases = $app->db->queryAllRecords("SELECT database_id, database_name, sys_groupid, database_quota, quota_exceeded FROM web_database WHERE server_id = ? GROUP BY sys_groupid, database_name ASC", $server_id); +100-monitor_database_size.inc.php: $data[$i]['size'] = $app->db->getDatabaseSize($rec['database_name']); +100-monitor_database_size.inc.php: $app->dbmaster->datalogUpdate('web_database', array('quota_exceeded' => 'n'), 'database_id', $rec['database_id']); +100-monitor_database_size.inc.php: $app->dbmaster->datalogUpdate('web_database', array('quota_exceeded' => 'y'), 'database_id', $rec['database_id']); +100-monitor_database_size.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_disk_usage.inc.php: $app->load('monitor_tools'); +100-monitor_disk_usage.inc.php: $app->uses('getconf'); +100-monitor_disk_usage.inc.php: $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); +100-monitor_disk_usage.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_email_quota.inc.php: $app->uses('getconf'); +100-monitor_email_quota.inc.php: $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); +100-monitor_email_quota.inc.php: $app->load('monitor_tools'); +100-monitor_email_quota.inc.php: $mailboxes = $app->db->queryAllRecords("SELECT email,maildir FROM mail_user WHERE server_id = ?", $server_id); +100-monitor_email_quota.inc.php: $app->log("Mail storage $email: " . $data[$email]['used'], LOGLEVEL_DEBUG); +100-monitor_email_quota.inc.php: $app->log("Mail storage $email: " . $data[$email]['used'], LOGLEVEL_DEBUG); +100-monitor_email_quota.inc.php: $app->system->exec_safe('du -s ?', $mb['maildir']); +100-monitor_email_quota.inc.php: $out = $app->system->last_exec_out(); +100-monitor_email_quota.inc.php: $app->log("Mail storage $email: " . $data[$email]['used'], LOGLEVEL_DEBUG); +100-monitor_email_quota.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_fail2ban.inc.php: $app->load('monitor_tools'); +100-monitor_fail2ban.inc.php: if ($app->system->is_installed('fail2ban-client') // Debian, Ubuntu, Fedora +100-monitor_fail2ban.inc.php: || $app->system->is_installed('fail2ban')) { // CentOS +100-monitor_fail2ban.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_hd_quota.inc.php: $app->load('monitor_tools'); +100-monitor_hd_quota.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_iptables.inc.php: $app->load('monitor_tools'); +100-monitor_iptables.inc.php: if ($app->system->is_installed('iptables')) { +100-monitor_iptables.inc.php: if ($app->system->is_installed('ip6tables')) { +100-monitor_iptables.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_ispconfig_log.inc.php: $app->load('monitor_tools'); +100-monitor_ispconfig_log.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_ispconfig_log.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_ispconfig_version.inc.php: $app->load('monitor_tools'); +100-monitor_ispconfig_version.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_kernel_version.inc.php: $app->load('monitor_tools'); +100-monitor_kernel_version.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_mail_log.inc.php: $app->load('monitor_tools'); +100-monitor_mail_log.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_mail_log.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_mail_log.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_mail_queue.inc.php: $app->load('monitor_tools'); +100-monitor_mail_queue.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_mem_usage.inc.php: $app->load('monitor_tools'); +100-monitor_mem_usage.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_mongodb.inc.php~: $app->load('monitor_tools'); +100-monitor_mongodb.inc.php~: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_openvz.inc.php: $app->load('monitor_tools'); +100-monitor_openvz.inc.php: $app->load('openvz_tools'); +100-monitor_openvz.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_openvz.inc.php: $app->load('openvz_tools'); +100-monitor_openvz.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_os_version.inc.php: $app->load('monitor_tools'); +100-monitor_os_version.inc.php: $server_id = $app->functions->intval($conf['server_id']); +100-monitor_os_version.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_raid.inc.php: $app->load('monitor_tools'); +100-monitor_raid.inc.php: if ($app->system->is_installed('mpt-status')) { +100-monitor_raid.inc.php: if($app->system->is_installed('tw_cli')) { +100-monitor_raid.inc.php: if($app->system->is_installed('hpacucli')) { +100-monitor_raid.inc.php: if ($app->system->is_installed('megacli')) { +100-monitor_raid.inc.php: if ($app->system->is_installed('megacli64')) { +100-monitor_raid.inc.php: if($app->system->is_installed('arcconf')) { +100-monitor_raid.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_rkhunter.inc.php: $app->load('monitor_tools'); +100-monitor_rkhunter.inc.php: if ($app->system->is_installed('rkhunter')) { +100-monitor_rkhunter.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_server.inc.php: $app->load('monitor_tools'); +100-monitor_server.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_services.inc.php: $app->load('monitor_tools'); +100-monitor_services.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_syslog.inc.php: $app->load('monitor_tools'); +100-monitor_syslog.inc.php: $dbData = $app->dbmaster->queryAllRecords('SELECT loglevel FROM sys_log WHERE server_id = ? AND loglevel > 0', $server_id); +100-monitor_syslog.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_syslog.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +100-monitor_system_update.inc.php: $app->uses('getconf'); +100-monitor_system_update.inc.php: $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); +100-monitor_system_update.inc.php: $app->load('monitor_tools'); +100-monitor_system_update.inc.php: $app->dbmaster->query($sql, $res['server_id'], $res['type'], serialize($res['data']), $res['state']); +150-awstats.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +150-awstats.inc.php: $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); +150-awstats.inc.php: $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $rec['parent_domain_id']); +150-awstats.inc.php: $aliases = $app->db->queryAllRecords($sql, $rec['domain_id']); +150-awstats.inc.php: $app->log("No awstats base config found. Either awstats.conf or awstats.model.conf must exist in ".$awstats_conf_dir.".", LOGLEVEL_WARN); +150-awstats.inc.php: $app->log('Created awstats statistics with command: '.$command, LOGLEVEL_DEBUG); +150-awstats.inc.php: $app->log("No awstats statistics created. Either $awstats_pl or $awstats_buildstaticpages_pl is not owned by root user.", LOGLEVEL_WARN); +150-awstats.inc.php: $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); +150-goaccess.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +150-goaccess.inc.php: $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); +150-goaccess.inc.php: $app->log("No GoAccess base config found. Make sure that GoAccess is installed and that the goaccess.conf does exist in /etc or /etc/goaccess", LOGLEVEL_ERROR); +150-goaccess.inc.php: $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $rec['parent_domain_id']); +150-goaccess.inc.php: $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess.conf.master", $goaccess_conf); +150-goaccess.inc.php: $app->system->copy($goaccess_conf_main, $goaccess_conf); +150-goaccess.inc.php: $content = $app->system->file_get_contents($goaccess_conf, true); +150-goaccess.inc.php: $app->system->file_put_contents($goaccess_conf, $content, true); +150-goaccess.inc.php: $content = $app->system->file_get_contents($goaccess_conf, true); +150-goaccess.inc.php: $app->system->file_put_contents($goaccess_conf, $content, true); +150-goaccess.inc.php: if(!@is_dir($statsdir)) $app->system->mkdirpath($statsdir, 0755, $username, $groupname); +150-goaccess.inc.php: if(!@is_dir($goa_db_dir)) $app->system->mkdirpath($goa_db_dir); +150-goaccess.inc.php: if(is_link('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log')) $app->system->unlink('/var/log/ispconfig/httpd/'.$domain.'/yesterday-access.log'); +150-goaccess.inc.php: $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); +150-goaccess.inc.php: $app->system->mkdirpath($statsdirold, 0755, $username, $groupname); +150-goaccess.inc.php: if (substr($file, 0, 1) != "." && !is_dir("$statsdir"."/"."$file") && substr($file, 0, 1) != "w" && substr($file, 0, 1) != "i") $app->system->copy("$statsdir"."/"."$file", "$statsdirold"."$file"); +150-goaccess.inc.php: $goaccess_version = $app->system->system_safe('goaccess --version 2>&1'); +150-goaccess.inc.php: $app->system->exec_safe("LANG=? goaccess -f ? --config-file ? --restore --persist --db-path=? --output=?", $cust_lang, $logfile, $goaccess_conf, $goa_db_dir, $output_html); +150-goaccess.inc.php: $output = $app->system->system_safe('goaccess --help 2>&1'); +150-goaccess.inc.php: $app->system->exec_safe("LANG=? goaccess -f ? --config-file ? --load-from-disk --keep-db-files --db-path=? --output=?", $cust_lang, $logfile, $goaccess_conf, $goa_db_dir, $output_html); +150-goaccess.inc.php: $app->log("Stats not generated. The GoAccess binary was not compiled with btree support. Please recompile/reinstall GoAccess with btree support, or install GoAccess version >= 1.4!", LOGLEVEL_ERROR); +150-goaccess.inc.php: $app->system->copy("/usr/local/ispconfig/server/conf-custom/goaccess_index.php.master", $rec['document_root']."/".$web_folder."/stats/index.php"); +150-goaccess.inc.php: $app->system->copy("/usr/local/ispconfig/server/conf/goaccess_index.php.master", $rec['document_root']."/".$web_folder."/stats/index.php"); +150-goaccess.inc.php: $app->log('Created GoAccess statistics for ' . $domain, LOGLEVEL_DEBUG); +150-goaccess.inc.php: $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); +150-goaccess.inc.php: $app->log("Stats not generated. The GoAccess binary couldn't be found. Make sure that GoAccess is installed and that it is in \$PATH", LOGLEVEL_ERROR); +150-webalizer.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +150-webalizer.inc.php: $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $rec['parent_domain_id']); +150-webalizer.inc.php: $app->system->exec_safe("$webalizer -c ? -n ? -s ? -r ? -q -T -p -o ? ?", $webalizer_conf, $domain, $domain, $domain, $statsdir, $logfile); +150-webalizer.inc.php: $app->system->exec_safe('chown -R ?:? ?', $username, $groupname, $statsdir); +200-ftplogfiles.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +200-ftplogfiles.inc.php: $temp = $app->db->queryOneRecord($sql, $parsed_line['username'] ); +200-ftplogfiles.inc.php: $tmp = $app->dbmaster->queryOneRecord($sql1, $hostname , $traffic_date); +200-ftplogfiles.inc.php: $resultat = $app->dbmaster->query($sql, $traffic['in'], $traffic['out'], $hostname, $traffic_date ); +200-logfiles.inc.php: $app->uses('getconf'); +200-logfiles.inc.php: $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); +200-logfiles.inc.php: $max_syslog = $app->functions->intval($server_config['log_retention']); +200-logfiles.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +200-logfiles.inc.php: $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = ?', $rec['parent_domain_id']); +200-logfiles.inc.php: $tmp = $app->dbmaster->queryOneRecord("select hostname from web_traffic where hostname=? and traffic_date=?", $rec['domain'], $traffic_date); +200-logfiles.inc.php: $app->dbmaster->query($sql, $total_bytes, $rec['domain'], $traffic_date); +200-logfiles.inc.php: $app->dbmaster->query($sql, $rec['domain'], $traffic_date, $total_bytes); +200-logfiles.inc.php: $app->system->exec_safe("gzip -c ? > ?", $logfile, $logfile . '.gz'); +200-logfiles.inc.php: $app->system->exec_safe("gzip -c ? > ?", $cron_logfile, $cron_logfile . '.1.gz'); +200-logfiles.inc.php: $app->system->exec_safe("cat /dev/null > ?", $cron_logfile); +200-logfiles.inc.php: $app->system->exec_safe("gzip -c ? > ?", $error_logfile, $error_logfile . '.1.gz'); +200-logfiles.inc.php: $app->system->exec_safe("cat /dev/null > ?", $error_logfile); +200-logfiles.inc.php: $app->system->exec_safe("cd ?; find . -mtime +$max_syslog -name '*.log' | xargs rm > /dev/null 2> /dev/null", '/var/log/ispconfig/httpd/'.$tmp_hostname[0]); +200-logfiles.inc.php: $app->system->exec_safe("gzip -c ? > ?", $ispconfig_logfile, $ispconfig_logfile . '.1.gz'); +200-logfiles.inc.php: $app->system->exec_safe("cat /dev/null > ?", $ispconfig_logfile); +200-logfiles.inc.php: $records = $app->db->queryAllRecords($sql, $conf['server_id']); +200-logfiles.inc.php: $app->uses('system'); +200-logfiles.inc.php: if($tmp_path != '' && strlen($tmp_path) > 10 && is_dir($tmp_path) && $app->system->is_user($rec['system_user'])){ +200-logfiles.inc.php: $app->system->exec_safe("cd ?; find . -mtime +1 -name 'sess_*' | grep -v -w .no_delete | xargs rm > /dev/null 2> /dev/null", $tmp_path); +200-logfiles.inc.php: if ($app->dbmaster == $app->db) { +200-logfiles.inc.php: $app->dbmaster->query($sql, $tstamp); +200-logfiles.inc.php: $app->dbmaster->query($sql, $tstamp); +200-logfiles.inc.php: $app->dbmaster->query($sql, $tstamp - (3600 * 24 * 23)); +200-logfiles.inc.php: $res = $app->dbmaster->queryOneRecord($sql); +200-logfiles.inc.php: $app->dbmaster->query($sql, $tstamp, $maxId); +200-logfiles.inc.php: $records = $app->dbmaster->queryAllRecords($sql); +200-logfiles.inc.php: $res = $app->dbmaster->queryOneRecord($sql); +200-logfiles.inc.php: $app->dbmaster->query($sql, $tstamp, $server['server_id'], $server['updated'], $maxId); +300-quota_notify.inc.php: $app->load('monitor_tools'); +300-quota_notify.inc.php: $web_config = $app->getconf->get_server_config($conf['server_id'], 'web'); +300-quota_notify.inc.php: if ($app->dbmaster == $app->db) { +300-quota_notify.inc.php: $global_config = $app->getconf->get_global_config('mail'); +300-quota_notify.inc.php: $records = $app->db->queryAllRecords($sql); +300-quota_notify.inc.php: $tmp = $app->db->queryOneRecord("SELECT SUM(traffic_bytes) As total_traffic_bytes FROM web_traffic WHERE traffic_date like '$current_month%' AND hostname = '$domain'"); +300-quota_notify.inc.php: $app->dbmaster->datalogUpdate('web_domain', array("traffic_quota_lock" => 'y', "active" => 'n'), 'domain_id', $rec['domain_id']); +300-quota_notify.inc.php: $app->log('Traffic quota for '.$rec['domain'].' exceeded. Disabling website.', LOGLEVEL_DEBUG); +300-quota_notify.inc.php: $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); +300-quota_notify.inc.php: $app->dbmaster->datalogUpdate('web_domain', array("traffic_quota_lock" => 'n', "active" => 'y'), 'domain_id', $rec['domain_id']); +300-quota_notify.inc.php: $app->log('Traffic quota for '.$rec['domain'].' ok again. Re-enabling website.', LOGLEVEL_DEBUG); +300-quota_notify.inc.php: if ($app->dbmaster == $app->db) { +300-quota_notify.inc.php: $global_config = $app->getconf->get_global_config('mail'); +300-quota_notify.inc.php: $records = $app->db->queryAllRecords($sql); +300-quota_notify.inc.php: $tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'harddisk_quota' ORDER BY created DESC"); +300-quota_notify.inc.php: $monitor_data = array_merge_recursive($monitor_data, unserialize($app->db->unquote($tmp_mon['data']))); +300-quota_notify.inc.php: if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('web_domain', array("last_quota_notification" => null), 'domain_id', $rec['domain_id']); +300-quota_notify.inc.php: $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); +300-quota_notify.inc.php: $app->dbmaster->datalogUpdate('web_domain', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'domain_id', $rec['domain_id']); +300-quota_notify.inc.php: $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); +300-quota_notify.inc.php: if ($app->dbmaster == $app->db) { +300-quota_notify.inc.php: $global_config = $app->getconf->get_global_config('mail'); +300-quota_notify.inc.php: $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); +300-quota_notify.inc.php: $records = $app->db->queryAllRecords($sql); +300-quota_notify.inc.php: $tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'email_quota' ORDER BY created DESC"); +300-quota_notify.inc.php: //$monitor_data = array_merge_recursive($monitor_data,unserialize($app->db->unquote($tmp_mon['data']))); +300-quota_notify.inc.php: $tmp_array = unserialize($app->db->unquote($tmp_mon['data'])); +300-quota_notify.inc.php: if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('mail_user', array("last_quota_notification" => null), 'mailuser_id', $rec['mailuser_id']); +300-quota_notify.inc.php: $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); +300-quota_notify.inc.php: $app->dbmaster->datalogUpdate('mail_user', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'mailuser_id', $rec['mailuser_id']); +300-quota_notify.inc.php: $client = $app->db->queryOneRecord("SELECT client.email FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id); +300-quota_notify.inc.php: if ($app->dbmaster == $app->db) { +300-quota_notify.inc.php: $global_config = $app->getconf->get_global_config('mail'); +300-quota_notify.inc.php: $tmp_rec = $app->db->queryAllRecords("SELECT data from monitor_data WHERE type = 'database_size' ORDER BY created DESC"); +300-quota_notify.inc.php: $tmp_array = unserialize($app->db->unquote($tmp_mon['data'])); +300-quota_notify.inc.php: $database_records = $app->db->queryAllRecords("SELECT database_id,sys_groupid,database_name,database_quota,last_quota_notification,DATEDIFF(CURDATE(), last_quota_notification) as `notified_before` FROM web_database"); +300-quota_notify.inc.php: $client = $app->db->queryOneRecord("SELECT client.username, client.email FROM web_database, sys_group, client WHERE web_database.sys_groupid = sys_group.groupid AND sys_group.client_id = client.client_id AND web_database.database_name=?", $database); +300-quota_notify.inc.php: $app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => array("SQL" => "CURDATE()")), 'database_id', $rec['database_id']); +300-quota_notify.inc.php: '{used}' => $app->functions->formatBytes($monitor['size']), +300-quota_notify.inc.php: '{quota}' => $app->functions->formatBytes($quota), +300-quota_notify.inc.php: if($rec['last_quota_notification']) $app->dbmaster->datalogUpdate('web_database', array("last_quota_notification" => null), 'database_id', $rec['database_id']); +300-quota_notify.inc.php: '{used}' => $app->functions->formatBytes($monitor['size']), +300-quota_notify.inc.php: '{quota}' => $app->functions->formatBytes($quota), +400-openvz.inc.php: if ($app->dbmaster == $app->db) { +400-openvz.inc.php: $records = $app->db->queryAllRecords($sql); +400-openvz.inc.php: $app->dbmaster->datalogUpdate('openvz_vm', array("active" => 'n'), 'vm_id', $rec['vm_id']); +400-openvz.inc.php: $app->log('Virtual machine active date expired. Disabling VM '.$rec['veid'], LOGLEVEL_DEBUG); +500-backup.inc.php: $app->load("backup"); +500-backup_mail.inc.php: $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); +500-backup_mail.inc.php: $mail_config = $app->getconf->get_server_config($conf['server_id'], 'mail'); +500-backup_mail.inc.php: $global_config = $app->getconf->get_global_config('sites'); +500-backup_mail.inc.php: if( $server_config['backup_dir_is_mount'] == 'y' && !$app->system->mount_backup_dir($backup_dir) ) $run_backups = false; +500-backup_mail.inc.php: $records = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ? AND maildir != ''", intval($conf['server_id'])); +500-backup_mail.inc.php: if($app->system->is_installed('pigz')) { +500-backup_mail.inc.php: $domain_rec=$app->db->queryOneRecord("SELECT * FROM mail_domain WHERE domain = ?", $domain); +500-backup_mail.inc.php: $webdomain = $app->db->queryOneRecord($sql, $domain_rec['domain']); +500-backup_mail.inc.php: $webdomain = $app->db->queryOneRecord($sql, $webdomain['parent_domain_id']); +500-backup_mail.inc.php: $app->system->exec_safe("su -c ?", 'dsync backup -u "'.$rec["email"].'" mdbox:' . $this->tmp_backup_dir . '/backup'); +500-backup_mail.inc.php: $app->system->exec_safe('cd ? && zip ? -b ? -r backup > /dev/null && rm -rf backup', $this->tmp_backup_dir, $mail_backup_dir.'/'.$mail_backup_file, $backup_tmp); +500-backup_mail.inc.php: $retval = $app->system->last_exec_retcode(); +500-backup_mail.inc.php: $app->system->exec_safe('tar pcf - --directory ? backup | pigz > ? && rm -rf ?', $this->tmp_backup_dir, $mail_backup_dir.'/'.$mail_backup_file, $this->tmp_backup_dir.'/backup'); +500-backup_mail.inc.php: $retval = $app->system->last_exec_retcode(); +500-backup_mail.inc.php: $app->system->exec_safe('tar pczf ? --directory ? backup && rm -rf ?', $mail_backup_dir.'/'.$mail_backup_file, $this->tmp_backup_dir, $this->tmp_backup_dir.'/backup'); +500-backup_mail.inc.php: $retval = $app->system->last_exec_retcode(); +500-backup_mail.inc.php: $app->system->exec_safe('rm -rf ?', $this->tmp_backup_dir . '/backup'); +500-backup_mail.inc.php: $app->system->exec_safe('cd ? && zip ? -b ? -r ? > /dev/null', $domain_dir, $mail_backup_dir.'/'.$mail_backup_file, $backup_tmp, $source_dir); +500-backup_mail.inc.php: $retval = $app->system->last_exec_retcode(); +500-backup_mail.inc.php: $app->system->exec_safe('tar pcf - --directory ? ? | pigz > ?', $domain_dir, $source_dir, $mail_backup_dir.'/'.$mail_backup_file); +500-backup_mail.inc.php: $app->system->exec_safe('tar pczf ? --directory ? ?', $mail_backup_dir.'/'.$mail_backup_file, $domain_dir, $source_dir); +500-backup_mail.inc.php: $retval = $app->system->last_exec_retcode(); +500-backup_mail.inc.php: $app->db->query($sql, $conf['server_id'], $domain_rec['domain_id'], $rec['mailuser_id'], $backup_mode, time(), $mail_backup_file, $filesize); +500-backup_mail.inc.php: if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $domain_rec['domain_id'], $rec['mailuser_id'], $backup_mode, time(), $mail_backup_file, $filesize); +500-backup_mail.inc.php: $app->system->exec_safe('rm -rf ?', $rec['maildir'] . '/backup'); +500-backup_mail.inc.php: $app->log($mail_backup_file.' NOK:'.implode('',$tmp_output), LOGLEVEL_WARN); +500-backup_mail.inc.php: $app->db->query($sql, $conf['server_id'], $domain_rec['domain_id'], $files[$n]); +500-backup_mail.inc.php: if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $domain_rec['domain_id'], $files[$n]); +500-backup_mail.inc.php: $app->db->query($sql, $conf['server_id'], $domain_rec['domain_id'], $rec['mailuser_id']); +500-backup_mail.inc.php: if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $domain_rec['domain_id'], $rec['mailuser_id']); +500-backup_mail.inc.php: $backups = $app->db->queryAllRecords("SELECT * FROM mail_backup WHERE server_id = ?", $conf['server_id']); +500-backup_mail.inc.php: $app->db->query($sql, $conf['server_id'], $backup['parent_domain_id'], $backup['filename']); +500-backup_mail.inc.php: if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $backup['parent_domain_id'], $backup['filename']); +500-backup_mail.inc.php: if( $server_config['backup_dir_is_mount'] == 'y' ) $app->system->umount_backup_dir($backup_dir); +500-clean_mailboxes.inc.php: $records = $app->db->queryAllRecords("SELECT email, maildir, purge_trash_days, purge_junk_days FROM mail_user WHERE maildir_format = 'maildir' AND disableimap = 'n' AND server_id = ? AND (purge_trash_days > 0 OR purge_junk_days > 0)", $server_id); +500-clean_mailboxes.inc.php: $app->system->exec_safe($purge_cmd.intval($email['purge_trash_days']).'d', $email['email'], $trash); +500-clean_mailboxes.inc.php: $app->system->exec_safe($purge_cmd.intval($email['purge_junk_days']).'d', $email['email'], $junk); +500-clean_mailboxes.inc.php: $app->system->exec_safe($recalc_cmd, $email['email']); +550-bind_dnssec.inc.php: $serial_date = $app->functions->intval(substr($serial, 0, 8)); +550-bind_dnssec.inc.php: $count = $app->functions->intval(substr($serial, 8, 2)); +550-bind_dnssec.inc.php: if($app->db->dbHost != $app->dbmaster->dbHost) return; +550-bind_dnssec.inc.php: $app->uses("getconf,tpl"); +550-bind_dnssec.inc.php:// $dns_config = $app->getconf->get_server_config($conf["server_id"], 'dns'); +550-bind_dnssec.inc.php:// $soas = $app->db->queryAllRecords("SELECT id,serial,origin FROM dns_soa WHERE server_id = ? AND active= 'Y' AND dnssec_wanted = 'Y' AND dnssec_initialized = 'Y' AND (dnssec_last_signed < ? OR dnssec_last_signed > ?)", $conf['server_id'], time()-(3600*24*5)+900, time()+900); //Resign zones every 5 days (expiry is 16 days so we have enough safety, 15 minutes tolerance) +550-bind_dnssec.inc.php: $soas = $app->db->queryAllRecords("SELECT id,serial,origin FROM dns_soa WHERE active= 'Y' AND dnssec_wanted = 'Y' AND dnssec_initialized = 'Y' AND (dnssec_last_signed < ? OR dnssec_last_signed > ?)", time()-(3600*24*5)+900, time()+900); //Resign zones every 5 days (expiry is 16 days so we have enough safety, 15 minutes tolerance) +550-bind_dnssec.inc.php: $app->log('DNSSEC Auto-Resign: Touching zone '.$domain, LOGLEVEL_DEBUG); +550-bind_dnssec.inc.php: $app->db->datalogUpdate('dns_soa', array("serial" => $this->increase_serial($data['serial'])), 'id', $data['id']); +600-cleanup.inc.php: $records = $app->db->queryAllRecords("SELECT s.instance_id, s.name, s.value FROM `aps_instances_settings` as s INNER JOIN `aps_instances` as i ON (i.id = s.instance_id) WHERE s.value != '' AND s.name IN ('main_database_password', 'admin_password') AND i.instance_status > 1"); +600-cleanup.inc.php: $tmp = $app->db->queryOneRecord("SELECT id FROM aps_instances_settings WHERE instance_id = ? AND name = ?", $rec['instance_id'], $rec['name']); +600-cleanup.inc.php: $app->db->datalogUpdate('aps_instances_settings', array("value" => ''), 'id', $tmp['id']); +600-purge_mailboxes.inc.php: $records = $app->db->queryAllRecords($sql, $server_id); +600-purge_mailboxes.inc.php: $app->system->exec_safe("su -c ?", 'doveadm purge -u "' . $rec["email"] . '"'); +900-letsencrypt.inc.php: $app->modules->loadModules('web_module'); +900-letsencrypt.inc.php: $server_config = $app->getconf->get_server_config($conf['server_id'], 'server'); +900-letsencrypt.inc.php: $acme = $app->letsencrypt->get_acme_script(); +900-letsencrypt.inc.php: $letsencrypt = $app->letsencrypt->get_certbot_script(); +900-letsencrypt.inc.php: $app->services->restartServiceDelayed('httpd', 'force-reload'); +900-letsencrypt.inc.php: $app->system->exec_safe($letsencrypt . ' -n renew --post-hook ?', $cmd); +900-letsencrypt.inc.php: $app->services->restartServiceDelayed('httpd', 'force-reload'); +900-letsencrypt.inc.php: $app->services->restartServiceDelayed('httpd', 'force-reload'); +900-letsencrypt.inc.php: $app->log('Migration mode active, not running Let\'s Encrypt renewal.', LOGLEVEL_DEBUG); diff --git a/server/lib/classes/cron.d/system- b/server/lib/classes/cron.d/system- new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391