Exemple #1
0
$unix = new unix();
$GLOBALS["CLASS_UNIX"] = $unix;
events("Executed " . @implode(" ", $argv));
$sock = new sockets();
if (!is_dir("/var/log/artica-postfix/artica-squid-events")) {
    @mkdir("/var/log/artica-postfix/artica-squid-events", 644, true);
}
$squidEnableRemoteStatistics = $sock->GET_INFO("squidEnableRemoteStatistics");
if (!is_numeric($squidEnableRemoteStatistics)) {
    $squidEnableRemoteStatistics = 0;
}
if ($squidEnableRemoteStatistics == 1) {
    events("this server is not in charge of statistics...");
    die;
}
if (!ifMustBeExecuted()) {
    if ($GLOBALS["VERBOSE"]) {
        echo "this server is not in charge of statistics (categories repositories or Statistics Appliance) ...\n";
    }
    events("this server is not in charge of statistics (categories repositories or Statistics Appliance) ...");
    die;
}
if ($GLOBALS["VERBOSE"]) {
    echo "LAUNCH: '{$argv[1]}'\n";
}
if ($argv[1] == '--scan-hours') {
    scan_hours();
    die;
}
if ($argv[1] == '--scan-months') {
    scan_months();
Exemple #2
0
function downloads()
{
    if (!ifMustBeExecuted()) {
        return;
    }
    $working_dir = $GLOBALS["working_directory"];
    $unix = new unix();
    $sql = "SELECT * FROM updates_categories WHERE filesize>0";
    $q = new mysql();
    $results = $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo "Fatal error {$sql}\n";
        ufdbguard_admin_events("Fatal: mysql database error while retreive update list {$q->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "update");
        return;
    }
    $num = mysql_num_rows($results);
    echo "{$num} files to check\n";
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        $filename = $ligne["filename"];
        $targetfile = $working_dir . "/" . $filename;
        if (!is_dir(dirname($targetfile))) {
            echo "Creating directory " . dirname($targetfile) . "\n";
            @mkdir(dirname($targetfile), 0755, true);
        }
        if (CheckTargetFile($targetfile, $ligne["filesize"])) {
            echo "{$filename} skipped...\n";
            continue;
        }
        UpdateCategories($filename, 10, "{downloading}", 0);
        $curl = new ccurl("http://www.artica.fr/{$filename}");
        echo "Downloading http://www.artica.fr/{$filename}\n";
        if (!$curl->GetFile($targetfile)) {
            echo "Fatal error downloading http://www.artica.fr/{$filename}\n";
            ufdbguard_admin_events("Fatal: unable to download {$filename}", __FUNCTION__, __FILE__, __LINE__, "update");
            UpdateCategories($filename, 0, "{error}", 0);
            continue;
        }
        if (CheckTargetFile($targetfile, $ligne["filesize"])) {
            UpdateCategories($filename, 20, "{downloaded}", 0);
        }
        echo "{$filename} success...\n";
    }
}
function CoherenceOffiels()
{
    if (!ifMustBeExecuted()) {
        WriteMyLogs("No make sense to execute this script...", __FUNCTION__, __FILE__, __LINE__);
        if ($GLOBALS["VERBOSE"]) {
            echo "No make sense to execute this script...\n";
        }
        die;
    }
    $workdir = "/var/lib/ftpunivtlse1fr";
    $unix = new unix();
    $BASE_URI = "ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib";
    $q = new mysql_squid_builder();
    $table = $q->TLSE_CONVERTION(true);
    $ARRAYSUM_REMOTE = GET_MD5S_REMOTE();
    while (list($database, $articacat) = each($table)) {
        $directory = str_replace("/", "_", $articacat);
        $targetdir = $workdir . "/{$database}";
        if ($GLOBALS["VERBOSE"]) {
            echo __FUNCTION__ . ":: Checking {$targetdir}/domains\n";
        }
        if (!is_file("{$targetdir}/domains")) {
            ufdbguard_admin_events("{$database} is not in disk... download it..", __FUNCTION__, __FILE__, __LINE__, "Toulouse DB");
            update_remote_file($BASE_URI, "{$database}.tar.gz", $ARRAYSUM_REMOTE["{$database}.tar.gz"]);
        }
    }
    reset($table);
    while (list($database, $articacat) = each($table)) {
        $directory = str_replace("/", "_", $articacat);
        $targetdir = $workdir . "/{$directory}";
        $sourcedir = $workdir . "/{$database}";
        @chmod($sourcedir, 0755);
        $unix->chown_func("squid", "squid", $sourcedir);
        if (!is_dir($targetdir)) {
            if ($GLOBALS["VERBOSE"]) {
                echo __FUNCTION__ . ":: Checking {$targetdir} no such directory make symbolic to {$sourcedir}\n";
            }
            shell_exec("ln -sf {$sourcedir} {$targetdir}");
        }
    }
    if (count($GLOBALS["squid_admin_mysql"])) {
        squid_admin_mysql(2, count($GLOBALS["squid_admin_mysql"]) . " Toulouse Databases updated", @implode("\n", $GLOBALS["squid_admin_mysql"]));
        unset($GLOBALS["squid_admin_mysql"]);
    }
}
function week_uris($asPid = false)
{
    if (!ifMustBeExecuted()) {
        ufdbguard_admin_events("Not necessary to execute this task...", __FUNCTION__, __FILE__, __LINE__, "stats");
        return;
    }
    if ($asPid) {
        $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid";
        $pid = @file_get_contents($pidfile);
        $myfile = basename(__FILE__);
        $unix = new unix();
        if ($unix->process_exists($pid, $myfile)) {
            ufdbguard_admin_events("{$pid} already running, aborting", __FUNCTION__, __FILE__, __LINE__, "stats");
            return;
        }
        @file_put_contents($pidfile, getmypid());
    }
    visited_websites_by_day(true);
    if ($GLOBALS["VERBOSE"]) {
        echo "Search tables sources in tables_day\n";
    }
    $sql = "SELECT tablename,DATE_FORMAT( zDate, '%Y%m%d' ) AS tablesource, \n\tDAYOFWEEK(zDate) as DayNumber,WEEK( zDate ) AS tweek, YEAR( zDate ) AS tyear \n\tFROM tables_day WHERE weekdone =0 AND zDate < DATE_SUB( NOW( ) , INTERVAL 1 DAY ) ORDER BY zDate";
    if ($GLOBALS["VERBOSE"]) {
        echo $sql . "\n";
    }
    $unix = new unix();
    $results = $GLOBALS["Q"]->QUERY_SQL($sql);
    if ($GLOBALS["VERBOSE"]) {
        echo "Search tables sources in tables_day:: " . mysql_num_rows($results) . " rows\n";
    }
    if (!$GLOBALS["Q"]->ok) {
        writelogs_squid("Fatal: {$q->mysql_error} on `tables_day`", __FUNCTION__, __FILE__, __LINE__, "stats");
        return false;
    }
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        $week_table = "{$ligne["tyear"]}{$ligne["tweek"]}_week";
        if ($GLOBALS["VERBOSE"]) {
            echo "******\n\nWeek table ->`{$week_table}`\n\n******\n";
        }
        if (!$GLOBALS["Q"]->CreateWeekTable($week_table)) {
            writelogs_squid("Fatal: {$GLOBALS["Q"]->mysql_error} on `{$week_table}` (CREATE)", __FUNCTION__, __FILE__, __LINE__, "stats");
            continue;
        }
        $DayNumber = $ligne["DayNumber"];
        $tablesource = "{$ligne["tablesource"]}_hour";
        if (!$GLOBALS["Q"]->TABLE_EXISTS($tablesource)) {
            if ($GLOBALS["Q"]->TABLE_EXISTS("dansguardian_events_{$ligne["tablesource"]}")) {
                $next_table = $tablesource;
                ufdbguard_admin_events("Create lost day table {$tablesource} from dansguardian_events_{$ligne["tablesource"]}", __FUNCTION__, __FILE__, __LINE__, "stats");
            } else {
                ufdbguard_admin_events("Fatal, lost day table {$tablesource} and lost working table dansguardian_events_{$ligne["tablesource"]}, skipping", __FUNCTION__, __FILE__, __LINE__, "stats");
                continue;
            }
        }
        if ($GLOBALS["VERBOSE"]) {
            echo "_week_uris_perform({$tablesource},{$week_table},{$DayNumber})\n";
        }
        $t = time();
        if (_week_uris_perform($tablesource, $week_table, $DayNumber)) {
            $GLOBALS["Q"]->QUERY_SQL("UPDATE tables_day SET weekdone=1 WHERE tablename='{$ligne["tablename"]}'");
            $took = $unix->distanceOfTimeInWords($t, time(), true);
            writelogs_squid("Success update day Number {$DayNumber} from {$tablesource} to {$week_table} in {$took}", __FUNCTION__, __FILE__, __LINE__, "stats");
        }
    }
    members_central();
    WeekDaysNums();
    youtube_week();
}