function mainwp_cronbackups_action() { MainWPLogger::Instance()->info('CRON :: backups'); @ignore_user_abort(true); @set_time_limit(0); $mem = '512M'; @ini_set('memory_limit', $mem); @ini_set('max_execution_time', 0); MainWPUtility::update_option('mainwp_cron_last_backups', time()); //Do cronjobs! //Config this in crontab: 0 0 * * * wget -q http://mainwp.com/wp-admin/?do=cron -O /dev/null 2>&1 //this will execute once every day to check to do the scheduled backups $allTasks = array(); $dailyTasks = MainWPDB::Instance()->getBackupTasksTodoDaily(); if (count($dailyTasks) > 0) { $allTasks = $dailyTasks; } $weeklyTasks = MainWPDB::Instance()->getBackupTasksTodoWeekly(); if (count($weeklyTasks) > 0) { $allTasks = array_merge($allTasks, $weeklyTasks); } $monthlyTasks = MainWPDB::Instance()->getBackupTasksTodoMonthly(); if (count($monthlyTasks) > 0) { $allTasks = array_merge($allTasks, $monthlyTasks); } MainWPLogger::Instance()->debug('CRON :: backups :: Found ' . count($allTasks) . ' to start.'); foreach ($allTasks as $task) { MainWPLogger::Instance()->debug('CRON :: backups :: Task: ' . $task->name); } foreach ($allTasks as $task) { $threshold = 0; if ($task->schedule == 'daily') { $threshold = 60 * 60 * 24; } else { if ($task->schedule == 'weekly') { $threshold = 60 * 60 * 24 * 7; } else { if ($task->schedule == 'monthly') { $threshold = 60 * 60 * 24 * 30; } } } $task = MainWPDB::Instance()->getBackupTaskById($task->id); if (time() - $task->last_run < $threshold) { continue; } if (!MainWPManageBackups::validateBackupTasks(array($task))) { $task = MainWPDB::Instance()->getBackupTaskById($task->id); } $chunkedBackupTasks = get_option('mainwp_chunkedBackupTasks'); MainWPManageBackups::executeBackupTask($task, $chunkedBackupTasks != 0 ? 5 : 0); } }