function ALL_STATUS($aspid = false)
{
    $unix = new unix();
    if ($GLOBALS["VERBOSE"]) {
        $cmdline_verbose = " --verbose";
        $GLOBALS["OUTPUT"] = true;
    }
    if (!$aspid) {
        $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid";
        $pid = $unix->get_pid_from_file($pidfile);
        if ($unix->process_exists($pid, basename(__FILE__))) {
            $time = $unix->PROCCESS_TIME_MIN($pid);
            if ($GLOBALS["OUTPUT"]) {
                echo "Stopping......: " . date("H:i:s") . "Already `task` running PID {$pid} since {$time}mn\n";
            }
            system_admin_events("stop_squid::Already task running PID {$pid} since {$time}mn", __FUNCTION__, __FILE__, __LINE__, "proxy");
            return;
        }
        @file_put_contents($pidfile, getmypid());
    }
    build_progress_status("verify_var_log()", 2);
    verify_var_log();
    squeezer();
    build_progress_status("squid_stores_status()", 5);
    squid_stores_status();
    build_progress_status("squid_mem_status()", 8);
    squid_mem_status();
    build_progress_status("squid_memory_monitor()", 9);
    squid_memory_monitor();
    build_progress_status("bandwith_stats_today()", 9);
    bandwith_stats_today();
    build_progress_status("squid_cache_mem_current()", 9);
    squid_cache_mem_current();
    build_progress_status("redirectors_array()", 9);
    redirectors_array();
    $php5 = $unix->LOCATE_PHP5_BIN();
    build_progress_status("CheckGlobalInfos()", 10);
    CheckGlobalInfos();
    build_progress_status("CheckRequestsStats()", 15);
    CheckRequestsStats();
    build_progress_status("ALLKIDS()", 20);
    ALLKIDS();
    build_progress_status("C_ICAP_CLIENTS()", 22);
    C_ICAP_CLIENTS();
    build_progress_status("squid_stores_status()", 30);
    squid_stores_status();
    build_progress_status("{caches_center} {status}", 30);
    cache_center_status();
    if ($GLOBALS["FORCE"]) {
        build_progress_status("CacheInfos()", 50);
        system("{$php5} /usr/share/artica-postfix/exec.squid.php --cache-infos --force{$cmdline_verbose}");
        build_progress_status("{caches_center}", 60);
        system("{$php5} " . __FILE__ . " --caches-center --force{$cmdline_verbose}");
    }
    build_progress_status("Done...", 100);
}
Example #2
0
function remove_database($allprocedure = false)
{
    $unix = new unix();
    $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid";
    if ($allprocedure) {
        $pid = $unix->get_pid_from_file($pidfile);
        if ($unix->process_exists($pid, basename(__FILE__))) {
            $time = $unix->PROCCESS_TIME_MIN($pid);
            build_progress_status(100, "Already task running PID {$pid}");
            if ($GLOBALS["OUTPUT"]) {
                echo "Stopping......: " . date("H:i:s") . " [INIT]: Already task running PID {$pid} since {$time}mn\n";
            }
            return;
        }
    }
    $mysql = $unix->find_program("mysql");
    $rm = $unix->find_program("rm");
    $sock = new sockets();
    build_progress_status(2, "Stopping monitor");
    shell_exec("/etc/init.d/monit stop");
    shell_exec("/etc/init.d/artica-status stop --force");
    shell_exec("/etc/init.d/postfix-logger stop");
    build_progress_status(5, "Removing MySQL Zarafa Database");
    WriteToSyslogMail("Action: Removing Zarafa Database MySQL client `{$mysql}`....", __FILE__);
    $cmd = "{$mysql} --socket=/var/run/mysqld/zarafa-db.sock --protocol=socket --user=root --batch --debug-info --database=zarafa --execute=\"DROP DATABASE zarafa\" 2>&1";
    $results = array();
    exec("{$cmd}", $results);
    $WORKDIR = $sock->GET_INFO("ZarafaDedicateMySQLWorkDir");
    if ($WORKDIR == null) {
        $WORKDIR = "/home/zarafa-db";
    }
    while (list($num, $ligne) = each($results)) {
        echo WriteToSyslogMail("MySQL: (Delete Database) {$ligne}", __FILE__);
    }
    build_progress_status(10, "Removing Zarafa Database MySQL");
    if (is_dir("{$WORKDIR}")) {
        recursive_remove_directory("{$WORKDIR}");
    }
    WriteToSyslogMail("Action: Restarting MySQL service...", __FILE__);
    WriteToSyslogMail("Action: Stopping MySQL service...", __FILE__);
    build_progress_status(15, "Stopping MySQL Zarafa Database");
    build_progress_status(40, "Stopping Zarafa Server service");
    WriteToSyslogMail("Action: Stopping Zarafa server...", __FILE__);
    @unlink("/tmp/zarafa-upgrade-lock");
    system("/etc/init.d/zarafa-server stop --kill");
    stop(true);
    WriteToSyslogMail("Action: Starting MySQL service (InnoDB recovery mode)...", __FILE__);
    build_progress_status(20, "Starting MySQL Zarafa Database (InnoDB recovery mode)");
    start(true, true);
    while (list($num, $ligne) = each($results)) {
        echo "Service: {$ligne}\n";
    }
    sleep(5);
    $ZARAFADB_PID = ZARAFADB_PID();
    if (!$unix->process_exists($ZARAFADB_PID)) {
        build_progress_status(110, "{failed}");
        return;
    }
    if ($allprocedure) {
        build_progress_status(25, "Restarting MySQL service (normal)");
        echo "Action: Restarting MySQL service...\n";
        echo "Action: Stopping MySQL service...\n";
        build_progress_status(30, "Stopping MySQL service (normal)");
        stop(true);
        echo "Action: Starting MySQL service (InnoDB normal mode)...\n";
        build_progress_status(35, "Starting MySQL service (normal)");
        start(true, false);
        while (list($num, $ligne) = each($results)) {
            echo "Service: {$ligne}\n";
        }
        sleep(5);
        $ZARAFADB_PID = ZARAFADB_PID();
        if (!$unix->process_exists($ZARAFADB_PID)) {
            build_progress_status(110, "{failed}");
            return;
        }
    }
    build_progress_status(40, "Stopping Zarafa Server service");
    WriteToSyslogMail("Action: Stopping Zarafa server...", __FILE__);
    @unlink("/tmp/zarafa-upgrade-lock");
    system("/etc/init.d/zarafa-server stop --kill");
    $pid = XZARAFA_SERVER_PID();
    if ($unix->process_exists($pid)) {
        $kill = $unix->find_program("kill");
        unix_system_kill_force($pid);
    }
    build_progress_status(43, "Starting monitors");
    shell_exec("/etc/init.d/monit start");
    shell_exec("/etc/init.d/artica-status start");
    shell_exec("/etc/init.d/postfix-logger start");
    build_progress_status(45, "Restarting Zarafa Server service");
    WriteToSyslogMail("Action: Restarting Zarafa server...", __FILE__);
    shell_exec("/etc/init.d/zarafa-server restart");
    WriteToSyslogMail("Action: sleeping 5s", __FILE__);
    sleep(5);
    build_progress_status(50, "Restarting Zarafa Server service");
    WriteToSyslogMail("Action: Restarting Zarafa server...", __FILE__);
    system("/etc/init.d/zarafa-server restart");
    build_progress_status(60, "Checking DB size");
    databasesize(true);
    build_progress_status(100, "{finish}");
}
function ALL_STATUS($aspid = false)
{
    if (is_file("/usr/bin/cgclassify")) {
        if (is_dir("/cgroups/blkio/php")) {
            shell_exec("/usr/bin/cgclassify -g cpu,cpuset,blkio:php " . getmypid());
        }
    }
    $unix = new unix();
    if (!is_file("/usr/sbin/mgr-info")) {
        $ln = $unix->find_program("ln");
        shell_exec("{$ln} -sf " . dirname(__FILE__) . "/exec.cmdline.squid.cache.mem.php /usr/sbin/mgr-info");
        @chmod(dirname(__FILE__) . "/exec.cmdline.squid.cache.mem.php", 0755);
    }
    if ($GLOBALS["VERBOSE"]) {
        $cmdline_verbose = " --verbose";
        $GLOBALS["OUTPUT"] = true;
    }
    if (!$aspid) {
        $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid";
        $pid = $unix->get_pid_from_file($pidfile);
        if ($unix->process_exists($pid, basename(__FILE__))) {
            $time = $unix->PROCCESS_TIME_MIN($pid);
            if ($GLOBALS["OUTPUT"]) {
                echo "Stopping......: " . date("H:i:s") . "Already `task` running PID {$pid} since {$time}mn\n";
            }
            system_admin_events("stop_squid::Already task running PID {$pid} since {$time}mn", __FUNCTION__, __FILE__, __LINE__, "proxy");
            return;
        }
        @file_put_contents($pidfile, getmypid());
    }
    build_progress_status("verify_var_log()", 2);
    verify_var_log();
    squeezer();
    build_progress_status("squid_stores_status()", 5);
    squid_stores_status();
    build_progress_status("squid_mem_status()", 8);
    squid_mem_status();
    build_progress_status("squid_memory_monitor()", 9);
    squid_memory_monitor();
    build_progress_status("bandwith_stats_today()", 9);
    bandwith_stats_today();
    build_progress_status("squid_cache_mem_current()", 9);
    squid_cache_mem_current();
    build_progress_status("redirectors_array()", 9);
    redirectors_array();
    build_progress_status("CATEGORIES_SERVICE()", 9);
    CATEGORIES_SERVICE();
    build_progress_status("dev_shm()", 9);
    dev_shm();
    build_progress_status("DisableGoogleSSL()", 9);
    DisableGoogleSSL();
    build_progress_status("CHECK_WIFIDOG_IPTABLES_RULES()", 9);
    CHECK_WIFIDOG_IPTABLES_RULES();
    build_progress_status("taskset()", 9);
    taskset();
    build_progress_status("CRON_NECESSARIES()", 9);
    CRON_NECESSARIES();
    build_progress_status("import_old_logs()", 9);
    import_old_logs();
    $php5 = $unix->LOCATE_PHP5_BIN();
    build_progress_status("CheckGlobalInfos()", 10);
    CheckGlobalInfos();
    build_progress_status("ALLKIDS()", 20);
    ALLKIDS();
    build_progress_status("C_ICAP_CLIENTS()", 22);
    C_ICAP_CLIENTS();
    build_progress_status("squid_stores_status()", 30);
    squid_stores_status();
    build_progress_status("{caches_center} {status}", 30);
    cache_center_status();
    eCapClamav();
    squid_conx();
    if ($GLOBALS["FORCE"]) {
        build_progress_status("CacheInfos()", 50);
        system("{$php5} /usr/share/artica-postfix/exec.squid.php --cache-infos --force --verbose");
        build_progress_status("{caches_center}", 60);
        system("{$php5} " . __FILE__ . " --caches-center --force{$cmdline_verbose}");
    }
    build_progress_status("Done...", 100);
}