古いSCORMファイルが/moodledata/filedirに残ってしまっているので削除したい

古いSCORMファイルが/moodledata/filedirに残ってしまっているので削除したい

- 貴紀 星野 の投稿
返信数: 6

お世話になっております。

現在、SCORM規格で学習サイトを作成しております。

コンテンツがほぼすべて出来上がったので、サーバのバックアップを取ろうと思ったのですが、

moodledata/filedirディレクトリのデータが12Gを越えていることに気づきました。

コンテンツはすべてをあわせても1Gにも満たない状況です。

これはおそらく、毎回同名でscormファイルをアップロードし、都度ファイルを上書きしていたことが原因と考えられます。

ファイルピッカを確認しても、「最近のファイル」には現存するファイルしか存在しないため、消す方法が分かりません。

もし機能として削除できないのであれば、filedirから、現在利用していないファイルを削除したいと考えているのですが、filedirのファイルのうち、必要なモノだけを残す方法はないでしょうか? 

どうかお知恵を拝借できればと存じます。

よろしくお願いいたします。

貴紀 星野 への返信

Re: 古いSCORMファイルが/moodledata/filedirに残ってしまっているので削除したい

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

各コースの「設定 > バックアップ」をクリックされた場合、「コースバックアップエリア」の中に、例えば「backup-moodle-course-8-td001-20130326-0850.mbz」のようなファイルが入っていますでしょうか。

Mitsuhiro Yoshida への返信

Re: 古いSCORMファイルが/moodledata/filedirに残ってしまっているので削除したい

- 貴紀 星野 の投稿

Mitsuhiro Yoshida様

ご解答ありがとうございます。現在、バックアップは一切取得しておりませんため、mbsファイルは存在しませんでした。

また、コースそのものを削除しても、なぜかfiledirの容量が変わりませんでした。

この現状を考えると、各コースのバックアップを取って、一度moodleを入れ替えたほうが早いのかもしれませんが、できればサービスを止めたくないため、別の手段を模索中です。

貴紀 星野 への返信

Re: 古いSCORMファイルが/moodledata/filedirに残ってしまっているので削除したい

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

一時的に下記のようにプログラムを修正された後、下書き (draft) ファイル等を削除するため、ブラウザから http://moodleサイト/admin/cron.php にアクセスされてみてはいかがでしょうか。

一時修正対象プログラム:
lib/filestorage/file_storage.php

修正箇所:
1916行目

[ 修正前 ]
mtrace('Deleting old draft files... ', '');
$old = time() - 60*60*24*4;
$sql = "SELECT *

[ 修正後 ]
mtrace('Deleting old draft files... ', '');
$old = time();
$sql = "SELECT *

参考資料:
[Using Moodle: Moodle 2.2 - force removing unused files]
https://moodle.org/mod/forum/discuss.php?d=204515

[[#MDL-31645] Add configuration option for how long to keep drafts before removing them - Moodle Tracker]
https://tracker.moodle.org/browse/MDL-31645

評点平均: お役立ち度: ★★★★★★★ (2)
Mitsuhiro Yoshida への返信

Re: 古いSCORMファイルが/moodledata/filedirに残ってしまっているので削除したい

- 貴紀 星野 の投稿

Mitsuhiro Yoshida様

ご返信ありがとうございます。

該当ファイルを修正後、/moodle/admin/cron.phpにアクセスしてみましたが、

ファイル容量が殆ど変わりませんでした。また、内容自体も4日以前の内容であったため、

いずれにしてもこのSQLでは削除されないようです。

なかなか難しいところです。

ともあれ、ご解答ありがとうございます。

貴紀 星野 への返信

Re: 古いSCORMファイルが/moodledata/filedirに残ってしまっているので削除したい

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

少々煩雑になりますが、下記SQL文を実行することにより、迷子ファイル (orphaned files) を探すヒントになるかと思います。

SELECT DISTINCT filename, FORMAT( (filesize /1024 /1024), 1 ) AS filesize_MB, concat ('filedir/' , SUBSTRING(contenthash, 1, 2), '/', SUBSTRING(contenthash, 3, 2)) as stored_directory, contenthash, component
FROM  `mdl_files`
ORDER BY filesize DESC
LIMIT 0 , 100

参考資料:
[The Open Source eLearning Blog: How to list the largest files in a Moodle 2.x site]
http://opensourceelearning.blogspot.jp/2013/03/how-to-list-largest-files-in-moodle-2x.html

Mitsuhiro Yoshida への返信

Re: 古いSCORMファイルが/moodledata/filedirに残ってしまっているので削除したい

- 貴紀 星野 の投稿

Mitsuhiro Yoshida様

何度も解答ありがとうございます。

上記SQL文の詳細については理解しました。

moodleのtable構成の学習が必要だと痛感します。

しかし、社内で再検討したところ、「moodleの機能として迷子ファイルを消す方法」がない以上、

下手にソースやバイナリ化されたファイルを削除するのは危険と考え、

コンテンツを退避したうえで最新バージョンで再構築するほうがリスクが低いと判断しました。

サービスを止めて、各データのバックアップを取って、最新バージョンにアップデートする方向で再検討しようと思います。

アドバイスありがとうございました。

評点平均: お役立ち度: ★★★★★★★ (1)