function start() { if ($GLOBALS["VERBOSE"]) { echo "Starting....\n"; } $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $unix = new unix(); $pid = $unix->get_pid_from_file($pidfile); if ($unix->process_exists($pid, basename(__FILE__))) { ufdbguard_admin_events("already {$pid} pid exists in memory, aborting", __FUNCTION__, __FILE__, __LINE__, "backup"); return; } @file_put_contents($pidfile, getmypid()); LoadParams(); if ($GLOBALS["EnableBackup"] == 0) { ufdbguard_admin_events("Backup database statistics is currently disabled, remove this task in this case...", __FUNCTION__, __FILE__, __LINE__, "backup"); return; } $DaysbackupOlder = $GLOBALS["DaysbackupOlder"]; $workdir = $GLOBALS["WORKDIR"]; $q = new mysql_squid_builder(); $sql = "SELECT tablename,zDate,DATE_FORMAT(zDate,'%Y%m%d') AS suffix FROM tables_day WHERE backuped=0 AND zDate<DATE_SUB(NOW(),INTERVAL {$DaysbackupOlder} DAY) ORDER BY zDate"; echo $sql . "\n"; $workdir = $SquidBackupStats["workdir"]; @mkdir($workdir, 0755, true); if (!is_dir($workdir)) { ufdbguard_admin_events("{$workdir}, permission denied...", __FUNCTION__, __FILE__, __LINE__, "backup"); return; } $results = $q->QUERY_SQL($sql); if (!$q->ok) { ufdbguard_admin_events("Fatal, {$q->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "backup"); return; } $GLOBALS["TABLECOUNT"] = 0; $GLOBALS["BACKUPED_SIZE"] = 0; while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) { if ($GLOBALS["VERBOSE"]) { echo "To backup {$ligne["tablename"]}\n"; } $filename = "{$workdir}/{$ligne["tablename"]}.gz"; if (is_file($filename)) { @unlink($filename); } if (!$q->TABLE_EXISTS($ligne["tablename"])) { continue; } if (!backupTable($ligne["tablename"], $filename)) { continue; } $filesize = $unix->file_size($filename); $GLOBALS["BACKUPED_SIZE"] = $GLOBALS["BACKUPED_SIZE"] + $filesize; $GLOBALS["TABLECOUNT"]++; if ($GLOBALS["VERBOSE"]) { echo "{$filename} ({$filesize})\n"; } $q->QUERY_SQL("UPDATE tables_day SET backuped=1 WHERE tablename='{$ligne["tablename"]}'"); if (!$q->ok) { ufdbguard_admin_events("Fatal, MySQL error {$q->mysql_error} on tables_day", __FUNCTION__, __FILE__, __LINE__, "backup"); return; } if (system_is_overloaded(basename(__FILE__))) { sleep(15); if (system_is_overloaded(__FILE__)) { sleep(10); if (system_is_overloaded(__FILE__)) { sleep(5); } } } if (system_is_overloaded(basename(__FILE__))) { ufdbguard_admin_events("Fatal, Overloaded system, aborting task and restart in newt cycle...", __FUNCTION__, __FILE__, __LINE__, "backup"); if ($GLOBALS["TABLECOUNT"] > 0) { $GLOBALS["BACKUPED_SIZET"] = FormatBytes($GLOBALS["BACKUPED_SIZE"] / 1024); ufdbguard_admin_events("Success backuped {$GLOBALS["TABLECOUNT"]} tables {$GLOBALS["BACKUPED_SIZET"]} added in backuped directory", __FUNCTION__, __FILE__, __LINE__, "backup"); return; } return; } } days_visited(); week_visited(); month_visited(); $took = $unix->distanceOfTimeInWords($t, time()); if ($GLOBALS["TABLECOUNT"] > 0) { $GLOBALS["BACKUPED_SIZET"] = FormatBytes($GLOBALS["BACKUPED_SIZE"] / 1024); ufdbguard_admin_events("Success backuped {$GLOBALS["TABLECOUNT"]} tables {$GLOBALS["BACKUPED_SIZET"]} added in backuped directory took:{$took}", __FUNCTION__, __FILE__, __LINE__, "backup"); return; } }
} include_once dirname(__FILE__) . '/ressources/class.templates.inc'; include_once dirname(__FILE__) . '/framework/class.unix.inc'; include_once dirname(__FILE__) . '/ressources/class.os.system.inc'; include_once dirname(__FILE__) . '/ressources/class.mysql.dump.inc'; include_once dirname(__FILE__) . "/framework/frame.class.inc"; if ($argv[1] == "--visited") { days_visited(); exit; } if ($argv[1] == "--week") { week_visited(); exit; } if ($argv[1] == "--month") { month_visited(); exit; } start(); function start() { if ($GLOBALS["VERBOSE"]) { echo "Starting....\n"; } $pidfile = "/etc/artica-postfix/pids/" . basename(__FILE__) . "." . __FUNCTION__ . ".pid"; $pidTime = "/etc/artica-postfix/pids/exec.squid.squeezer.php.start.time"; $unix = new unix(); $pid = $unix->get_pid_from_file($pidfile); if ($unix->process_exists($pid, basename(__FILE__))) { return; }