Hinweis: Sie sind auf den Seiten der Moodle 3.1 Dokumentation. Die Dokumentation der aktuellsten Moodle-Version finden Sie hier: Administration über Kommandozeile.

Administration über Kommandozeile: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:
{{Zum Überarbeiten}}
{{Zum Überarbeiten}}


Wenn Sie Shell-Zugriff auf Ihren Webserver haben, dann können Sie verschiedene CLI (command line interface) Skripte für die Administration von Moodle nutzen. Alle CLI-Skripte liegen im Verzeichnis ''moodle/admin/cli''. Um Probleme mit der Zugriffskontrolle zu vermeiden, sollten Sie diese Skripte als Webserver-Nutzer ausführen bzw. als der Nutzer, dem der Webserver-Prozess gehört. Das ist besonders wichtig bei der Ausführung der Installations- und Aktualisierungsskripte, da diese Skripte neue Dateien im Moodle-Datenverzeichnis anlegen und der Webserver Schreibzugriff auf diese Dateien benötigt. In Linux-Distributionen heißt der Webserver-Nutzer <code>apache</code> oder <code>wwrun</code> oder <code>httpd</code> o.ä. Als root können Sie die Skripte wie folgt aufrufen:
==CLI-Skripte verwenden==
Wenn Sie Shell-Zugriff auf Ihren Webserver haben, dann können Sie verschiedene CLI (command line interface) Skripte für die Administration von Moodle nutzen. Alle CLI-Skripte für die Administration von Moodle liegen im Verzeichnis ''moodle/admin/cli''. Plugins stellen ihre CLI-Skripte in einem eigenen Unterverzeichnis zur Verfügung, z.B. das Synchronisierungsskript für die [[Einschreibung über externe Datenbank]] liegt im Unterverzeichnis ''moodle/enrol/db/cli''.
 
Um Probleme mit der Zugriffskontrolle zu vermeiden, sollten Sie diese Skripte als Webserver-Nutzer ausführen bzw. als der Nutzer, dem der Webserver-Prozess gehört. Das ist besonders wichtig bei der Ausführung der Installations- und Aktualisierungsskripte, da diese Skripte neue Dateien im Moodle-Datenverzeichnis anlegen und der Webserver Schreibzugriff auf diese Dateien benötigt. In Linux-Distributionen heißt der Webserver-Nutzer <code>apache</code> oder <code>wwrun</code> oder <code>httpd</code> o.ä. Als root können Sie die Skripte wie folgt aufrufen:


     $ cd /Pfad/zum/Moodle-Verzeichnis
     $ cd /Pfad/zum/Moodle-Verzeichnis
Zeile 11: Zeile 14:
     $ sudo -u apache /usr/bin/php admin/cli/install.php --help
     $ sudo -u apache /usr/bin/php admin/cli/install.php --help


== Aktualisierung über Kommandozeile ==
Die Aktualisierung von Moodle kann über Kommandozeile ausgeführt werden. Wie beim Installationsskript (siehe unten) gibt es einen interaktiven und einen nicht-interaktiven Modus. Das Skript schaltet die Moodle-Site nicht in den Wartungsmodus, das müssen Sie (vorher) selbst tun. Das Skript sichert auch keinerlei Daten (wenn Sie diesen Artikel lesen, gehen wir davon aus, dass Sie ohnehin eigene Skripte zur Sicherung der Moodle-Datenbank und des Moodle-Datenverzeichnisses haben!).
    $ sudo -u apache /usr/bin/php admin/cli/upgrade.php --non-interactive
Die Aktualisierung über Kommandozeile ist ein sehr komfortabler Weg, wenn Sie den aktuellen Moodle-Code über [[Git für Administratoren|Git]] beziehen. Im folgenden finden Sie die Befehlsfolge, um innerhalb von Sekunden auf die aktuellste Moodle-Version zu aktualisieren und gleichzeitig Ihre lokalen Codeanpassungen zu bewahren:
    $ 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


== Installation von Kommandozeile ==
== Installation von Kommandozeile ==
Moodle kann von Kommandozeile aus installiert werden. Es gibt zwei Installationsmodi: Im interaktiven Modus fragt das Skript alle Daten ab, die benötigt werden, um die Moodle-Site korrekt aufzusetzen. Im nichtn-interaktiven Modus müssen Sie alle Daten als Parameter beim Skriptaufruf angeben, dann wird die Moodle-Site ohne weitere Abfragen installiert. Die Parameter können auch beim Aufruf des Skript im interaktiven Modus angegeben werden, dann werden diese Daten als Voreinstellungen bei der Abfrage verwendet.


Seit der Version 2.0 kann Moodle von Kommandozeile aus installiert werden. Es gibt zwei Installationsmodi: Im interaktiven Modus fragt das Skript alle Daten ab, die benötigt werden, um die Moodle-Site korrekt aufzusetzen. Im nichtn-interaktiven Modus müssen Sie alle Daten als Parameter beim Skriptaufruf angeben, dann wird die Moodle-Site ohne weitere Abfragen installiert. Die Parameter können auch beim Aufruf des Skript im interaktiven Modus angegeben werden, dann werden diese Daten als Voreinstellungen bei der Abfrage verwendet.
    $ sudo -u apache /usr/bin/php admin/cli/install.php --lang=cs


     $ sudo -u apache /usr/bin/php admin/cli/install.php --lang=cs
{{Neu}}
Bei Bedarf kann die Installation der Datenbank übersprungen werden:
     $ sudo -u apache /usr/bin/php admin/cli/install.php --skip-database


== Wartungsmodus ==
== Wartungsmodus ==
Zeile 34: Zeile 53:


Sie können auch eine geeignete HTML-Seite erstellen, die Ihre Nutzer/innen darüber informiert, dass der Moodle-Server nicht erreichbar ist. Sie können diese Datei z.B. ''climaintenance.off'' nennen und im Hauptverzeichnis des Moodle-Datenverzeichnisses speichern. Bei Bedarf können Sie diese Datei dann einfach umbenennen in ''climaintenance.html''.
Sie können auch eine geeignete HTML-Seite erstellen, die Ihre Nutzer/innen darüber informiert, dass der Moodle-Server nicht erreichbar ist. Sie können diese Datei z.B. ''climaintenance.off'' nennen und im Hauptverzeichnis des Moodle-Datenverzeichnisses speichern. Bei Bedarf können Sie diese Datei dann einfach umbenennen in ''climaintenance.html''.
== Aktualisierung über Kommandozeile ==
Die Aktualisierung von Moodle kann ebenfalls über Kommandozeile ausgeführt werden. Wie beim Installationsskript gibt es einen interaktiven und einen nicht-interaktiven Modus. Das Skript schaltet die Moodle-Site nicht in den Wartungsmodus, das müssen Sie (vorher) selbst tun. Das Skript sichert auch keinerlei Daten (wenn Sie diesen Artikel lesen, gehen wir davon aus, dass Sie ohnehin eigene Skripte zur Sicherung der Moodle-Datenbank und des Moodle-Datenverzeichnisses haben!).
    $ sudo -u apache /usr/bin/php admin/cli/upgrade.php --non-interactive
Die Aktualisierung über Kommandozeile ist ein sehr komfortabler Weg, wenn Sie den aktuellen Moodle-Code über [[Git für Administratoren|Git]] beziehen. Im folgenden finden Sie die Befehlsfolge, um innerhalb von Sekunden auf die aktuellste Moodle-Version zu aktualisieren und gleichzeitig Ihre lokalen Codeanpassungen zu bewahren:
    $ 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
===Probleme bei der Aktualisierung über Kommandozeile===
Wenn Ihre Moodle-Konfigurationsdatei ''config.php'' Informationen zu mehreren Moodle-Instanzen enthält (d.h. verschiedene Moodle-Sites mit eigenen Moodle-Datenbanken, die sich dieselben Moodle-PHP-Skripte teilen), dann funktioniert das Aktaulisierungsskript nicht. Als Lösung empfehlen wir, temporär alle Informationen zu allen Moodle-Instanzen bis auf eine aus der Konfigurationsdatei zu löschen und dann diese zu aktualisieren.
Wenn das zu Problemen für die anderen Moodle-Instanzen führt, modifizieren Sie das CLI-Skript so, dass es auf eine Kopie der Moodle-Konfigurationsdatei zugreift (die Sie wie beschrieben geändert haben, so dass sie nur noch Informationen zur Moodle-Site enthält, die Sie aktualisieren wollen).


== Angepasste Site-Einstellungen ==
== Angepasste Site-Einstellungen ==
Zeile 77: Zeile 75:
     $ 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


==InnoDB-Datenbanktabelen in Barracuda konvertieren==
Wir empfehlen bei Moodle-Sites, die Datenbanktabellen im Antelope Dateiformat verwenden, die Tabellen in das Barracude Dateiformat zu konvertieren.
Der Grund besteht darin, dass Tabellen im Antelope Format nicht mehr als 10 Testspalten verwenden können. Das kann bei großen Moodle-Sites zu Problemen und folgenden Fehlermeldungen
    Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.
bei der Kurswiederherstellung führen.
Barracuda ist das neueste InnoDB Dateiformat. Es unterstützt kompakte, redundante, komprimierte und dynamische Zeilenformate.
Deatillierte Informationen zu den Dateiformaten finden Sie unter [http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_antelope MySQL InnoDB Glossar Antelope] und [http://dev.mysql.com/doc/innodb/1.1/en/glossary.html#glos_barracuda MySQL InnoDB Glossar Barracuda].
===Werkzeuge zur Konvertierung===
Moodle stellte ein Konvertierungswerkzeug zur Verfügung. Um Tabelle anzuzeigen, die konvertiert werden müssen, verwenden Sie das Kommando:
    $ php admin/cli/mysql_compressed_rows.php --list
Im folgenden sehen Sie eine Beispiel-Ausgabe:
    mdl_data                            Compact    (needs fixing)
    mdl_data_fields                    Compact    (needs fixing)
    mdl_enrol_paypal                    Compact    (needs fixing)
Um die Konvertierung zu starten, geben Sie folgenden Befehl ein:
    $ php admin/cli/mysql_compressed_rows.php --fix
Wenn die Konvertierung erfolgreich war, erscheint folgende Ausgabe:
    mdl_data                  ... Compressed
    mdl_data_fields            ... Compressed
    mdl_enrol_paypal          ... Compressed
Beachten Sie, dass die Befehle in Ihrem Moodle-Verzeichnis ausgeführt werden müssen. Wenn alle Tabellen konvertiert sind, erscheint die obige Warnung nicht mehr.
   
== Cron von Kommandozeile ausführen ==
== Cron von Kommandozeile ausführen ==


In Moodle 1.x konnten Sie das Cron-Skript ''admin/cron.php'' entweder über das Moodle-Web-Interface oder über Kommandozeile ausführen. Ab Moodle 2.0 kann über Kommandozeile nur das Skript ''admin/cli/cron.php'' ausgeführt werden.
In Moodle 1.x konnten Sie das Cron-Skript ''admin/cron.php'' entweder über das Moodle-Web-Interface oder über Kommandozeile ausführen. Ab Moodle 2.0 kann über Kommandozeile nur das Skript ''admin/cli/cron.php'' ausgeführt werden.
==Geplante Vorgänge==
Scheduled tasks are automatically run by the cron script, but the specific tasks which run on each cron iteration are determined by the scheduled tasks configuration. It is possible to override the scheduled tasks configuration and run a single scheduled task immediately using the admin/tool/task/cli/schedule_task.php script.
This script accepts the following arguments:
--list - list all the known scheduled tasks. The tasks are listed by the class name used to run the task. This class name is required as the argument to the next option in order to run a specific task immediately.
--execute=<task> - Runs a single scheduled task immediately - regardless of scheduling settings. This will even run disabled tasks. Tasks will still use locking to prevent concurrent execution of the same task - even on clusters. The format of the <task> argument must be the same as returned by the --list option above.
'''Note:''' You must escape the "\" with an extra \ when using the --execute command. Take the following for example:
<pre>php schedule_task.php --list</pre>
will return something like:
<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>
To run the first task in that list, you would execute
<pre>php schedule_task.php --execute=\\enrol_imsenterprise\\task\\cron_task</pre>
==Database transfer==
A command line script for [[Database transfer]] may be found in ''admin/tool/dbtransfer/cli/migrate.php''.
==Purge caches==
You can purge caches using this script:
  php admin/cli/purge_caches.php
==Fix course / module sequences==
In rare cases (such as after upgrading from a very old version of Moodle), the course / section / module sequence data can be out of sync. This can cause various problems for affected courses, such as sections not appearing, backups failing, pages not displaying etc. There is a specific check to check for errors caused by this problem, and to fix the data in the database if they are found. To run this script please use the command below:
  php admin/cli/fix_course_sequence.php -c=* --fix
This will check every course in Moodle and report which ones had errors and were fixed.
==Fix orphaned question categories==
When a quiz is created, a new question category for the quiz is automatically created. In versions of Moodle prior to 2.9.1, if the quiz is deleted, the question category and any questions in the category remain in database. These orphaned question categories may be fixed by running the admin/cli/fix_orphaned_question_categories.php script with the --fix option.
==Suchen und ersetzen==
Mit diesem Skript können Sie in der gesamten Moodle-Datenbank Texte suchen und ersetzen. Verwenden Sie dieses Skript mit Vorsicht und sichern Sie in jedem Fall vorher die Moodle-Datenbank!
  php admin/tool/replace/cli/replace.php --search=//oldsitehost --replace=//newsitehost
==Siehe auch==
* MDL-35736 - Plugins verwalten über Kommandozeile
* MDL-36237 - Kursliste sortieren über Kommandozeile
* [http://moosh-online.com/ MOOSH] - MOOdle SHell. Das ist ein Kommandozeilen-Tool, das alle gängigen Moodle-Aufgaben ausführen kann.


[[en:Administration via command line]]
[[en:Administration via command line]]

Version vom 8. Februar 2016, 11:06 Uhr

Baustelle.png Diese Seite muss überarbeitet werden.


CLI-Skripte verwenden

Wenn Sie Shell-Zugriff auf Ihren Webserver haben, dann können Sie verschiedene CLI (command line interface) Skripte für die Administration von Moodle nutzen. Alle CLI-Skripte für die Administration von Moodle liegen im Verzeichnis moodle/admin/cli. Plugins stellen ihre CLI-Skripte in einem eigenen Unterverzeichnis zur Verfügung, z.B. das Synchronisierungsskript für die Einschreibung über externe Datenbank liegt im Unterverzeichnis moodle/enrol/db/cli.

Um Probleme mit der Zugriffskontrolle zu vermeiden, sollten Sie diese Skripte als Webserver-Nutzer ausführen bzw. als der Nutzer, dem der Webserver-Prozess gehört. Das ist besonders wichtig bei der Ausführung der Installations- und Aktualisierungsskripte, da diese Skripte neue Dateien im Moodle-Datenverzeichnis anlegen und der Webserver Schreibzugriff auf diese Dateien benötigt. In Linux-Distributionen heißt der Webserver-Nutzer apache oder wwrun oder httpd o.ä. Als root können Sie die Skripte wie folgt aufrufen:

   $ cd /Pfad/zum/Moodle-Verzeichnis
   $ sudo -u apache /usr/bin/php admin/cli/somescript.php --params

Die meisten Skripte akzeptieren den üblichen Hilfe-Parameter --help (oder -h), um detaillierte Informationen anzuzeigen, z.B.:

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

Aktualisierung über Kommandozeile

Die Aktualisierung von Moodle kann über Kommandozeile ausgeführt werden. Wie beim Installationsskript (siehe unten) gibt es einen interaktiven und einen nicht-interaktiven Modus. Das Skript schaltet die Moodle-Site nicht in den Wartungsmodus, das müssen Sie (vorher) selbst tun. Das Skript sichert auch keinerlei Daten (wenn Sie diesen Artikel lesen, gehen wir davon aus, dass Sie ohnehin eigene Skripte zur Sicherung der Moodle-Datenbank und des Moodle-Datenverzeichnisses haben!).

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

Die Aktualisierung über Kommandozeile ist ein sehr komfortabler Weg, wenn Sie den aktuellen Moodle-Code über Git beziehen. Im folgenden finden Sie die Befehlsfolge, um innerhalb von Sekunden auf die aktuellste Moodle-Version zu aktualisieren und gleichzeitig Ihre lokalen Codeanpassungen zu bewahren:

   $ 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

Installation von Kommandozeile

Moodle kann von Kommandozeile aus installiert werden. Es gibt zwei Installationsmodi: Im interaktiven Modus fragt das Skript alle Daten ab, die benötigt werden, um die Moodle-Site korrekt aufzusetzen. Im nichtn-interaktiven Modus müssen Sie alle Daten als Parameter beim Skriptaufruf angeben, dann wird die Moodle-Site ohne weitere Abfragen installiert. Die Parameter können auch beim Aufruf des Skript im interaktiven Modus angegeben werden, dann werden diese Daten als Voreinstellungen bei der Abfrage verwendet.

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

Neu
in Moodle 3.1!

Bei Bedarf kann die Installation der Datenbank übersprungen werden:

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

Wartungsmodus

Um die Moodle-Site über Kommandozeile in den Wartungsmodus zu schalten, können Sie das folgende CLI-Skript verwenden:

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

Um den Wartungsmodus wieder auszuschalten, verwenden Sie denselben Aufruf, aber mit dem Parameter --disable.

Offline-Modus

In manchen Situationen möchten Sie Ihre Moodle-Site vielleicht in den Offline-Modus schalten, so dass sie nicht über das Internet erreichbar ist, können jedoch nicht den Webserver komplett abschalten (weil andere Webseiten oder Webapplikationen ebenfalls über den Webserver laufen). Wenn es im Hauptverzeichnis des Moodle-Datenverzeichnisses eine Datei climaintenance.html gibt, dann zeigt Moodle automatisch den Inhalt dieser Seite anstelle jeder anderen Moodle-Seite an.

   $ cd /var/www/sites/moodle/moodledata/
   $ echo '<h1>Entschuldigung, es laufen Wartungsarbeiten</h1>' > climaintenance.html

Sie können auch eine geeignete HTML-Seite erstellen, die Ihre Nutzer/innen darüber informiert, dass der Moodle-Server nicht erreichbar ist. Sie können diese Datei z.B. climaintenance.off nennen und im Hauptverzeichnis des Moodle-Datenverzeichnisses speichern. Bei Bedarf können Sie diese Datei dann einfach umbenennen in climaintenance.html.

Angepasste Site-Einstellungen

Während der Installation bzw. Aktualisierung über Kommandozeile setzt Moodle alle administrativen Einstellungen auf die Standardwerte. Siehe MDL-17850 für Details. Kurz gesagt: Sie müssen nur eine Datei local/defaults.php zu Ihrer Moodle-Installation hinzufügen, um eigene Konfigurationseinstellungen automatisch während des Installations- bzw. Aktualisierungsprozesses zu setzen. Das Format der Datei ist wie folgt:

<?php $defaults['pluginname']['settingname'] = 'settingvalue'; // für Plugins $defaults['moodle']['settingname'] = 'settingvalue'; // für Einstellungen im Kernsystem

Dieses Werte werden bei der Installation, der Aktualisierung und als Voreinstellungen auf den Moodle-Administrationsseiten verwendet.

Nutzer-Kennwort neu setzen

Wenn Sie aus Versehn Ihr Admin-Kennwort vergessen haben (oder das Kennwort für eine beliebige Person neu setzen wollen), dann können Sie das Skript reset_password.php verwenden. Das Skript setzt dann das korrekt verschlüsselte Kennwort für die Person.

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

MySQL Storage Engine Konvertierung

Wenn Sie Moodle mit einer MySQL-Datenbank betreiben und bisher standardmäßig MyISAM als Storage Engine für Ihre Datenbanktabellen verwenden, dann können Sie diese in zuverlässigere Storage Engines konvertieren, wie z.B. InnoDB (noch besser ist es, gleich auf eine PostgreSQL-Datenbank umzustellen ;-))

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

InnoDB-Datenbanktabelen in Barracuda konvertieren

Wir empfehlen bei Moodle-Sites, die Datenbanktabellen im Antelope Dateiformat verwenden, die Tabellen in das Barracude Dateiformat zu konvertieren.

Der Grund besteht darin, dass Tabellen im Antelope Format nicht mehr als 10 Testspalten verwenden können. Das kann bei großen Moodle-Sites zu Problemen und folgenden Fehlermeldungen

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

bei der Kurswiederherstellung führen.

Barracuda ist das neueste InnoDB Dateiformat. Es unterstützt kompakte, redundante, komprimierte und dynamische Zeilenformate.

Deatillierte Informationen zu den Dateiformaten finden Sie unter MySQL InnoDB Glossar Antelope und MySQL InnoDB Glossar Barracuda.

Werkzeuge zur Konvertierung

Moodle stellte ein Konvertierungswerkzeug zur Verfügung. Um Tabelle anzuzeigen, die konvertiert werden müssen, verwenden Sie das Kommando:

   $ php admin/cli/mysql_compressed_rows.php --list

Im folgenden sehen Sie eine Beispiel-Ausgabe:

   mdl_data                            Compact     (needs fixing) 
   mdl_data_fields                     Compact     (needs fixing)
   mdl_enrol_paypal                    Compact     (needs fixing)

Um die Konvertierung zu starten, geben Sie folgenden Befehl ein:

   $ php admin/cli/mysql_compressed_rows.php --fix

Wenn die Konvertierung erfolgreich war, erscheint folgende Ausgabe:

   mdl_data                   ... Compressed
   mdl_data_fields            ... Compressed
   mdl_enrol_paypal           ... Compressed

Beachten Sie, dass die Befehle in Ihrem Moodle-Verzeichnis ausgeführt werden müssen. Wenn alle Tabellen konvertiert sind, erscheint die obige Warnung nicht mehr.

Cron von Kommandozeile ausführen

In Moodle 1.x konnten Sie das Cron-Skript admin/cron.php entweder über das Moodle-Web-Interface oder über Kommandozeile ausführen. Ab Moodle 2.0 kann über Kommandozeile nur das Skript admin/cli/cron.php ausgeführt werden.

Geplante Vorgänge

Scheduled tasks are automatically run by the cron script, but the specific tasks which run on each cron iteration are determined by the scheduled tasks configuration. It is possible to override the scheduled tasks configuration and run a single scheduled task immediately using the admin/tool/task/cli/schedule_task.php script.

This script accepts the following arguments:

--list - list all the known scheduled tasks. The tasks are listed by the class name used to run the task. This class name is required as the argument to the next option in order to run a specific task immediately.
--execute=<task> - Runs a single scheduled task immediately - regardless of scheduling settings. This will even run disabled tasks. Tasks will still use locking to prevent concurrent execution of the same task - even on clusters. The format of the <task> argument must be the same as returned by the --list option above.

Note: You must escape the "\" with an extra \ when using the --execute command. Take the following for example:

php schedule_task.php --list

will return something like:

== 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

...

To run the first task in that list, you would execute

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

Database transfer

A command line script for Database transfer may be found in admin/tool/dbtransfer/cli/migrate.php.

Purge caches

You can purge caches using this script:

 php admin/cli/purge_caches.php

Fix course / module sequences

In rare cases (such as after upgrading from a very old version of Moodle), the course / section / module sequence data can be out of sync. This can cause various problems for affected courses, such as sections not appearing, backups failing, pages not displaying etc. There is a specific check to check for errors caused by this problem, and to fix the data in the database if they are found. To run this script please use the command below:

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

This will check every course in Moodle and report which ones had errors and were fixed.

Fix orphaned question categories

When a quiz is created, a new question category for the quiz is automatically created. In versions of Moodle prior to 2.9.1, if the quiz is deleted, the question category and any questions in the category remain in database. These orphaned question categories may be fixed by running the admin/cli/fix_orphaned_question_categories.php script with the --fix option.

Suchen und ersetzen

Mit diesem Skript können Sie in der gesamten Moodle-Datenbank Texte suchen und ersetzen. Verwenden Sie dieses Skript mit Vorsicht und sichern Sie in jedem Fall vorher die Moodle-Datenbank!

 php admin/tool/replace/cli/replace.php --search=//oldsitehost --replace=//newsitehost

Siehe auch

  • MDL-35736 - Plugins verwalten über Kommandozeile
  • MDL-36237 - Kursliste sortieren über Kommandozeile
  • MOOSH - MOOdle SHell. Das ist ein Kommandozeilen-Tool, das alle gängigen Moodle-Aufgaben ausführen kann.