学認連携Moodleの繁忙期を前に、オンラインユーザ数を可視化することを思いついた。もちろんMoodle内部にそのような仕掛けはあるが、可視化ページの「Logged in Users」をMoodleのオンラインユーザ数と勘違いされている場合があったため、rraに記録し可視化するのが有用であると考えた。
オンラインユーザ数を取得するスクリプトの作成
[code]
#blocks/online_users/block_online_users.phpを参考にした
#/bin/sh
pass=’your password’
db=’your database’
output=`/usr/bin/mysql -s -umdluser -p$pass $db -e "SELECT count(u.id) FROM mdl_user u WHERE u.lastaccess > unix_timestamp(now()) – 300 AND u.lastaccess <= now() AND u.deleted = 0"`
echo $output
[/code]
[code]
-rw-r—– 1 mysql mysql 8720 3月 8 04:19 mdl_workshop_aggregations.frm
-rw-r—– 1 mysql mysql 147456 3月 8 04:20 mdl_workshop_aggregations.ibd
-rw-r—– 1 mysql mysql 9260 3月 8 04:19 mdl_workshop_assessments.frm
-rw-r—– 1 mysql mysql 147456 3月 8 04:20 mdl_workshop_assessments.ibd
-rw-r—– 1 mysql mysql 9222 3月 8 04:19 mdl_workshop_assessments_old.frm
-rw-r—– 1 mysql mysql 163840 3月 8 04:20 mdl_workshop_assessments_old.ibd
[/code]
予告することができるのを今さらながら初めて知った。cronなどで1日前(つまり1440分前)から予告しておいてメンテナンスモードにすることもできる。該当のMoodle Docsはこちら。
[code]
if ($options[‘help’]) {
$help =
"Maintenance mode settings.
Current status displayed if not option specified.
Options:
–enable Enable CLI maintenance mode
–enablelater=MINUTES Number of minutes before entering CLI maintenance mode
–enableold Enable legacy half-maintenance mode
–disable Disable maintenance mode
-h, –help Print out this help
Example:
\$ sudo -u www-data /usr/bin/php admin/cli/maintenance.php
"; //TODO: localize – to be translated later when everything is finished