Administration en ligne de commande : Différence entre versions

Attention : vous consultez actuellement la documentation dédiée aux versions 2.x de Moodle. La documentation pour les versions 3.x de Moodle est consultable ici : Administration en ligne de commande.

(Catégories de question orphelines)
 
(23 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Traduction}}
+
{{Installation}}== Lancer des scripts en ligne de commande ==
If you have shell access to your web server, you may find various CLI (command line interface) scripts useful during Moodle administration. All command line tools are located in <code>admin/cli/*</code> directory. To avoid problems with access control, you should run them as the owner of the web server process. It is especially important for CLI installation and upgrade as they create new files in moodledata directory and the web server has to have write access to them. In Linux distributions, the user that runs the web server is usually apache or wwrun or httpd or something similar. As a root, you will probably want to execute Moodle CLI scripts like this:
 
  
     $ cd /chemin/vers/votre/moodle/dossier
+
Si vous avez accès en ligne de commande à votre serveur web, différents scripts pourront vous être utiles pour l'administration de Moodle. Les outils d'aministration générale sont situés dans le dossier <code>admin/cli/*</code> ('''CLI''' = ''command line interface''). Les plugins peuvent fournir leurs propres outils en ligne de commande via des scripts situés dans leur propre dossier <code>cli</code>. Par exemple, le script de synchronisation d'inscription par base de donnée enrol_db est situé dans enrol/db/cli/.
     $ sudo -u apache /usr/bin/php admin/cli/somescript.php --params
+
 
 +
Pour éviter des problèmes de contrôle d'accès, ces scripts doivent être lancés sous le nom de l'utilisateur possesseur du processus du serveur web (''apache'', ''www'', ''wwrun'', ''httpd'', etc.). Ceci est particulièrement important pour les tâches d'installation et de mise à jour en ligne de commande, puisque durant ces tâches des fichiers sont créés dans le dossier de données ''moodledata'' et que le serveur web doit y avoir accès en écriture. Si vous êtes connecté en tant que root, vous lancerez donc les scripts ainsi :
 +
 
 +
     $ cd /chemin/vers/votre/dossier/moodle
 +
     $ sudo -u apache /usr/bin/php admin/cli/nom_script.php --parametres
  
 
La plupart des scripts acceptent la paramètre standard --help (ou -h) pour afficher l'aide sur l'utilisation du script, par exemple :
 
La plupart des scripts acceptent la paramètre standard --help (ou -h) pour afficher l'aide sur l'utilisation du script, par exemple :
Ligne 9 : Ligne 12 :
 
     $ sudo -u apache /usr/bin/php admin/cli/install.php --help
 
     $ sudo -u apache /usr/bin/php admin/cli/install.php --help
  
 +
== Mise à jour ==
  
== Installation en ligne de commande ==
+
Moodle peut être mis à jour en ligne de commande. Tout comme pour le script d'installation, il y a pour la mise à jour un mode interactif et un mode non-interactif. Le script ne met pas le site en mode de maintenance. Vous devrez le faire vous-même (en ligne de commande, par exemple). En outre, le script n'effectue aucune sauvegarde (mais si vous lisez cette page, vous avez certainement mis en place vos propres scripts de sauvegarde de moodledata et de la base de données, n'est-ce-pas ?). La commande est la suivante :
  
Depuis Moodle 2.0, Moodle peut-être installé en ligne de commande. Il y a deux modes d'installation. En mode interactif, le scripts d'installation vous demandera toutes les données nécessaires afin de procéder à l'installation correctement. En mode non-interactif, vous devez fournir toutes les données nécessaires comme paramètres du script et le nouveau site sera créé automatiquement. Les paramètres peuvent également être passés en mode interactif, elles seront dans ce cas utilisées comme valeur par défaut durant la session interactive.
+
    $ sudo -u apache /usr/bin/php admin/cli/upgrade.php
  
    $ sudo -u apache /usr/bin/php admin/cli/install.php --lang=fr
+
La mise à jour en CLI est très confortable, notamment en combinaison avec l'utilisation de Git pour télécharger le code source de Moodle (voir [[Git pour administrateurs]]). La procédure ci-dessous montre comment mettre à jour votre site en quelques secondes, tout en préservant vos éventuelles personnalisations locales :
 
 
== Mode de maintenance ==
 
 
 
Pour mettre votre site en mode de maintenant, vous pouvez utiliser :
 
  
 +
    $ cd /var/www/sites/moodle/htdocs/
 
     $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable
 
     $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable
 +
    $ git pull
 +
    $ sudo -u apache /usr/bin/php admin/cli/upgrade.php
 +
    $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable
  
Pour désactiver la maintenance, il suffit d'utiliser plutôt le paramètre --disable
+
== Installation ==
  
== Mode hors ligne ==
+
Moodle peut-être installé en ligne de commande de deux façons différentes. En mode interactif, le script d'installation vous demandera toutes les données nécessaires afin de procéder à l'installation correctement. En mode non-interactif, vous devez fournir toutes les données nécessaires comme paramètres du script et le nouveau site sera créé automatiquement. Les paramètres peuvent également être passés en mode interactif ; ils seront dans ce cas utilisés comme valeur par défaut durant la session interactive.
  
In some situations, you may want to switch your Moodle site into offline mode so that it is not accessible via the web but you can not stop the web server completely (typically because there are other web pages and applications running there). If a file called <code>climaintenance.html</code> exists in the root folder of moodledata directory, Moodle will automatically display the contents of that file instead of any other page.
+
    $ sudo -u apache /usr/bin/php admin/cli/install.php --lang=fr
  
    $ cd /var/www/sites/moodle/moodledata/
+
== Mode de maintenance ==
    $ echo '&lt;h1&gt;Sorry, maintenance in progress&lt;/h1&gt;' &gt; climaintenance.html
 
  
You can prepare a nice formatted HTML page to inform your users about the server being down and keep in the moodledata directory under a name like <code>climaintenance.off</code> and rename it to the <code>climaintenance.html</code> if needed.
+
Pour mettre votre site en mode de maintenance, vous pouvez utiliser :
  
== Mise à jour en ligne de commande ==
+
    $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable
  
Moodle can be upgraded from the command line. As with the installation script, there is either interactive or non-interactive mode of the upgrade. The script itself does not put the site into the maintenance mode, you have to do it on your own. Also, the script does not backup any data (if you read this page, you probably have some own scripts to backup your moodledata and the database, right?)
+
Pour désactiver la maintenance, il suffit d'utiliser plutôt le paramètre --disable
  
    $ sudo -u apache /usr/bin/php admin/cli/upgrade.php --non-interactive
 
 
Upgrading via command line is a very comfortable way of Moodle upgrade if you use [[CVS]] or [[Git|git]] checkout of the Moodle source code. See the following procedure how to upgrade your site within several seconds to the most recent version while preserving your eventual local customizations tracked in git repository:
 
 
    $ cd /var/www/sites/moodle/htdocs/
 
    $ git fetch
 
    $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable
 
    $ git merge origin/cvshead
 
    $ sudo -u apache /usr/bin/php admin/cli/upgrade.php
 
 
     $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable
 
     $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable
  
=== Problèmes avec la mise à jour en ligne de commande ===
+
== Mode hors ligne ==
  
if your config.php contains information about several moodle instances (distinct moodle websites and databases sharing the same codebase), then this script will silently fail
+
Dans certaines situations, vous aurez besoin de mettre votre site Moodle hors ligne en le rendant inaccessible, tout en conservant certaines fonctionnalités, par exemple parce que d'autres pages ou applications web y tournent. Si un fichier du nom de <code>climaintenance.html</code> est placé dans le dossier moodledata tout en haut de la hiérarchie, Moodle affichera automatiquement le contenu de ce fichier au lieu de toute autre page.
  
The solution is to temporarily eliminate from config.php all but the one instance you want to upgrade
+
    $ cd /var/www/sites/moodle/moodledata/
 +
    $ echo '&lt;h1&gt;Désolé, le site Moodle est actuellement en maintenance&lt;/h1&gt;' &gt; climaintenance.html
  
If this is a problem for the other instances (production sites), then modify the cli script to point to a copy of config.php  (which will be the one edited to contain only one moodle instance at a time)
+
Vous pouvez préparer une page HTML avec votre charte graphique pour informer vos utilisateurs que le serveur est temporairement inaccessible et conserver ce fichier dans le dossier moodledata sous un nom comme <code>climaintenance.off</code> et le renommer en <code>climaintenance.html</code> au besoin.
  
== Modification des valeurs par défaut ==
+
== Personnalisation des valeurs par défaut ==
  
Durant l'installation ou la mise à jour en ligne de commande, Moodle défini des variables d'administration à leur valeur par défaut. Vous pouvez utiliser/forcer d'autres valeurs par défaut. Voyez MDL-17850 pour les détails. En résumé, il suffit de créer un fichier <code>local/defaults.php</code> dans votre installation Moodle. Le format de ce fichier est le suivant :
+
Durant l'installation ou la mise à jour en ligne de commande, Moodle définit des variables d'administration à leur valeur par défaut. Vous pouvez définir d'autres valeurs par défaut. Voyez MDL-17850 pour des détails. En résumé, il suffit de créer un fichier <code>local/defaults.php</code> dans votre installation Moodle. Le format de ce fichier est le suivant :
  
 
<code php>
 
<code php>
Ligne 66 : Ligne 61 :
 
</code>
 
</code>
  
Ces valeurs par défaut sont utilisées lors de l'installation, la mise à jour, et sont affichées (comme valeur par défaut) dans les pages d'administration du site.
+
Ces valeurs par défaut sont utilisées lors de l'installation, de la mise à jour, et sont en outre affichées comme valeur par défaut dans les pages d'administration du site.
  
== Réinitialiser le mot de passe ==
+
== Réinitialisation du mot de passe ==
  
Si vous avez perdu votre mot de passe administrateur (ou souhaitez définir le mot de passe d'un autre utilisateur), vous pouvez utiliser le script reset_password.php. Ce script défini correctement le mot de passe de l'utilisateur spécifié, en tenant compte du sel de mot de passe.
+
Si vous avez perdu votre mot de passe administrateur (ou souhaitez définir le mot de passe d'un autre utilisateur), vous pouvez utiliser le script reset_password.php. Ce script définit le mot de passe de l'utilisateur spécifié, en tenant compte correctement du sel de mot de passe.
  
 
     $ sudo -u apache /usr/bin/php admin/cli/reset_password.php
 
     $ sudo -u apache /usr/bin/php admin/cli/reset_password.php
Ligne 76 : Ligne 71 :
 
== Conversion du moteur de stockage MySQL ==
 
== Conversion du moteur de stockage MySQL ==
  
Si votre site Moodle utilise la base de données MySQL et utilise par défaut le moteur de stockage MyISAM pour vos tables, vous pourriez vouloir les convertir pour utiliser un autre moteur plus performant comme InnoDB (certains diraient que vous devriez même quitter MySQL et passer à PostgreSQL ;-) ).
+
Si votre site Moodle tourne sur la base de données MySQL et utilise le moteur de stockage par défaut MyISAM pour vos tables, vous pouvez les [[Migration de MyISAM vers InnoDB|convertir pour utiliser un moteur plus fiable comme InnoDB]] (certains diraient même que vous devriez quitter MySQL et passer à PostgreSQL ;-) ).
  
 
     $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB
 
     $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB
 +
 +
== Conversion des tables InnoDB au format Barracuda ==
 +
 +
Certains utilisateurs rencontrent l'erreur MySQL suivante lors de la restauration de cours :
 +
 +
  Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.
 +
 +
L'erreur est liée au fait que MySQL utilise par défaut pour le moteur InnoDB le format de fichier Antelope, qui ne peut pas gérer plus de 10 colonnes de texte. Il est donc recommandé de modifier le format de fichier d'InnoDB pour utiliser Barracuda en utilisant cette commande :
 +
 +
  php admin/cli/mysql_compressed_rows.php
 +
 +
Pour plus d'informations sur les formats de fichier d'InnoDB :
 +
 +
* http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_antelope
 +
* http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_barracuda
  
 
== Exécution du cron en ligne de commande ==
 
== Exécution du cron en ligne de commande ==
  
Dans les versions 1.x, vous pouviez exécuter admin/cron.php soit depuis la ligne de commande, soit depuis le web. Depuis Moodle 2.0, seul le script admin/cli/cron.php peut être exécuté via la ligne de commande.
+
Dans les versions 1.x, on pouvait lancer le script <code>admin/cron.php</code> soit en ligne de commande, soit depuis le web. Depuis Moodle 2.0, seul le script <code>admin/cli/cron.php</code> peut être lancé via la ligne de commande.
 +
 
 +
== Tâches programmées ==
 +
 
 +
Les tâches programmées sont lancées automatiquement par le script cron. Celles qui sont lancées lors de chaque lancement du cron sont déterminées par la configuration de chaque tâche programmée. Il est possible de court-circuiter cette configuration et de lancer une tâche programmée immédiatement à l'aide du script <code>admin/tool/task/cli/schedule_task.php</code>.
 +
 
 +
Ce script accepte les paramètres suivants :
 +
 
 +
--list - donne la liste de toutes les tâches programmées. Ces tâches sont classées par nom de la classe utilisée pour lancer la tâche. Ce nom de classe est requis comme paramètre de l'option ci-dessous, pour pouvoir lancer immédiatement une tâche spécifique.
 +
 
 +
--execute=<tâche> - lance immédiatement une tâche programmée, sans tenir compte de sa programmation, y compris les tâches désactivées. Les tâches utiliseront le système de verrouillage pour éviter des lancements simultanés d'une même tâche, y compris sur des installations en cluster. Le format du paramètre <tâche> doit être identique à celui de la sortie de la commande avec l'option --list (voir ci-dessus).
 +
 
 +
'''Remarque.''' Le caractère "\" doit être échappé avec un deuxième caractère \ lors de l'utilisation de l'option <code>--execute</code>. Par exemple :
 +
 
 +
<pre>php schedule_task.php --list</pre>
 +
 
 +
donnera la sortie suivante :
 +
 
 +
<pre>
 +
== List of scheduled tasks (http://yourserver.com/moodle) ==
 +
\enrol_imsenterprise\task\cron_task                10 * * * * *      ASAP
 +
\logstore_legacy\task\cleanup_task                * 5 * * * *      ASAP
 +
\logstore_standard\task\cleanup_task              * 4 * * * *      Wednesday, November 12, 2014, 4:35 AM
 +
\mod_forum\task\cron_task                          * * * * * *      ASAP
 +
\core\task\automated_backup_task                  50 * * * * *      ASAP
 +
 
 +
...
 +
</pre>
 +
 
 +
Pour lancer immédiatement la première des tâches de la liste, on lancerait la commande
 +
 
 +
<pre>php schedule_task.php --execute=\\enrol_imsenterprise\\task\\cron_task</pre>
 +
 
 +
== Transfert de la base de données ==
 +
 
 +
Un script CLI pour transférer votre base de données (par exemple de MySQL à PostgreSQL) se trouve dans ''admin/tool/dbtransfer/cli/migrate.php''.
 +
 
 +
== Purger les caches ==
 +
Vous pouvez purger les caches en utilisant ce script :
 +
 
 +
  $ sudo -u apache /usr/bin/php admin/cli/purge_caches.php
 +
 
 +
== Réparer les séquences cours / module ==
 +
Dans de rares cas (par exemple après avoir effectué la [[Mise à jour|mise à jour]] d'une version très ancienne de Moodle), la séquence des données cours / section / module peut être dé-synchronisée. Cette situation peut générer divers problèmes pour les cours touchés, tels que des sections qui n'apparaissent pas, des sauvegardes qui échouent, des pages qui ne s'affichent pas, etc. Un script est disponible pour vérifier l'existence de ce problème et réparer les données dans la base de données, le cas échéant. Pour lancer ce script, on utilisera la commande suivante :
 +
 
 +
  php admin/cli/fix_course_sequence.php -c=* --fix
 +
 
 +
Cette commande vérifiera chaque cours de la plateforme Moodle et annoncera ceux qui avaient une erreur et ont été corrigés.
 +
 
 +
== Réparer les catégories de question orphelines ==
 +
Lorsqu'un test est créé, une nouvelle catégorie de question est automatiquement créée pour le test.
 +
Avant Moodle 2.9.1, si le test était supprimé, la catégorie de question et les questions qu'elle contenait restaient dans la base de données interne de Moodle.
 +
Ces catégories de questions orphelines peuvent être trouvées avec admin/cli/fix_orphaned_question_categories.php, et corrigées avec la commande suivante :
 +
 
 +
  php admin/cli/fix_orphaned_question_categories.php --fix
 +
 
 +
== Voir aussi ==
 +
 
 +
* MDL-35736 - Manage plugins via command line
 +
* MDL-36237 - Resort course list via CLI
 +
* [http://moosh-online.com/ MOOSH] - MOOdle SHell. C'est un outil en ligne de commande permettant d'effectuer plusieurs tâches communes sur Moodle.
  
 +
[[de:Administration über Kommandozeile]]
 
[[en:Administration via command line]]
 
[[en:Administration via command line]]
 +
[[ja:コマンドライン経由の管理]]
 +
[[es:Administración por línea de comando]]

Version actuelle en date du 28 août 2015 à 08:16

Lancer des scripts en ligne de commande

Si vous avez accès en ligne de commande à votre serveur web, différents scripts pourront vous être utiles pour l'administration de Moodle. Les outils d'aministration générale sont situés dans le dossier
admin/cli/*
(CLI = command line interface). Les plugins peuvent fournir leurs propres outils en ligne de commande via des scripts situés dans leur propre dossier
cli
. Par exemple, le script de synchronisation d'inscription par base de donnée enrol_db est situé dans enrol/db/cli/.

Pour éviter des problèmes de contrôle d'accès, ces scripts doivent être lancés sous le nom de l'utilisateur possesseur du processus du serveur web (apache, www, wwrun, httpd, etc.). Ceci est particulièrement important pour les tâches d'installation et de mise à jour en ligne de commande, puisque durant ces tâches des fichiers sont créés dans le dossier de données moodledata et que le serveur web doit y avoir accès en écriture. Si vous êtes connecté en tant que root, vous lancerez donc les scripts ainsi :

   $ cd /chemin/vers/votre/dossier/moodle
   $ sudo -u apache /usr/bin/php admin/cli/nom_script.php --parametres

La plupart des scripts acceptent la paramètre standard --help (ou -h) pour afficher l'aide sur l'utilisation du script, par exemple :

   $ sudo -u apache /usr/bin/php admin/cli/install.php --help

Mise à jour

Moodle peut être mis à jour en ligne de commande. Tout comme pour le script d'installation, il y a pour la mise à jour un mode interactif et un mode non-interactif. Le script ne met pas le site en mode de maintenance. Vous devrez le faire vous-même (en ligne de commande, par exemple). En outre, le script n'effectue aucune sauvegarde (mais si vous lisez cette page, vous avez certainement mis en place vos propres scripts de sauvegarde de moodledata et de la base de données, n'est-ce-pas ?). La commande est la suivante :

   $ sudo -u apache /usr/bin/php admin/cli/upgrade.php

La mise à jour en CLI est très confortable, notamment en combinaison avec l'utilisation de Git pour télécharger le code source de Moodle (voir Git pour administrateurs). La procédure ci-dessous montre comment mettre à jour votre site en quelques secondes, tout en préservant vos éventuelles personnalisations locales :

   $ cd /var/www/sites/moodle/htdocs/
   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable
   $ git pull
   $ sudo -u apache /usr/bin/php admin/cli/upgrade.php
   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable

Installation

Moodle peut-être installé en ligne de commande de deux façons différentes. En mode interactif, le script d'installation vous demandera toutes les données nécessaires afin de procéder à l'installation correctement. En mode non-interactif, vous devez fournir toutes les données nécessaires comme paramètres du script et le nouveau site sera créé automatiquement. Les paramètres peuvent également être passés en mode interactif ; ils seront dans ce cas utilisés comme valeur par défaut durant la session interactive.

   $ sudo -u apache /usr/bin/php admin/cli/install.php --lang=fr

Mode de maintenance

Pour mettre votre site en mode de maintenance, vous pouvez utiliser :

   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --enable

Pour désactiver la maintenance, il suffit d'utiliser plutôt le paramètre --disable

   $ sudo -u apache /usr/bin/php admin/cli/maintenance.php --disable

Mode hors ligne

Dans certaines situations, vous aurez besoin de mettre votre site Moodle hors ligne en le rendant inaccessible, tout en conservant certaines fonctionnalités, par exemple parce que d'autres pages ou applications web y tournent. Si un fichier du nom de
climaintenance.html
est placé dans le dossier moodledata tout en haut de la hiérarchie, Moodle affichera automatiquement le contenu de ce fichier au lieu de toute autre page.
   $ cd /var/www/sites/moodle/moodledata/
   $ echo '<h1>Désolé, le site Moodle est actuellement en maintenance</h1>' > climaintenance.html
Vous pouvez préparer une page HTML avec votre charte graphique pour informer vos utilisateurs que le serveur est temporairement inaccessible et conserver ce fichier dans le dossier moodledata sous un nom comme
climaintenance.off
et le renommer en
climaintenance.html
au besoin.

Personnalisation des valeurs par défaut

Durant l'installation ou la mise à jour en ligne de commande, Moodle définit des variables d'administration à leur valeur par défaut. Vous pouvez définir d'autres valeurs par défaut. Voyez MDL-17850 pour des détails. En résumé, il suffit de créer un fichier
local/defaults.php
dans votre installation Moodle. Le format de ce fichier est le suivant :
<?php
$defaults['pluginname']['settingname'] = 'settingvalue'; // pour les plugins
$defaults['moodle']['settingname'] = 'settingvalue';     // pour les paramètres du cœur de Moodle

Ces valeurs par défaut sont utilisées lors de l'installation, de la mise à jour, et sont en outre affichées comme valeur par défaut dans les pages d'administration du site.

Réinitialisation du mot de passe

Si vous avez perdu votre mot de passe administrateur (ou souhaitez définir le mot de passe d'un autre utilisateur), vous pouvez utiliser le script reset_password.php. Ce script définit le mot de passe de l'utilisateur spécifié, en tenant compte correctement du sel de mot de passe.

   $ sudo -u apache /usr/bin/php admin/cli/reset_password.php

Conversion du moteur de stockage MySQL

Si votre site Moodle tourne sur la base de données MySQL et utilise le moteur de stockage par défaut MyISAM pour vos tables, vous pouvez les convertir pour utiliser un moteur plus fiable comme InnoDB (certains diraient même que vous devriez quitter MySQL et passer à PostgreSQL ;-) ).

   $ sudo -u apache /usr/bin/php admin/cli/mysql_engine.php --engine=InnoDB

Conversion des tables InnoDB au format Barracuda

Certains utilisateurs rencontrent l'erreur MySQL suivante lors de la restauration de cours :

 Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.

L'erreur est liée au fait que MySQL utilise par défaut pour le moteur InnoDB le format de fichier Antelope, qui ne peut pas gérer plus de 10 colonnes de texte. Il est donc recommandé de modifier le format de fichier d'InnoDB pour utiliser Barracuda en utilisant cette commande :

 php admin/cli/mysql_compressed_rows.php

Pour plus d'informations sur les formats de fichier d'InnoDB :

Exécution du cron en ligne de commande

Dans les versions 1.x, on pouvait lancer le script
admin/cron.php
soit en ligne de commande, soit depuis le web. Depuis Moodle 2.0, seul le script
admin/cli/cron.php
peut être lancé via la ligne de commande.

Tâches programmées

Les tâches programmées sont lancées automatiquement par le script cron. Celles qui sont lancées lors de chaque lancement du cron sont déterminées par la configuration de chaque tâche programmée. Il est possible de court-circuiter cette configuration et de lancer une tâche programmée immédiatement à l'aide du script
admin/tool/task/cli/schedule_task.php
.

Ce script accepte les paramètres suivants :

--list - donne la liste de toutes les tâches programmées. Ces tâches sont classées par nom de la classe utilisée pour lancer la tâche. Ce nom de classe est requis comme paramètre de l'option ci-dessous, pour pouvoir lancer immédiatement une tâche spécifique.
--execute=<tâche> - lance immédiatement une tâche programmée, sans tenir compte de sa programmation, y compris les tâches désactivées. Les tâches utiliseront le système de verrouillage pour éviter des lancements simultanés d'une même tâche, y compris sur des installations en cluster. Le format du paramètre <tâche> doit être identique à celui de la sortie de la commande avec l'option --list (voir ci-dessus).
Remarque. Le caractère "\" doit être échappé avec un deuxième caractère \ lors de l'utilisation de l'option
--execute
. Par exemple :
php schedule_task.php --list

donnera la sortie suivante :

== List of scheduled tasks (http://yourserver.com/moodle) ==
\enrol_imsenterprise\task\cron_task                10 * * * * *      ASAP
\logstore_legacy\task\cleanup_task                 * 5 * * * *       ASAP
\logstore_standard\task\cleanup_task               * 4 * * * *       Wednesday, November 12, 2014, 4:35 AM
\mod_forum\task\cron_task                          * * * * * *       ASAP
\core\task\automated_backup_task                   50 * * * * *      ASAP

...

Pour lancer immédiatement la première des tâches de la liste, on lancerait la commande

php schedule_task.php --execute=\\enrol_imsenterprise\\task\\cron_task

Transfert de la base de données

Un script CLI pour transférer votre base de données (par exemple de MySQL à PostgreSQL) se trouve dans admin/tool/dbtransfer/cli/migrate.php.

Purger les caches

Vous pouvez purger les caches en utilisant ce script :

 $ sudo -u apache /usr/bin/php admin/cli/purge_caches.php

Réparer les séquences cours / module

Dans de rares cas (par exemple après avoir effectué la mise à jour d'une version très ancienne de Moodle), la séquence des données cours / section / module peut être dé-synchronisée. Cette situation peut générer divers problèmes pour les cours touchés, tels que des sections qui n'apparaissent pas, des sauvegardes qui échouent, des pages qui ne s'affichent pas, etc. Un script est disponible pour vérifier l'existence de ce problème et réparer les données dans la base de données, le cas échéant. Pour lancer ce script, on utilisera la commande suivante :

 php admin/cli/fix_course_sequence.php -c=* --fix

Cette commande vérifiera chaque cours de la plateforme Moodle et annoncera ceux qui avaient une erreur et ont été corrigés.

Réparer les catégories de question orphelines

Lorsqu'un test est créé, une nouvelle catégorie de question est automatiquement créée pour le test. Avant Moodle 2.9.1, si le test était supprimé, la catégorie de question et les questions qu'elle contenait restaient dans la base de données interne de Moodle. Ces catégories de questions orphelines peuvent être trouvées avec admin/cli/fix_orphaned_question_categories.php, et corrigées avec la commande suivante :

 php admin/cli/fix_orphaned_question_categories.php --fix

Voir aussi

  • MDL-35736 - Manage plugins via command line
  • MDL-36237 - Resort course list via CLI
  • MOOSH - MOOdle SHell. C'est un outil en ligne de commande permettant d'effectuer plusieurs tâches communes sur Moodle.