123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- // This file is part of Moodle - http://moodle.org/
- //
- // Moodle is free software: you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation, either version 3 of the License, or
- // (at your option) any later version.
- //
- // Moodle is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
- //
- // You should have received a copy of the GNU General Public License
- // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
- /**
- * Automated backups CLI cron
- *
- * This script executes
- *
- * @package core
- * @subpackage cli
- * @copyright 2010 Sam Hemelryk
- * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- */
- define('CLI_SCRIPT', true);
- require(__DIR__.'/../../config.php');
- require_once($CFG->libdir.'/clilib.php'); // cli only functions
- require_once($CFG->libdir.'/cronlib.php');
- // now get cli options
- list($options, $unrecognized) = cli_get_params(array('help'=>false),
- array('h'=>'help'));
- if ($unrecognized) {
- $unrecognized = implode("\n ", $unrecognized);
- cli_error(get_string('cliunknowoption', 'admin', $unrecognized));
- }
- if ($options['help']) {
- $help =
- "Execute automated backups.
- This script executes automated backups completely and is designed to be
- called via cron.
- Options:
- -h, --help Print out this help
- Example:
- \$sudo -u www-data /usr/bin/php admin/cli/automated_backups.php
- ";
- echo $help;
- die;
- }
- if (CLI_MAINTENANCE) {
- echo "CLI maintenance mode active, backup execution suspended.\n";
- exit(1);
- }
- if (moodle_needs_upgrading()) {
- echo "Moodle upgrade pending, backup execution suspended.\n";
- exit(1);
- }
- require_once($CFG->libdir.'/adminlib.php');
- require_once($CFG->libdir.'/gradelib.php');
- if (!empty($CFG->showcronsql)) {
- $DB->set_debug(true);
- }
- if (!empty($CFG->showcrondebugging)) {
- set_debugging(DEBUG_DEVELOPER, true);
- }
- $starttime = microtime();
- /// emulate normal session
- cron_setup_user();
- /// Start output log
- $timenow = time();
- mtrace("Server Time: ".date('r',$timenow)."\n\n");
- // Run automated backups if required.
- require_once($CFG->dirroot.'/backup/util/includes/backup_includes.php');
- require_once($CFG->dirroot.'/backup/util/helper/backup_cron_helper.class.php');
- backup_cron_automated_helper::run_automated_backup(backup_cron_automated_helper::RUN_IMMEDIATELY);
- mtrace("Automated cron backups completed correctly");
- $difftime = microtime_diff($starttime, microtime());
- mtrace("Execution took ".$difftime." seconds");
|