Небольшой скрипт, что бы узнать, что занимает дисковое пространство на сайте
Запись от 31.08.2015
Задача - необходимо быстро определить, чем занято место на хостинге.
Набросал вот такой скрипт: http://bxapi.ru/code/YTLVQN4LmlhArrS/
Небольшая инструкция:
Скрипт можно поместить в командную PHP строку (/bitrix/admin/php_command_line.php).
Результат на чистой установке битрикса такой:
Итог: быстро, просто и без фигни узнаем чем забит сайт.
P.S. На всякий случай, исходный код:
Набросал вот такой скрипт: http://bxapi.ru/code/YTLVQN4LmlhArrS/
Небольшая инструкция:
Скрипт можно поместить в командную PHP строку (/bitrix/admin/php_command_line.php).
Результат на чистой установке битрикса такой:
Итог: быстро, просто и без фигни узнаем чем забит сайт.
P.S. На всякий случай, исходный код:
<?
function get_files($dir = "."){
$files = array();
if($handle = opendir($dir)) {
while(false !== ($item = readdir($handle))) {
if(is_file("$dir/$item")) {
$dir_short = str_replace($_SERVER["DOCUMENT_ROOT"], "", $dir);
$files[] = Array(
"DIR" => "$dir_short/",
"FILE" => "$dir_short/$item",
"SIZE" => filesize("$dir/$item"),
);
}
elseif(is_dir("$dir/$item") && ($item != ".") && ($item != "..")){
$files = array_merge($files, get_files("$dir/$item"));
}
}
closedir($handle);
}
return $files;
}
/* Сбор данных о файлах */
$arFiles = get_files($_SERVER["DOCUMENT_ROOT"]."/bitrix");
$arDirData = Array();
foreach($arFiles as $arFileData) {
$arDirList = explode("/", $arFileData["DIR"]);
$dirNow = "/";
foreach($arDirList as $sDirPath) {
if(!$sDirPath) continue;
$dirNow .= $sDirPath."/";
$arDirData[$dirNow] += $arFileData["SIZE"];
}
}
arsort($arDirData);
/* Вывод результата */
echo '<table>';
foreach($arDirData as $sPath=>$iSize) {
if($iSize < 1000000) continue;
echo '<tr><td>'.$sPath.'</td><td align="right">'.CFile::formatSize($iSize, 2).'</td></tr>';
}
echo '</table>';