18. コマンドラインインタフェース (CLI)

コマンドラインインタフェース(CLI)を使用した場合、グラフィカルインタフェースではなく、コマンドラインまたはターミナルを介してMaharaと対話できます。これにより、特定のアクションを高速化したり、実行を簡単にできます。

注釈

各スクリプトで使用できる個々のコマンドに関するヘルプ情報を表示できます。

sudo -u www-data php htdocs/admin/cli/[file name of the script].php -h

18.1. cronジョブモニタ

外部監視ソフトウェアのcronジョブの失敗について警告を受け取るタイミングを構成します。

参考

プラグイン管理『モニタ』 モジュールを参照してください。

18.2. 特定のグループを一括削除します

大規模なサイトがあり、多くのアカウントを削除した場合、古いグループを効率的にクリーンアップできます。一括グループ削除スクリプトを使用して、次の操作を実行できます:

  • メンバを持たないすべてのグループを削除します。例えばアカウントが削除された後;

  • そしてサイト管理者だけをメンバとして持つすべてのグループを削除します;

  • および/または特定のインスティテューションに関連するグループだけ削除します。

次のコマンドでスクリプトを実行します。データが偶発的に削除されないようにデフォルトでドライランが実行されます。

sudo -u www-data php htdocs/admin/cli/delete_inactive_groups.php

18.3. 特定のアカウントを一括削除します

管理画面に移動せずにサイトから一括でアカウントを削除する場合、特に削除するアカウントが500人を超える場合はCLIを使用できます。このスクリプトでは次の操作を実行できます:

  • ログインしたことがないすべてのアカウント、つまり、CSVファイルまたは自動プロセスを使用して手動で作成されたアカウントをすべて削除します;

  • および/または特定の日付以降にログインしていないすべてのアカウントを削除します;

  • および/または特定のインスティテューションのアカウントだけを削除します;

  • 特定のグループのメンバであるアカウントを削除します。

次のコマンドでスクリプトを実行します。データが偶発的に削除されないようにデフォルトでドライランが実行されます。

sudo -u www-data php htdocs/admin/cli/delete_inactive_users.php

18.4. Elasticsearchをより速く実行してサイト索引を作成する

注釈

前提条件: Elasticsearchがインストールされ、サイト上で動作するように設定されています。

Elasticsearchが結果を表示できるよう大きなサイトでインデックス化または再インデックス化される場合、インデックス化はcronで実行されるため、この処理には非常に長い時間を要する場合があります。cronの実行完了前にインデックス化のバッチが終了した場合、次のバッチが再開されるまでの時間差があります。fast_index CLIスクリプトは前のバッチ完了直後に次のバッチインデックス化を開始します。

次のコマンドを使用してスクリプトを実行します:

sudo -u www-data php admin/cli/fast_index.php

18.5. 言語パックをインストールおよび更新する

通常、言語パックを更新したい場合、手動で言語パック全体をダウンロードした後、適切なフォルダに入れる必要があります。特にマイナーアップデート時に言語パックを更新したい場合に煩雑な作業となります。

あなたはCLIの使用でプロセスを時間短縮できます。

言語コードをリストすることによるMaharaのインスタンスのための 言語パックのインストールまたはアップデート

例(de = ドイツ語、fr = フランス語)

sudo -u www-data php admin/cli/sync_langpacks.php -l=de,fr

それらがdatarootの langpacks_backup ディレクトリに存在する場合、これは既存の言語をバックアップします。

注釈

使用される言語コードは Mahara言語パック のために使われた公式な国際的なものです。

バックアップを行わない: -b=false フラグを追加する

例:

sudo -u www-data php admin/cli/sync_langpacks.php -l=de,fr -b=false

バックアップをリストアする: -r=true フラグを使用します。

例:

sudo -u www-data php admin/cli/sync_langpacks.php -l=de,fr -r=true

これはMahara内部で設定されている英語のアップデートを無視します。