レンタルサーバーでディレクトリ毎の容量制限をかけることは、一般にできません。
しかし、簡単なスクリプトを作成し、CRONで自動実行させれば、ある程度は可能です。
このスクリプトは、指定した既定値を超えたら、そのディレクトリを書き込み不可にするものです。
PHPスクリプト
まず、以下のスクリプトをコピーし、以下の黄色の箇所を修正します。
- 制限するディレクトりを指定
- 何MByteで制限をかけるか?
<?php
//使用容量(バイト)
function dirSize($dir)
{
$handle = opendir($dir);
while ($file = readdir($handle)) {
if ($file != '..' && $file != '.' && !is_dir($dir.'/'.$file)) {
$mas += filesize($dir.'/'.$file);
} else if (is_dir($dir.'/'.$file) && $file != '..' && $file != '.') {
$mas += dirSize($dir.'/'.$file);
}
}
return $mas;
}
//数値をバイトからMB単位へ
function usedMB($dir)
{
$dir_size = dirSize($dir);
$dir_size = ($dir_size / 1024) / 1024;
$dir_size = ceil($dir_size);
return $dir_size;
}
//カレントディレクトリのMB数を調べる
$usedMbyte = usedMB("./data"); <<===== 制限するディレクトりを指定
if(Mbyte > 50) <<===== 何MByteで制限をかけるか?
{
chmod('./data', 0444);
echo "Modify permission \n";
}else{
echo "Still okay \n";
}
CRON
先ほどのスクリプトをCRON(定期実行)で動かせば、終了です。
以下の例では、サクラのレンタルサーバーで3時間ごとにチェックして、指定した値を超えたら書き込み不可にします。CRONは、どのレンタルサーバーでも用意されているため、どこでも本機能が利用できます。