5863592f546909b7663d64373daf5f2a9b81befe
[moodle.git] / auth / db / cli / sync_users.php
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19  * Extdb user sync script.
20  *
21  * This script is meant to be called from a system cronjob to
22  * sync moodle user accounts with external database.
23  * It is required when using internal passwords (== passwords not defined in external database).
24  *
25  * Sample cron entry:
26  * # 5 minutes past 4am
27  * 5 4 * * * $sudo -u www-data /usr/bin/php /var/www/moodle/auth/db/cli/sync_users.php
28  *
29  * Notes:
30  *   - it is required to use the web server account when executing PHP CLI scripts
31  *   - you need to change the "www-data" to match the apache user account
32  *   - use "su" if "sudo" not available
33  *   - If you have a large number of users, you may want to raise the memory limits
34  *     by passing -d memory_limit=256M
35  *   - For debugging & better logging, you are encouraged to use in the command line:
36  *     -d log_errors=1 -d error_reporting=E_ALL -d display_errors=0 -d html_errors=0
37  *
38  * Performance notes:
39  * + The code is simpler, but not as optimized as its LDAP counterpart.
40  *
41  * @package    auth
42  * @subpackage db
43  * @copyright  2006 Martin Langhoff
44  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
45  */
47 define('CLI_SCRIPT', true);
49 require(dirname(dirname(dirname(dirname(__FILE__)))).'/config.php');
50 require_once($CFG->dirroot.'/course/lib.php');
52 if (!is_enabled_auth('db')) {
53     echo "Plugin not enabled!";
54     die;
55 }
57 $dbauth = get_auth_plugin('db');
58 $dbauth->sync_users(true);