Пример #1
0
function backup()
{
    $sock = new sockets();
    $unix = new unix();
    $pidTime = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".time";
    $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);
        echo "Starting......: " . date("H:i:s") . " [INIT]: nginx Already Artica task running PID {$pid} since {$time}mn\n";
        return;
    }
    $time = $unix->file_time_min($pidTime);
    if ($time < 60) {
        return;
    }
    @file_put_contents($pidfile, getmypid());
    @unlink($pidTime);
    @file_put_contents($pidTime, getmypid());
    $SargOutputDir = $sock->GET_INFO("SargOutputDir");
    if ($SargOutputDir == null) {
        $SargOutputDir = "/var/www/html/squid-reports";
    }
    $BackupSargUseNas = $sock->GET_INFO("BackupSargUseNas");
    if (!is_numeric($BackupSargUseNas)) {
        $BackupSargUseNas = 0;
    }
    $nice = EXEC_NICE();
    $mount = new mount("/var/log/sarg-exec.log");
    if ($BackupSargUseNas == 0) {
        return;
    }
    $BackupSargNASIpaddr = $sock->GET_INFO("BackupSargNASIpaddr");
    $BackupSargNASFolder = $sock->GET_INFO("BackupSargNASFolder");
    $BackupSargNASUser = $sock->GET_INFO("BackupSargNASUser");
    $BackupSargNASPassword = $sock->GET_INFO("BackupSargNASPassword");
    $mountPoint = "/mnt/BackupSargUseNas";
    if (!$mount->smb_mount($mountPoint, $BackupSargNASIpaddr, $BackupSargNASUser, $BackupSargNASPassword, $BackupSargNASFolder)) {
        sarg_admin_events("SARG: Unable to connect to NAS storage system: {$BackupSargNASUser}@{$BackupSargNASIpaddr}", __FUNCTION__, __FILE__, __LINE__, "sarg");
        return;
    }
    $BackupDir = "{$mountPoint}/sarg";
    @mkdir("{$BackupDir}", 0755);
    if (!is_dir($BackupDir)) {
        if ($GLOBALS["VERBOSE"]) {
            echo "Fatal {$BackupDir} permission denied\n";
        }
        sarg_admin_events("Fatal {$BackupDir} permission denied", __FUNCTION__, __FILE__, __LINE__, "sarg");
        $mount->umount($mountPoint);
        return false;
    }
    $t = time();
    @file_put_contents("{$BackupDir}/{$t}", time());
    if (!is_file("{$BackupDir}/{$t}")) {
        sarg_admin_events("Fatal {$BackupDir} permission denied", __FUNCTION__, __FILE__, __LINE__, "sarg");
        $mount->umount($mountPoint);
        return false;
    }
    @unlink("{$BackupDir}/{$t}");
    $cp = $unix->find_program("cp");
    shell_exec(trim("{$nice} {$cp} -dpR {$SargOutputDir}/* {$BackupDir}/"));
    $mount->umount($mountPoint);
    sarg_admin_events("Copy to {$BackupSargNASIpaddr}/{$BackupSargNASFolder} done", __FUNCTION__, __FILE__, __LINE__, "sarg");
}
Пример #2
0
function CHECK_SARG()
{
    $sock = new sockets();
    $EnableSargGenerator = $sock->GET_INFO("EnableSargGenerator");
    if (!is_numeric($EnableSargGenerator)) {
        $EnableSargGenerator = 0;
    }
    $f[] = "/etc/squid3/sarg-configured-1.8.012202.conf";
    $f[] = "/etc/cron.daily/0sarg.sh";
    $f[] = "/etc/cron.hourly/0sarg.sh";
    $f[] = "/etc/cron.weekly/0sarg.sh";
    $f[] = "/etc/cron.monthly/0sarg.sh";
    $f[] = "/etc/squid3/sarg.conf";
    if ($EnableSargGenerator == 0) {
        while (list($num, $filepath) = each($f)) {
            if (is_file($filepath)) {
                @unlink($filepath);
            }
        }
        return;
    }
    $confifg = true;
    while (list($num, $filepath) = each($f)) {
        if (!is_file($filepath)) {
            $missing = $filepath;
            $confifg = false;
            break;
        }
    }
    if (!$confifg) {
        $unix = new unix();
        $php = $unix->LOCATE_PHP5_BIN();
        sarg_admin_events("Reconfiguring sarg (missing {$missing})", __FUNCTION__, __FILE__, __LINE__);
        squid_admin_mysql(2, "SARG: Reconfiguring sarg", null, __FILE__, __LINE__);
        shell_exec("{$php} " . basename(__FILE__) . "/exec.sarg.php --conf 2>&1");
    }
}